From ff9450a50cf4fe26f6a40069cd3b831387a7f7fb Mon Sep 17 00:00:00 2001 From: MooN <56061215+MgKyawLay@users.noreply.github.com> Date: Thu, 11 Dec 2025 04:38:57 +0630 Subject: [PATCH] refund crash fixed --- .../com/utsmm/kbz/ui/qr_pay/QRPayFragment.java | 1 - .../kbz/ui/qr_pay/QRRefundProcessFragment.java | 16 ++++++++++++++-- .../java/com/utsmm/kbz/util/EReceiptUtil.java | 18 ++++++++++++------ 3 files changed, 26 insertions(+), 9 deletions(-) diff --git a/app/src/main/java/com/utsmm/kbz/ui/qr_pay/QRPayFragment.java b/app/src/main/java/com/utsmm/kbz/ui/qr_pay/QRPayFragment.java index 6deb64c..fb86528 100644 --- a/app/src/main/java/com/utsmm/kbz/ui/qr_pay/QRPayFragment.java +++ b/app/src/main/java/com/utsmm/kbz/ui/qr_pay/QRPayFragment.java @@ -54,7 +54,6 @@ public class QRPayFragment extends DataBindingFragment { @Override protected DataBindingConfig getDataBindingConfig() { boolean isQrRefundEnable = SystemParamsOperation.getInstance().getQrRefundEnable(); - LogUtil.d("KMK", "isQrRefundEnable =>" + isQrRefundEnable); List features = new ArrayList<>(); features.add(new QRPayItem("Sale", R.drawable.ic_qr_pay, true)); if(isQrRefundEnable){ diff --git a/app/src/main/java/com/utsmm/kbz/ui/qr_pay/QRRefundProcessFragment.java b/app/src/main/java/com/utsmm/kbz/ui/qr_pay/QRRefundProcessFragment.java index 5f2b7be..c1fa809 100644 --- a/app/src/main/java/com/utsmm/kbz/ui/qr_pay/QRRefundProcessFragment.java +++ b/app/src/main/java/com/utsmm/kbz/ui/qr_pay/QRRefundProcessFragment.java @@ -149,7 +149,13 @@ public class QRRefundProcessFragment extends DataBindingFragment { payDetail.setIsCanceled(true); payDetail.setCustomerMobile(response.getResponse().getWalletIdentifier()); payDetail.setTradeDateAndTime(response.getResponse().getRefundTime()); - EReceiptRequest request = EReceiptUtil.getInstance().generateQRRefundReceipt(sharedViewModel.payDetail.getValue(), TransResultStatus.SUCCESS); + EReceiptRequest request = EReceiptUtil.getInstance().generateQRRefundReceipt( + refundAmount, + referenceNo, + payDetail != null ? payDetail.getInvoiceNo() : "", + payDetail != null ? payDetail.getVoucherNo() : "", + TransResultStatus.SUCCESS + ); sharedViewModel.pushReceipt(request); retrievedUpdatePayDetail(referenceNo); @@ -165,7 +171,13 @@ public class QRRefundProcessFragment extends DataBindingFragment { errorMsg = response.getResponse().getMsg(); } payDetail.setTradeResultDes(errorMsg); - EReceiptRequest request = EReceiptUtil.getInstance().generateQRRefundReceipt(sharedViewModel.payDetail.getValue(), TransResultStatus.FAIL); + EReceiptRequest request = EReceiptUtil.getInstance().generateQRRefundReceipt( + "0", + referenceNo, + payDetail != null ? payDetail.getInvoiceNo() : "", + payDetail != null ? payDetail.getVoucherNo() : "", + TransResultStatus.FAIL + ); sharedViewModel.pushReceipt(request); sharedViewModel.payDetail.setValue(payDetail); diff --git a/app/src/main/java/com/utsmm/kbz/util/EReceiptUtil.java b/app/src/main/java/com/utsmm/kbz/util/EReceiptUtil.java index 22ebde6..194b83d 100644 --- a/app/src/main/java/com/utsmm/kbz/util/EReceiptUtil.java +++ b/app/src/main/java/com/utsmm/kbz/util/EReceiptUtil.java @@ -92,9 +92,15 @@ public class EReceiptUtil { return request; } - public EReceiptRequest generateQRRefundReceipt(PayDetail payDetail, TransResultStatus status) { - - double realAmount = payDetail.getAmount() / 100.0; + public EReceiptRequest generateQRRefundReceipt( + String refundAmount, + String referenceNo, + String invoiceNo, + String voucherNo, + TransResultStatus status + ) { + long amt = POSUtil.getInstance().convertAmount(refundAmount); + double realAmount = amt / 100.0; DecimalFormat df = new DecimalFormat("0.00"); String amount = df.format(realAmount); @@ -104,15 +110,15 @@ public class EReceiptUtil { request.setDE3("QRV"); request.setDE7(currentTimeStamp); - request.setDE37(payDetail.getReferNo()); + request.setDE37(referenceNo); request.setDE49("MMK"); request.setSerial(serialNum); request.setAppId(packageName); request.setDE41(qrTerminalId); request.setDE42(qrMerchantId); - request.setInvoiceNumber(payDetail.getInvoiceNo()); - request.setDE11(payDetail.getVoucherNo()); + request.setInvoiceNumber(invoiceNo != null ? invoiceNo : ""); + request.setDE11(voucherNo != null ? voucherNo : ""); // need to add payment identifier field too