From 597560e3bdcba16adf94d57ed41328644fcb8645 Mon Sep 17 00:00:00 2001
From: moon <56061215+MgKyawLay@users.noreply.github.com>
Date: Mon, 31 Aug 2026 11:33:16 +0630
Subject: [PATCH] currency
---
.../kbz/ui/core_ui/InputRRNFragment.java | 2 ++
.../utsmm/kbz/ui/core_ui/ReceiptFragment.java | 2 +-
.../EmvTransactionProcessViewModel.java | 1 +
.../core_viewmodel/TransProcessViewModel.java | 1 +
.../layout/fragment_trans_result_screen.xml | 4 +--
.../paylibs/print/printx/BaseXPrint.java | 30 ++++++++++---------
.../paylibs/print/printx/PrintXImpl.java | 7 +++--
.../com/utsmyanmar/paylibs/utils/POSUtil.java | 4 +--
8 files changed, 29 insertions(+), 22 deletions(-)
diff --git a/app/src/main/java/com/utsmm/kbz/ui/core_ui/InputRRNFragment.java b/app/src/main/java/com/utsmm/kbz/ui/core_ui/InputRRNFragment.java
index 345a506..0e002bd 100644
--- a/app/src/main/java/com/utsmm/kbz/ui/core_ui/InputRRNFragment.java
+++ b/app/src/main/java/com/utsmm/kbz/ui/core_ui/InputRRNFragment.java
@@ -222,6 +222,7 @@ public class InputRRNFragment extends DataBindingFragment {
newPay.setReferNo(rrnNo);
+ newPay.setCurrencyCode(payDetail.getCurrencyCode());
if(sharedViewModel.getTransMenu().getValue() == TransMenu.PRE_AUTH_FULL_VOID) {
newPay.setAmount(payDetail.getAmount());
@@ -315,6 +316,7 @@ public class InputRRNFragment extends DataBindingFragment {
}
newPay.setReferNo(rrnNo);
+ newPay.setCurrencyCode(payDetail.getCurrencyCode());
newPay.setApprovalCode(payDetail.getApprovalCode());
newPay.setTradeTime(payDetail.getTradeTime());
newPay.setTradeDate(payDetail.getTradeDate());
diff --git a/app/src/main/java/com/utsmm/kbz/ui/core_ui/ReceiptFragment.java b/app/src/main/java/com/utsmm/kbz/ui/core_ui/ReceiptFragment.java
index 958b0cc..ed0d110 100644
--- a/app/src/main/java/com/utsmm/kbz/ui/core_ui/ReceiptFragment.java
+++ b/app/src/main/java/com/utsmm/kbz/ui/core_ui/ReceiptFragment.java
@@ -113,7 +113,7 @@ public class ReceiptFragment extends DataBindingFragment {
data.retrievalReferenceNumber = payDetail.getReferNo();
data.approvalNumber = payDetail.getApprovalCode();
data.amount = POSUtil.getInstance().getDecimalAmountSeparatorFormat(payDetail.getAmount());
- data.currency = payDetail.getCurrency();
+ data.currency = POSUtil.getInstance().currencyCodeToText(payDetail.getCurrencyCode());
data.footerMessage = "Keep this receipt for your records";
data.responseCode = payDetail.getTradeAnswerCode();
diff --git a/app/src/main/java/com/utsmm/kbz/ui/core_viewmodel/EmvTransactionProcessViewModel.java b/app/src/main/java/com/utsmm/kbz/ui/core_viewmodel/EmvTransactionProcessViewModel.java
index 11e6a4b..0f699c4 100644
--- a/app/src/main/java/com/utsmm/kbz/ui/core_viewmodel/EmvTransactionProcessViewModel.java
+++ b/app/src/main/java/com/utsmm/kbz/ui/core_viewmodel/EmvTransactionProcessViewModel.java
@@ -460,6 +460,7 @@ public class EmvTransactionProcessViewModel extends EmvBaseViewModel implements
mPayDetail.setIsCanceled(true);
updatePayDetail(mPayDetail);
payResult.setESignBlob(mPayDetail.getESignBlob());
+ payResult.setCurrencyCode(mPayDetail.getCurrencyCode());
repository.insertPayDetail(updateCurrentDateAndTime(payResult));
}
diff --git a/app/src/main/java/com/utsmm/kbz/ui/core_viewmodel/TransProcessViewModel.java b/app/src/main/java/com/utsmm/kbz/ui/core_viewmodel/TransProcessViewModel.java
index 8eede31..0c11720 100644
--- a/app/src/main/java/com/utsmm/kbz/ui/core_viewmodel/TransProcessViewModel.java
+++ b/app/src/main/java/com/utsmm/kbz/ui/core_viewmodel/TransProcessViewModel.java
@@ -300,6 +300,7 @@ public class TransProcessViewModel extends ViewModel implements ProcessingTransa
payDetail.setIsCanceled(true);
updatePayDetail(payDetail);
payResult.setESignBlob(payDetail.getESignBlob());
+ payResult.setCurrencyCode(payDetail.getCurrencyCode());
repository.insertPayDetail(updateCurrentDateAndTime(payResult));
}
diff --git a/app/src/main/res/layout/fragment_trans_result_screen.xml b/app/src/main/res/layout/fragment_trans_result_screen.xml
index 997c0fb..52b3342 100644
--- a/app/src/main/res/layout/fragment_trans_result_screen.xml
+++ b/app/src/main/res/layout/fragment_trans_result_screen.xml
@@ -131,12 +131,12 @@
+ tools:text="250,000.00" />
diff --git a/paylibs/src/main/java/com/utsmyanmar/paylibs/print/printx/BaseXPrint.java b/paylibs/src/main/java/com/utsmyanmar/paylibs/print/printx/BaseXPrint.java
index 60c7559..48c994a 100644
--- a/paylibs/src/main/java/com/utsmyanmar/paylibs/print/printx/BaseXPrint.java
+++ b/paylibs/src/main/java/com/utsmyanmar/paylibs/print/printx/BaseXPrint.java
@@ -300,11 +300,12 @@ public abstract class BaseXPrint {
return currencyMap;
}
- protected void printMMQRReport(List qrList) {
+ protected void printMMQRReport(PayDetail payDetail, List qrList) {
if (qrList == null || qrList.isEmpty()) return;
long saleTotal = 0;
long refundTotal = 0;
+ String currencySign = currencyCodeToText(payDetail.getCurrencyCode());
emptyLine(1);
@@ -322,7 +323,7 @@ public abstract class BaseXPrint {
printString("Status :" + data.getStatus());
printString("Date :" + data.getDate());
printString("Time :" + data.getTime());
- printString("Amount : MMK "
+ printString("Amount : " + currencySign + " "
+ (data.getTransactionType() == TransactionsType.MMQR_REFUND.value ? "-" : "")
+ PrintUtils.getInstance().getSeparatorOnlyNumberFormat(data.getAmount()));
emptyLine(1);
@@ -332,13 +333,13 @@ public abstract class BaseXPrint {
dotBreak();
// printer.appendPrnStr("Refund Total:MMK", "- " + PrintUtils.getInstance().getSeparatorOnlyNumberFormat(refundTotal) + " ", fontNormal, false);
- print2ColumnsString("Refund Total:", "-" + PrintUtils.getInstance().getSeparatorOnlyNumberFormat(refundTotal) + "MMK");
+ print2ColumnsString("Refund Total:", "-" + PrintUtils.getInstance().getSeparatorOnlyNumberFormat(refundTotal) + currencySign);
dotBreak();
// printer.appendPrnStr("Sale Total :MMK", PrintUtils.getInstance().getSeparatorOnlyNumberFormat(saleTotal) + " ", fontNormal, false);
- print2ColumnsString("SALE TOTAL :", PrintUtils.getInstance().getSeparatorOnlyNumberFormat(saleTotal) + "MMK");
+ print2ColumnsString("SALE TOTAL :", PrintUtils.getInstance().getSeparatorOnlyNumberFormat(saleTotal) + currencySign);
dotBreak();
// printer.appendPrnStr("Total :MMK", PrintUtils.getInstance().getSeparatorOnlyNumberFormat(grandTotal) + " ", fontNormal, false);
- print2ColumnsString("GRAND TOTAL :", PrintUtils.getInstance().getSeparatorOnlyNumberFormat(grandTotal) + "MMK");
+ print2ColumnsString("GRAND TOTAL :", PrintUtils.getInstance().getSeparatorOnlyNumberFormat(grandTotal) + currencySign);
dashBreakEnding();
emptyLine(1);
}
@@ -520,7 +521,7 @@ public abstract class BaseXPrint {
if (payDetail.getTradeAnswerCode().equals("00") || payDetail.getTradeAnswerCode().equals("000")) {
String currencySign = currencyCodeToText(payDetail.getCurrencyCode());
if (payDetail.getTransactionType() == TransactionType.BALANCE_INQUIRY) {
- printer.appendPrnStr("MMK " + PrintUtils.getInstance().getBalanceInquiryNumberFormat(payDetail.getAmount()), fontNormal, AlignEnum.LEFT, false);
+ printer.appendPrnStr(currencySign + " " + PrintUtils.getInstance().getBalanceInquiryNumberFormat(payDetail.getAmount()), fontNormal, AlignEnum.LEFT, false);
} else if (payDetail.getTransactionType() == TransactionType.VOID || payDetail.getTransactionType() == TransactionType.REFUND || payDetail.getTransactionType() == TransactionType.PRE_SALE_CANCEL || payDetail.getTransactionType() == TransactionType.PRE_SALE_COMPLETE_VOID) {
print2SideString("AMT:" + currencySign, "- " + PrintUtils.getInstance().getSeparatorNumberFormat(payDetail.getAmount(), isDecimalEnabled));
@@ -682,7 +683,7 @@ public abstract class BaseXPrint {
String currencySign = currencyCodeToText(payDetail.getCurrencyCode());
// CurrencyType currencySign = currencyTextToCurrencyType(payDetail.getCurrencyCode());
if (payDetail.getTransactionType() == TransactionType.BALANCE_INQUIRY) {
- printer.appendPrnStr("MMK " + PrintUtils.getInstance().getBalanceInquiryNumberFormat(payDetail.getAmount()), fontNormal, AlignEnum.LEFT, true);
+ printer.appendPrnStr(currencySign + " " + PrintUtils.getInstance().getBalanceInquiryNumberFormat(payDetail.getAmount()), fontNormal, AlignEnum.LEFT, true);
} else {
print2SideString("AMT:" + currencySign, PrintUtils.getInstance().getSeparatorNumberFormat(payDetail.getAmount(), isDecimalEnabled));
// printer.appendPrnStr("AMOUNT:" + currencySign + " " + PrintUtils.getInstance().getSeparatorNumberFormat(payDetail.getAmount()), fontNormal, AlignEnum.LEFT,true);
@@ -716,7 +717,7 @@ public abstract class BaseXPrint {
protected void printTransDetailSummary(PayDetail payDetail) {
- String MMK = "MMK";
+ String currencySign = currencyCodeToText(payDetail.getCurrencyCode());
SettleData settleData = payDetail.getSettleDataObj();
boolean isQrDecimalEnabled = SystemParamsOperation.getInstance().isQrDecimalEnable();
boolean isWallet = "WALLET".equalsIgnoreCase(payDetail.getAccountType());
@@ -742,7 +743,7 @@ public abstract class BaseXPrint {
// emptyLine(1);
emptyLine(1);
- printer.appendPrnStr("(COUNT)TRANS", "AMOUNT(MMK)", fontNormal, false);
+ printer.appendPrnStr("(COUNT)TRANS", "AMOUNT(" + currencySign + ")", fontNormal, false);
if (!isWallet) {
boolean isDecimalEnabled = SystemParamsOperation.getInstance().getDecimalEnable();
@@ -1390,11 +1391,12 @@ public abstract class BaseXPrint {
}
}
- protected void printQRSettlementTransDetail(List lists) {
+ protected void printQRSettlementTransDetail(PayDetail payDetail, List lists) {
long totalAmount = 0;
long refundTotal = 0;
+ String currencySign = currencyCodeToText(payDetail.getCurrencyCode());
for (QRSettleData pay : lists) {
@@ -1408,7 +1410,7 @@ public abstract class BaseXPrint {
printString("Status :" + pay.getStatus());
printString("Date :" + pay.getDate());
printString("Time :" + pay.getTime());
- printString("Amount : MMK "
+ printString("Amount : " + currencySign + " "
+ (pay.getTransactionType() == TransactionsType.MMQR_REFUND.value ? "-" : "")
+ PrintUtils.getInstance().getSeparatorOnlyNumberFormat(pay.getAmount()));
@@ -1424,13 +1426,13 @@ public abstract class BaseXPrint {
dashBreak();
// print2ColumnsString("Refund Total:MMK", PrintUtils.getInstance().getSeparatorOnlyNumberFormat(refundTotal));
- printer.appendPrnStr("Refund Total:MMK", "- " + PrintUtils.getInstance().getSeparatorOnlyNumberFormat(refundTotal) + " ", fontNormal, false);
+ printer.appendPrnStr("Refund Total:" + currencySign, "- " + PrintUtils.getInstance().getSeparatorOnlyNumberFormat(refundTotal) + " ", fontNormal, false);
dashBreak();
// print2ColumnsString("Sale Total :MMK", PrintUtils.getInstance().getSeparatorOnlyNumberFormat(totalAmount));
- printer.appendPrnStr("Sale Total :MMK", PrintUtils.getInstance().getSeparatorOnlyNumberFormat(totalAmount) + " ", fontNormal, false);
+ printer.appendPrnStr("Sale Total :" + currencySign, PrintUtils.getInstance().getSeparatorOnlyNumberFormat(totalAmount) + " ", fontNormal, false);
dashBreak();
// print2ColumnsString("Grand Total :MMK", PrintUtils.getInstance().getSeparatorOnlyNumberFormat(totalAmount - refundTotal));
- printer.appendPrnStr("Grand Total :MMK", PrintUtils.getInstance().getSeparatorOnlyNumberFormat(totalAmount - refundTotal) + " ", fontNormal, false);
+ printer.appendPrnStr("Grand Total :" + currencySign, PrintUtils.getInstance().getSeparatorOnlyNumberFormat(totalAmount - refundTotal) + " ", fontNormal, false);
dashBreakEnding();
// emptyLine(2);
}
diff --git a/paylibs/src/main/java/com/utsmyanmar/paylibs/print/printx/PrintXImpl.java b/paylibs/src/main/java/com/utsmyanmar/paylibs/print/printx/PrintXImpl.java
index 05f4b5f..cf73bf7 100644
--- a/paylibs/src/main/java/com/utsmyanmar/paylibs/print/printx/PrintXImpl.java
+++ b/paylibs/src/main/java/com/utsmyanmar/paylibs/print/printx/PrintXImpl.java
@@ -216,7 +216,7 @@ public class PrintXImpl extends BaseXPrint implements PrintX {
printMerchantHeader();
printTransHeader(payDetail);
printTransDetailSettlement(payDetail);
- printMMQRReport(qrList);
+ printMMQRReport(payDetail, qrList);
printTransFooterForSettlement();
emptyLine(1);
@@ -237,7 +237,7 @@ public class PrintXImpl extends BaseXPrint implements PrintX {
printLogo();
printMerchantHeader();
printTransHeader(payDetail, HostType.QR);
- printQRSettlementTransDetail(list);
+ printQRSettlementTransDetail(payDetail, list);
printTransFooterSummary();
emptyLine(1);
@@ -371,9 +371,10 @@ public class PrintXImpl extends BaseXPrint implements PrintX {
boolean isNeedMinusSign = payDetail.getTransactionType() == TransactionsType.MMQR_REFUND.value;
boolean isQrDecimalEnable = SystemParamsOperation.getInstance().isQrDecimalEnable();
+ String currencySign = POSUtil.getInstance().currencyCodeToText(payDetail.getCurrencyCode());
dotBreak();
- print2ColumnsStringBoldCenter("AMOUNT :", isNeedMinusSign? "- "+PrintUtils.getInstance().getSeparatorNumberFormat(payDetail.getAmount(), isQrDecimalEnable) + " MMK": PrintUtils.getInstance().getSeparatorNumberFormat(payDetail.getAmount(), isQrDecimalEnable) + " MMK",fontLarge, AlignEnum.LEFT);
+ print2ColumnsStringBoldCenter("AMOUNT :", isNeedMinusSign? "- "+PrintUtils.getInstance().getSeparatorNumberFormat(payDetail.getAmount(), isQrDecimalEnable) + " " + currencySign: PrintUtils.getInstance().getSeparatorNumberFormat(payDetail.getAmount(), isQrDecimalEnable) + " " + currencySign,fontLarge, AlignEnum.LEFT);
dotBreak();
// if(payDetail.getTransactionType() == TransactionsType.MMQR.value) {
// String data = payDetail.getReferNo()+"-"+payDetail.getAmount()+"-"+payDetail.getQrTransId()+"-"+payDetail.getMerchantNo()+"-"+payDetail.getCustomerMobile().toUpperCase()+"-"+payDetail.getOriginalTransDate();
diff --git a/paylibs/src/main/java/com/utsmyanmar/paylibs/utils/POSUtil.java b/paylibs/src/main/java/com/utsmyanmar/paylibs/utils/POSUtil.java
index 1e64c91..99ed1ec 100644
--- a/paylibs/src/main/java/com/utsmyanmar/paylibs/utils/POSUtil.java
+++ b/paylibs/src/main/java/com/utsmyanmar/paylibs/utils/POSUtil.java
@@ -385,7 +385,7 @@ public class POSUtil {
return "Success";
}*/
- String currencySign = SystemParamsOperation.getInstance().getCurrencyType().name;
+ String currencySign = currencyCodeToText(payDetail.getCurrencyCode());
if(payDetail.getTransactionType() == TransactionsType.VOID.value ) {
return "Transaction for Amount \n"+getDecimalAmountFormat(payDetail.getAmount()) +" "+currencySign+" Voided.";
@@ -410,7 +410,7 @@ public class POSUtil {
}
} else if(TextUtils.equals(payDetail.getAccountType(),"WALLET")) {
if(payDetail.getQrTransStatus() == 1) {
- return "Transaction for Amount \n"+getDecimalAmountFormat(payDetail.getAmount()) +" MMK Received.";
+ return "Transaction for Amount \n"+getDecimalAmountFormat(payDetail.getAmount()) +" "+currencyCodeToText(payDetail.getCurrencyCode())+" Received.";
} else if(payDetail.getQrTransStatus() == 3){
return "Declined \n COMMUNICATION ERROR";
} else if(payDetail.getQrTransStatus() == 2) {