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) {