This commit is contained in:
moon 2026-08-31 11:33:16 +06:30
parent 4ff2d286aa
commit 597560e3bd
8 changed files with 29 additions and 22 deletions

View File

@ -222,6 +222,7 @@ public class InputRRNFragment extends DataBindingFragment {
newPay.setReferNo(rrnNo); newPay.setReferNo(rrnNo);
newPay.setCurrencyCode(payDetail.getCurrencyCode());
if(sharedViewModel.getTransMenu().getValue() == TransMenu.PRE_AUTH_FULL_VOID) { if(sharedViewModel.getTransMenu().getValue() == TransMenu.PRE_AUTH_FULL_VOID) {
newPay.setAmount(payDetail.getAmount()); newPay.setAmount(payDetail.getAmount());
@ -315,6 +316,7 @@ public class InputRRNFragment extends DataBindingFragment {
} }
newPay.setReferNo(rrnNo); newPay.setReferNo(rrnNo);
newPay.setCurrencyCode(payDetail.getCurrencyCode());
newPay.setApprovalCode(payDetail.getApprovalCode()); newPay.setApprovalCode(payDetail.getApprovalCode());
newPay.setTradeTime(payDetail.getTradeTime()); newPay.setTradeTime(payDetail.getTradeTime());
newPay.setTradeDate(payDetail.getTradeDate()); newPay.setTradeDate(payDetail.getTradeDate());

View File

@ -113,7 +113,7 @@ public class ReceiptFragment extends DataBindingFragment {
data.retrievalReferenceNumber = payDetail.getReferNo(); data.retrievalReferenceNumber = payDetail.getReferNo();
data.approvalNumber = payDetail.getApprovalCode(); data.approvalNumber = payDetail.getApprovalCode();
data.amount = POSUtil.getInstance().getDecimalAmountSeparatorFormat(payDetail.getAmount()); 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.footerMessage = "Keep this receipt for your records";
data.responseCode = payDetail.getTradeAnswerCode(); data.responseCode = payDetail.getTradeAnswerCode();

View File

@ -460,6 +460,7 @@ public class EmvTransactionProcessViewModel extends EmvBaseViewModel implements
mPayDetail.setIsCanceled(true); mPayDetail.setIsCanceled(true);
updatePayDetail(mPayDetail); updatePayDetail(mPayDetail);
payResult.setESignBlob(mPayDetail.getESignBlob()); payResult.setESignBlob(mPayDetail.getESignBlob());
payResult.setCurrencyCode(mPayDetail.getCurrencyCode());
repository.insertPayDetail(updateCurrentDateAndTime(payResult)); repository.insertPayDetail(updateCurrentDateAndTime(payResult));
} }

View File

@ -300,6 +300,7 @@ public class TransProcessViewModel extends ViewModel implements ProcessingTransa
payDetail.setIsCanceled(true); payDetail.setIsCanceled(true);
updatePayDetail(payDetail); updatePayDetail(payDetail);
payResult.setESignBlob(payDetail.getESignBlob()); payResult.setESignBlob(payDetail.getESignBlob());
payResult.setCurrencyCode(payDetail.getCurrencyCode());
repository.insertPayDetail(updateCurrentDateAndTime(payResult)); repository.insertPayDetail(updateCurrentDateAndTime(payResult));
} }

View File

@ -131,12 +131,12 @@
<TextView <TextView
android:layout_width="wrap_content" android:layout_width="wrap_content"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:text="@{sharedViewModel._currencyText+` `+sharedViewModel.amount}" android:text="@{sharedViewModel.payDetail != null ? sharedViewModel.amount : sharedViewModel.amount}"
android:textColor="@color/colorTextTitle" android:textColor="@color/colorTextTitle"
android:textSize="16sp" android:textSize="16sp"
android:textStyle="bold" android:textStyle="bold"
android:fontFamily="@font/rubik_medium" android:fontFamily="@font/rubik_medium"
tools:text="MMK 250,000.00" /> tools:text="250,000.00" />
</LinearLayout> </LinearLayout>

View File

@ -300,11 +300,12 @@ public abstract class BaseXPrint {
return currencyMap; return currencyMap;
} }
protected void printMMQRReport(List<QRSettleData> qrList) { protected void printMMQRReport(PayDetail payDetail, List<QRSettleData> qrList) {
if (qrList == null || qrList.isEmpty()) return; if (qrList == null || qrList.isEmpty()) return;
long saleTotal = 0; long saleTotal = 0;
long refundTotal = 0; long refundTotal = 0;
String currencySign = currencyCodeToText(payDetail.getCurrencyCode());
emptyLine(1); emptyLine(1);
@ -322,7 +323,7 @@ public abstract class BaseXPrint {
printString("Status :" + data.getStatus()); printString("Status :" + data.getStatus());
printString("Date :" + data.getDate()); printString("Date :" + data.getDate());
printString("Time :" + data.getTime()); printString("Time :" + data.getTime());
printString("Amount : MMK " printString("Amount : " + currencySign + " "
+ (data.getTransactionType() == TransactionsType.MMQR_REFUND.value ? "-" : "") + (data.getTransactionType() == TransactionsType.MMQR_REFUND.value ? "-" : "")
+ PrintUtils.getInstance().getSeparatorOnlyNumberFormat(data.getAmount())); + PrintUtils.getInstance().getSeparatorOnlyNumberFormat(data.getAmount()));
emptyLine(1); emptyLine(1);
@ -332,13 +333,13 @@ public abstract class BaseXPrint {
dotBreak(); dotBreak();
// printer.appendPrnStr("Refund Total:MMK", "- " + PrintUtils.getInstance().getSeparatorOnlyNumberFormat(refundTotal) + " ", fontNormal, false); // 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(); dotBreak();
// printer.appendPrnStr("Sale Total :MMK", PrintUtils.getInstance().getSeparatorOnlyNumberFormat(saleTotal) + " ", fontNormal, false); // 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(); dotBreak();
// printer.appendPrnStr("Total :MMK", PrintUtils.getInstance().getSeparatorOnlyNumberFormat(grandTotal) + " ", fontNormal, false); // 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(); dashBreakEnding();
emptyLine(1); emptyLine(1);
} }
@ -520,7 +521,7 @@ public abstract class BaseXPrint {
if (payDetail.getTradeAnswerCode().equals("00") || payDetail.getTradeAnswerCode().equals("000")) { if (payDetail.getTradeAnswerCode().equals("00") || payDetail.getTradeAnswerCode().equals("000")) {
String currencySign = currencyCodeToText(payDetail.getCurrencyCode()); String currencySign = currencyCodeToText(payDetail.getCurrencyCode());
if (payDetail.getTransactionType() == TransactionType.BALANCE_INQUIRY) { 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) { } 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)); print2SideString("AMT:" + currencySign, "- " + PrintUtils.getInstance().getSeparatorNumberFormat(payDetail.getAmount(), isDecimalEnabled));
@ -682,7 +683,7 @@ public abstract class BaseXPrint {
String currencySign = currencyCodeToText(payDetail.getCurrencyCode()); String currencySign = currencyCodeToText(payDetail.getCurrencyCode());
// CurrencyType currencySign = currencyTextToCurrencyType(payDetail.getCurrencyCode()); // CurrencyType currencySign = currencyTextToCurrencyType(payDetail.getCurrencyCode());
if (payDetail.getTransactionType() == TransactionType.BALANCE_INQUIRY) { 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 { } else {
print2SideString("AMT:" + currencySign, PrintUtils.getInstance().getSeparatorNumberFormat(payDetail.getAmount(), isDecimalEnabled)); print2SideString("AMT:" + currencySign, PrintUtils.getInstance().getSeparatorNumberFormat(payDetail.getAmount(), isDecimalEnabled));
// printer.appendPrnStr("AMOUNT:" + currencySign + " " + PrintUtils.getInstance().getSeparatorNumberFormat(payDetail.getAmount()), fontNormal, AlignEnum.LEFT,true); // 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) { protected void printTransDetailSummary(PayDetail payDetail) {
String MMK = "MMK"; String currencySign = currencyCodeToText(payDetail.getCurrencyCode());
SettleData settleData = payDetail.getSettleDataObj(); SettleData settleData = payDetail.getSettleDataObj();
boolean isQrDecimalEnabled = SystemParamsOperation.getInstance().isQrDecimalEnable(); boolean isQrDecimalEnabled = SystemParamsOperation.getInstance().isQrDecimalEnable();
boolean isWallet = "WALLET".equalsIgnoreCase(payDetail.getAccountType()); boolean isWallet = "WALLET".equalsIgnoreCase(payDetail.getAccountType());
@ -742,7 +743,7 @@ public abstract class BaseXPrint {
// emptyLine(1); // emptyLine(1);
emptyLine(1); emptyLine(1);
printer.appendPrnStr("(COUNT)TRANS", "AMOUNT(MMK)", fontNormal, false); printer.appendPrnStr("(COUNT)TRANS", "AMOUNT(" + currencySign + ")", fontNormal, false);
if (!isWallet) { if (!isWallet) {
boolean isDecimalEnabled = SystemParamsOperation.getInstance().getDecimalEnable(); boolean isDecimalEnabled = SystemParamsOperation.getInstance().getDecimalEnable();
@ -1390,11 +1391,12 @@ public abstract class BaseXPrint {
} }
} }
protected void printQRSettlementTransDetail(List<QRSettleData> lists) { protected void printQRSettlementTransDetail(PayDetail payDetail, List<QRSettleData> lists) {
long totalAmount = 0; long totalAmount = 0;
long refundTotal = 0; long refundTotal = 0;
String currencySign = currencyCodeToText(payDetail.getCurrencyCode());
for (QRSettleData pay : lists) { for (QRSettleData pay : lists) {
@ -1408,7 +1410,7 @@ public abstract class BaseXPrint {
printString("Status :" + pay.getStatus()); printString("Status :" + pay.getStatus());
printString("Date :" + pay.getDate()); printString("Date :" + pay.getDate());
printString("Time :" + pay.getTime()); printString("Time :" + pay.getTime());
printString("Amount : MMK " printString("Amount : " + currencySign + " "
+ (pay.getTransactionType() == TransactionsType.MMQR_REFUND.value ? "-" : "") + (pay.getTransactionType() == TransactionsType.MMQR_REFUND.value ? "-" : "")
+ PrintUtils.getInstance().getSeparatorOnlyNumberFormat(pay.getAmount())); + PrintUtils.getInstance().getSeparatorOnlyNumberFormat(pay.getAmount()));
@ -1424,13 +1426,13 @@ public abstract class BaseXPrint {
dashBreak(); dashBreak();
// print2ColumnsString("Refund Total:MMK", PrintUtils.getInstance().getSeparatorOnlyNumberFormat(refundTotal)); // 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(); dashBreak();
// print2ColumnsString("Sale Total :MMK", PrintUtils.getInstance().getSeparatorOnlyNumberFormat(totalAmount)); // 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(); dashBreak();
// print2ColumnsString("Grand Total :MMK", PrintUtils.getInstance().getSeparatorOnlyNumberFormat(totalAmount - refundTotal)); // 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(); dashBreakEnding();
// emptyLine(2); // emptyLine(2);
} }

View File

@ -216,7 +216,7 @@ public class PrintXImpl extends BaseXPrint implements PrintX {
printMerchantHeader(); printMerchantHeader();
printTransHeader(payDetail); printTransHeader(payDetail);
printTransDetailSettlement(payDetail); printTransDetailSettlement(payDetail);
printMMQRReport(qrList); printMMQRReport(payDetail, qrList);
printTransFooterForSettlement(); printTransFooterForSettlement();
emptyLine(1); emptyLine(1);
@ -237,7 +237,7 @@ public class PrintXImpl extends BaseXPrint implements PrintX {
printLogo(); printLogo();
printMerchantHeader(); printMerchantHeader();
printTransHeader(payDetail, HostType.QR); printTransHeader(payDetail, HostType.QR);
printQRSettlementTransDetail(list); printQRSettlementTransDetail(payDetail, list);
printTransFooterSummary(); printTransFooterSummary();
emptyLine(1); emptyLine(1);
@ -371,9 +371,10 @@ public class PrintXImpl extends BaseXPrint implements PrintX {
boolean isNeedMinusSign = payDetail.getTransactionType() == TransactionsType.MMQR_REFUND.value; boolean isNeedMinusSign = payDetail.getTransactionType() == TransactionsType.MMQR_REFUND.value;
boolean isQrDecimalEnable = SystemParamsOperation.getInstance().isQrDecimalEnable(); boolean isQrDecimalEnable = SystemParamsOperation.getInstance().isQrDecimalEnable();
String currencySign = POSUtil.getInstance().currencyCodeToText(payDetail.getCurrencyCode());
dotBreak(); 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(); dotBreak();
// if(payDetail.getTransactionType() == TransactionsType.MMQR.value) { // if(payDetail.getTransactionType() == TransactionsType.MMQR.value) {
// String data = payDetail.getReferNo()+"-"+payDetail.getAmount()+"-"+payDetail.getQrTransId()+"-"+payDetail.getMerchantNo()+"-"+payDetail.getCustomerMobile().toUpperCase()+"-"+payDetail.getOriginalTransDate(); // String data = payDetail.getReferNo()+"-"+payDetail.getAmount()+"-"+payDetail.getQrTransId()+"-"+payDetail.getMerchantNo()+"-"+payDetail.getCustomerMobile().toUpperCase()+"-"+payDetail.getOriginalTransDate();

View File

@ -385,7 +385,7 @@ public class POSUtil {
return "Success"; return "Success";
}*/ }*/
String currencySign = SystemParamsOperation.getInstance().getCurrencyType().name; String currencySign = currencyCodeToText(payDetail.getCurrencyCode());
if(payDetail.getTransactionType() == TransactionsType.VOID.value ) { if(payDetail.getTransactionType() == TransactionsType.VOID.value ) {
return "Transaction for Amount \n"+getDecimalAmountFormat(payDetail.getAmount()) +" "+currencySign+" Voided."; return "Transaction for Amount \n"+getDecimalAmountFormat(payDetail.getAmount()) +" "+currencySign+" Voided.";
@ -410,7 +410,7 @@ public class POSUtil {
} }
} else if(TextUtils.equals(payDetail.getAccountType(),"WALLET")) { } else if(TextUtils.equals(payDetail.getAccountType(),"WALLET")) {
if(payDetail.getQrTransStatus() == 1) { 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){ } else if(payDetail.getQrTransStatus() == 3){
return "Declined \n COMMUNICATION ERROR"; return "Declined \n COMMUNICATION ERROR";
} else if(payDetail.getQrTransStatus() == 2) { } else if(payDetail.getQrTransStatus() == 2) {