From 49e22932b6f8a6a973ab1ad95f345b53f1f0cc16 Mon Sep 17 00:00:00 2001 From: ilham Date: Fri, 29 Apr 2022 15:50:16 +0700 Subject: [PATCH] add: check bill --- src/helper/irs-api.ts | 4 +-- src/transaction/transaction.controller.ts | 15 ++++++++ src/transaction/transaction.service.ts | 44 +++++++++++++++++++++-- 3 files changed, 59 insertions(+), 4 deletions(-) diff --git a/src/helper/irs-api.ts b/src/helper/irs-api.ts index 2df4035..6612806 100644 --- a/src/helper/irs-api.ts +++ b/src/helper/irs-api.ts @@ -13,14 +13,14 @@ export const doTransaction = async ( supplier, ) => { try { - if(supplier.code != 'IRS'){ + if(supplier.code == 'IRS'){ const res = await axios.get( `${irs_url}?id=${irs_id}&pin=${irs_pin}&user=${irs_user}&pass=${irs_pass}&kodeproduk=${productCode}&tujuan=${destination}&counter=1&idtrx=${idtrx}`, ); return res.data; } else { const res = await axios.get( - `${supplier.url}/trx?memberID=${irs_id}&pin=${irs_pin}&user=${irs_user}&password=${irs_pass}&product=${productCode}&dest=${destination}&counter=1&refID=${idtrx}`, + `${supplier.url}?memberID=${supplier.irs_id}&pin=${supplier.irs_pin}&password=${supplier.irs_pass}&product=${productCode}&dest=${destination}&counter=1&refID=${idtrx}`, ); return res.data; } diff --git a/src/transaction/transaction.controller.ts b/src/transaction/transaction.controller.ts index e84ab26..fa0946e 100644 --- a/src/transaction/transaction.controller.ts +++ b/src/transaction/transaction.controller.ts @@ -87,6 +87,21 @@ export class TransactionController { }; } + @Post('check-bill') + async checkBill( + @Body() orderTransactionDto: OrderTransactionDto, + @Request() req, + ) { + return { + data: await this.transactionService.checkBill( + orderTransactionDto, + req.user, + ), + statusCode: HttpStatus.CREATED, + message: 'success', + }; + } + @Post('deposit-return') async depositReturn( @Body() depositReturnDto: DepositReturnDto, diff --git a/src/transaction/transaction.service.ts b/src/transaction/transaction.service.ts index 5ba2e48..056c23b 100644 --- a/src/transaction/transaction.service.ts +++ b/src/transaction/transaction.service.ts @@ -497,7 +497,7 @@ export class TransactionService { orderTransactionDto.productCode, orderTransactionDto.destination, trxId, - supplier + supplier, ); if (supplier.code != 'IRS') { @@ -507,7 +507,7 @@ export class TransactionService { harga: parseInt( parsingResponse[parsingResponse.length - 2].replaceAll('.', ''), ), - msg: hitSupplier + msg: hitSupplier, }; } // const hitSupplier = { @@ -620,6 +620,46 @@ export class TransactionService { }; } + async checkBill(orderTransactionDto: OrderTransactionDto, currentUser: any) { + //GET USER DATA + const userData = await this.userService.findByUsername( + currentUser.username, + ); + + //GET PRODUCT AND PRICE + const product = await this.productService.findOne( + orderTransactionDto.productCode, + ); + + const supplier = await this.supplierService.findByCode( + product.supplier.code, + ); + + //HIT API SUPPLIER + const trxId = Array(6) + .fill(null) + .map(() => { + return Math.round(Math.random() * 16).toString(16); + }) + .join(''); + + // let hitSupplier = await doTransaction( + // 'CEK' + orderTransactionDto.productCode.slice(3), + // orderTransactionDto.destination, + // trxId, + // supplier, + // ); + + let hitSupplier = await doTransaction( + 'CEKXL1', + orderTransactionDto.destination, + trxId, + supplier, + ); + + return hitSupplier; + } + async createDepositReturn(currentUser, depositReturnDto: DepositReturnDto) { const userData = await this.userService.findByUsername( currentUser.username,