refund crash fixed

This commit is contained in:
MooN 2025-12-11 04:38:57 +06:30
parent 7452443a45
commit ff9450a50c
3 changed files with 26 additions and 9 deletions

View File

@ -54,7 +54,6 @@ public class QRPayFragment extends DataBindingFragment {
@Override
protected DataBindingConfig getDataBindingConfig() {
boolean isQrRefundEnable = SystemParamsOperation.getInstance().getQrRefundEnable();
LogUtil.d("KMK", "isQrRefundEnable =>" + isQrRefundEnable);
List<QRPayItem> features = new ArrayList<>();
features.add(new QRPayItem("Sale", R.drawable.ic_qr_pay, true));
if(isQrRefundEnable){

View File

@ -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);

View File

@ -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