From 48581e12917398a92f36f05d810c8dc934444e13 Mon Sep 17 00:00:00 2001
From: MooN <56061215+MgKyawLay@users.noreply.github.com>
Date: Mon, 5 Jan 2026 20:46:18 +0630
Subject: [PATCH 1/5] receipt design change
---
.../paylibs/print/printx/BaseXPrint.java | 227 ++++++++++++------
.../paylibs/print/printx/PrintXImpl.java | 41 ++--
2 files changed, 171 insertions(+), 97 deletions(-)
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 6edd129..85faea5 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
@@ -6,6 +6,7 @@ import android.content.Context;
import android.content.res.Resources;
import android.graphics.Bitmap;
import android.graphics.Typeface;
+import android.icu.util.LocaleData;
import android.os.Build;
import android.os.RemoteException;
import android.text.TextUtils;
@@ -40,7 +41,11 @@ import com.utsmyanmar.paylibs.utils.iso_utils.TransactionType;
import com.utsmyanmar.paylibs.utils.iso_utils.TransactionsType;
import com.utsmyanmar.paylibs.utils.print_utils.BitmapUtils;
+import java.text.SimpleDateFormat;
+import java.time.LocalDate;
+import java.time.format.DateTimeFormatter;
import java.util.Comparator;
+import java.util.Date;
import java.util.LinkedHashMap;
import java.util.List;
import java.util.Locale;
@@ -196,6 +201,10 @@ public abstract class BaseXPrint {
}
+ protected void dotBreak(){
+ printer.appendPrnStr(new String(new char[29]).replace("\0", "."), fontNormal, AlignEnum.LEFT, false);
+ }
+
protected void dashBreak() {
printer.appendPrnStr("-----------------------------", fontNormal, AlignEnum.LEFT,false);
@@ -492,7 +501,6 @@ public abstract class BaseXPrint {
protected void printTransDetailSummary(PayDetail payDetail) {
-
String MMK = "MMK";
SettleData settleData = payDetail.getSettleDataObj();
boolean isQrDecimalEnabled = SystemParamsOperation.getInstance().isQrDecimalEnable();
@@ -507,49 +515,19 @@ public abstract class BaseXPrint {
return;
}
if (payDetail.getAccountType().equals("WALLET")) {
- printer.appendPrnStr("PAYMENT NAME: QR", fontNormal, AlignEnum.LEFT,false);
+// printer.appendPrnStr("PAYMENT NAME: PAY BY QR", fontNormal, AlignEnum.LEFT,false);
+ printString("TYPE : " + "PAY BY QR");
} else {
printer.appendPrnStr("CARD NAME:" + payDetail.getAccountType(), fontNormal, AlignEnum.LEFT,false);
}
// printer.appendPrnStr(" " + "COUNT " + " " + " TOTAL", fontNormal, AlignEnum.LEFT,false);
- printer.appendPrnStr("COUNT", "TOTAL", fontNormal, false);
+// printer.appendPrnStr("COUNT", "TOTAL", fontNormal, false);
// printer.printColumnsString(new String[]{"", "COUNT", "TOTAL"}, new int[]{2,1, 1}, new int[]{ 2,1, 2}, innerResultCallback);
// emptyLine(1);
- if (settleData.getSaleCount() > 0)
- printColumnString("SALES", settleData.getSaleCount(), settleData.getSaleAmount(), false);
-// printer.appendPrnStr("SALES "+ countStringFormat(settleData.getSaleCount())+MMK+" "+ PrintUtils.getInstance().getSeparatorNumberFormat(settleData.getSaleAmount()), fontNormal, AlignEnum.LEFT,false);
- if (settleData.getVoidSaleCount() > 0)
- printColumnString("VOID SALES", settleData.getVoidSaleCount(), settleData.getVoidSaleAmount(), true);
- if (settleData.getCashAdvanceCount() > 0)
- printColumnString("CASH OUT", settleData.getCashAdvanceCount(), settleData.getCashAdvanceAmount(), false);
- if (settleData.getPreAuthCount() > 0)
- printColumnString("PRE AUTH", settleData.getPreAuthCount(), settleData.getPreAuthAmount(), false);
- if (settleData.getPreAuthVoidCount() > 0)
- printColumnString("VOID PREAUTH", settleData.getPreAuthVoidCount(), settleData.getPreAuthVoidAmount(), true);
- if (settleData.getRefundCount() > 0)
- printColumnString("REFUND", settleData.getRefundCount(), settleData.getRefundAmount(), true);
- if (settleData.getPreAuthCompCount() > 0)
- printColumnString("PREAUTH COMP", settleData.getPreAuthCompCount(), settleData.getPreAuthCompAmount(), false);
- if (settleData.getPreAuthCompVoidCount() > 0)
- printColumnString("VOID PREAUTH COMPLETE", settleData.getPreAuthCompVoidCount(), settleData.getPreAuthCompVoidAmount(), true);
- if (settleData.getWavePayCount() > 0){
-// printColumnString("QR PAY", settleData.getWavePayCount(), settleData.getWavePayAmount(), false);
- printer.appendPrnStr( "QR PAY " + countStringFormat(settleData.getWavePayCount()) + " " + "MMK" , PrintUtils.getInstance().getSeparatorNumberFormat(settleData.getWavePayAmount(), isQrDecimalEnabled) , fontNormal, false);
- }
- if (settleData.getWaveRefundCount() > 0) {
-// printColumnString("QR REFUND", settleData.getWaveRefundCount(), settleData.getWaveRefundAmount(), true);
- printer.appendPrnStr( "QR REFUND " + countStringFormat(settleData.getWaveRefundCount()) + " " + "MMK" , PrintUtils.getInstance().getSeparatorNumberFormat(settleData.getWaveRefundAmount(), isQrDecimalEnabled) , fontNormal, false);
- }
- dashBreak();
-// printColumnString("TOTAL", totalCount, totalAmount, false);
- printer.appendPrnStr( "TOTAL " + countStringFormat(totalCount) + " " + "MMK", PrintUtils.getInstance().getSeparatorNumberFormat(totalAmount, isQrDecimalEnabled) , fontNormal, false);
+ emptyLine(1);
+
+ printer.appendPrnStr("(COUNT)TRANS", "AMOUNT(MMK)", fontNormal, false);
- printer.appendPrnStr("\n", fontNormal, AlignEnum.LEFT,false);
- printer.appendPrnStr("GRAND TOTAL", fontNormal, AlignEnum.LEFT,false);
-// printer.appendPrnStr(" " + "COUNT " + " " + " TOTAL", fontNormal, AlignEnum.LEFT,false);
- printer.appendPrnStr("COUNT", "TOTAL", fontNormal, false);
-// printer.printColumnsString(new String[]{"", "COUNT", "TOTAL"}, new int[]{2,1, 1}, new int[]{ 2,1, 2}, innerResultCallback);
-// emptyLine(1);
if (settleData.getSaleCount() > 0)
printColumnString("SALES", settleData.getSaleCount(), settleData.getSaleAmount(), false);
// printer.appendPrnStr("SALES "+ countStringFormat(settleData.getSaleCount())+MMK+" "+ PrintUtils.getInstance().getSeparatorNumberFormat(settleData.getSaleAmount()), fontNormal, AlignEnum.LEFT,false);
@@ -567,17 +545,56 @@ public abstract class BaseXPrint {
printColumnString("PREAUTH COMP", settleData.getPreAuthCompCount(), settleData.getPreAuthCompAmount(), false);
if (settleData.getPreAuthCompVoidCount() > 0)
printColumnString("VOID PREAUTH COMPLETE", settleData.getPreAuthCompVoidCount(), settleData.getPreAuthCompVoidAmount(), true);
- if (settleData.getWavePayCount() > 0) {
+ if (settleData.getWavePayCount() >= 0){
// printColumnString("QR PAY", settleData.getWavePayCount(), settleData.getWavePayAmount(), false);
- printer.appendPrnStr( "QR PAY " + countStringFormat(settleData.getWavePayCount()) + " " + "MMK" , PrintUtils.getInstance().getSeparatorNumberFormat(settleData.getWavePayAmount(), isQrDecimalEnabled) , fontNormal, false);
+// printer.appendPrnStr( "QR PAY " + countStringFormat(settleData.getWavePayCount()) + " " + "MMK" , PrintUtils.getInstance().getSeparatorNumberFormat(settleData.getWavePayAmount(), isQrDecimalEnabled) , fontNormal, false);
+ printer.appendPrnStr( "(" + settleData.getWavePayCount() + ")" + "QR PAY" , PrintUtils.getInstance().getSeparatorNumberFormat(settleData.getWavePayAmount(), isQrDecimalEnabled) , fontNormal, false);
}
- if (settleData.getWaveRefundCount() > 0){
+ if (settleData.getWaveRefundCount() >= 0) {
// printColumnString("QR REFUND", settleData.getWaveRefundCount(), settleData.getWaveRefundAmount(), true);
- printer.appendPrnStr( "QR REFUND " + countStringFormat(settleData.getWaveRefundCount()) + " " + "MMK" , PrintUtils.getInstance().getSeparatorNumberFormat(settleData.getWaveRefundAmount(), isQrDecimalEnabled) , fontNormal, false);
+// printer.appendPrnStr( "QR REFUND " + countStringFormat(settleData.getWaveRefundCount()) + " " + "MMK" , PrintUtils.getInstance().getSeparatorNumberFormat(settleData.getWaveRefundAmount(), isQrDecimalEnabled) , fontNormal, false);
+ printer.appendPrnStr( "(" + settleData.getWaveRefundCount() + ")" + "QR REFUND", "- " + PrintUtils.getInstance().getSeparatorNumberFormat(settleData.getWaveRefundAmount(), isQrDecimalEnabled) , fontNormal, false);
}
- dashBreak();
+// dashBreak();
+ dotBreak();
// printColumnString("TOTAL", totalCount, totalAmount, false);
- printer.appendPrnStr( "TOTAL " + countStringFormat(totalCount) + " " + "MMK", PrintUtils.getInstance().getSeparatorNumberFormat(totalAmount, isQrDecimalEnabled) , fontNormal, false);
+// printer.appendPrnStr( "TOTAL " + countStringFormat(totalCount) + " " + "MMK", PrintUtils.getInstance().getSeparatorNumberFormat(totalAmount, isQrDecimalEnabled) , fontNormal, false);
+ printer.appendPrnStr( "TOTAL", PrintUtils.getInstance().getSeparatorNumberFormat(totalAmount, isQrDecimalEnabled) , fontNormal, false);
+
+// printer.appendPrnStr("\n", fontNormal, AlignEnum.LEFT,false);
+// printer.appendPrnStr("GRAND TOTAL", fontNormal, AlignEnum.LEFT,false);
+//// printer.appendPrnStr(" " + "COUNT " + " " + " TOTAL", fontNormal, AlignEnum.LEFT,false);
+// printer.appendPrnStr("COUNT", "TOTAL", fontNormal, false);
+//// printer.printColumnsString(new String[]{"", "COUNT", "TOTAL"}, new int[]{2,1, 1}, new int[]{ 2,1, 2}, innerResultCallback);
+//// emptyLine(1);
+// if (settleData.getSaleCount() > 0)
+// printColumnString("SALES", settleData.getSaleCount(), settleData.getSaleAmount(), false);
+//// printer.appendPrnStr("SALES "+ countStringFormat(settleData.getSaleCount())+MMK+" "+ PrintUtils.getInstance().getSeparatorNumberFormat(settleData.getSaleAmount()), fontNormal, AlignEnum.LEFT,false);
+// if (settleData.getVoidSaleCount() > 0)
+// printColumnString("VOID SALES", settleData.getVoidSaleCount(), settleData.getVoidSaleAmount(), true);
+// if (settleData.getCashAdvanceCount() > 0)
+// printColumnString("CASH OUT", settleData.getCashAdvanceCount(), settleData.getCashAdvanceAmount(), false);
+// if (settleData.getPreAuthCount() > 0)
+// printColumnString("PRE AUTH", settleData.getPreAuthCount(), settleData.getPreAuthAmount(), false);
+// if (settleData.getPreAuthVoidCount() > 0)
+// printColumnString("VOID PREAUTH", settleData.getPreAuthVoidCount(), settleData.getPreAuthVoidAmount(), true);
+// if (settleData.getRefundCount() > 0)
+// printColumnString("REFUND", settleData.getRefundCount(), settleData.getRefundAmount(), true);
+// if (settleData.getPreAuthCompCount() > 0)
+// printColumnString("PREAUTH COMP", settleData.getPreAuthCompCount(), settleData.getPreAuthCompAmount(), false);
+// if (settleData.getPreAuthCompVoidCount() > 0)
+// printColumnString("VOID PREAUTH COMPLETE", settleData.getPreAuthCompVoidCount(), settleData.getPreAuthCompVoidAmount(), true);
+// if (settleData.getWavePayCount() > 0) {
+//// printColumnString("QR PAY", settleData.getWavePayCount(), settleData.getWavePayAmount(), false);
+// printer.appendPrnStr( "QR PAY " + countStringFormat(settleData.getWavePayCount()) + " " + "MMK" , PrintUtils.getInstance().getSeparatorNumberFormat(settleData.getWavePayAmount(), isQrDecimalEnabled) , fontNormal, false);
+// }
+// if (settleData.getWaveRefundCount() > 0){
+//// printColumnString("QR REFUND", settleData.getWaveRefundCount(), settleData.getWaveRefundAmount(), true);
+// printer.appendPrnStr( "QR REFUND " + countStringFormat(settleData.getWaveRefundCount()) + " " + "MMK" , PrintUtils.getInstance().getSeparatorNumberFormat(settleData.getWaveRefundAmount(), isQrDecimalEnabled) , fontNormal, false);
+// }
+// dashBreak();
+//// printColumnString("TOTAL", totalCount, totalAmount, false);
+// printer.appendPrnStr( "TOTAL " + countStringFormat(totalCount) + " " + "MMK", PrintUtils.getInstance().getSeparatorNumberFormat(totalAmount, isQrDecimalEnabled) , fontNormal, false);
// printer.appendPrnStr("\n", fontNormal, AlignEnum.LEFT,false);
@@ -653,9 +670,11 @@ public abstract class BaseXPrint {
}
protected void print2ColumnsStringBoldCenter(String first, String second, int fontSize, AlignEnum align) {
- printer.appendPrnStr(first + " " + second, fontSize, align,true);
+ printer.appendPrnStr(first + " " + second, fontSize, align,true);
}
+
+
protected void print3ColumnsString(String first, String second, String third) {
// printer.appendPrnStr(first + " " + second + " " + third, fontNormal, AlignEnum.LEFT,false);
printer.appendPrnStr(first + " " + second + " " + third, fontNormal, AlignEnum.LEFT,false);
@@ -676,23 +695,22 @@ public abstract class BaseXPrint {
print2ColumnsString("AMOUNT", "");
print2ColumnsString("REF NUM", "");
} else if (hostType == HostType.QR) {
- print2ColumnsString("PAYMENT NAME", "");
- print2ColumnsString("DATE", "TIME");
- print2ColumnsString("TRANSACTION", "TRACE NO");
- print2ColumnsString("TRXN ID", "");
- print2ColumnsString("AMOUNT", "");
+// print2ColumnsString("PAYMENT NAME", "");
+// print2ColumnsString("DATE", "TIME");
+// print2ColumnsString("TRANSACTION", "TRACE NO");
+// print2ColumnsString("TRXN ID", "");
+// print2ColumnsString("AMOUNT", "");
}
// breakingLine();
- lineBreak();
long totalAmount = 0;
for (PayDetail pay : lists) {
-
boolean isNeedMinusSign = pay.getTransactionType() == TransactionsType.VOID.value || pay.getTransactionType() == TransactionsType.REFUND.value || pay.getTransactionType() == TransactionsType.MMQR_REFUND.value;
boolean isDecimalEnabled = SystemParamsOperation.getInstance().isQrDecimalEnable();
+
if (hostType == HostType.MPU || hostType == HostType.VISA_MASTER) {
print2ColumnsString(pay.getAccountType(), PrintUtils.getInstance().maskCardNumberPciDss(pay.getCardNo()));
print2ColumnsString("**/**", pay.getVoucherNo());
@@ -700,20 +718,43 @@ public abstract class BaseXPrint {
print2ColumnsString(pay.getReferNo(), "");
} else if (hostType == HostType.QR) {
+
+ printString("TRANS ID:" + pay.getQrTransId());
+ printString("STATUS :" + pay.getTC());
+ printString("SOURCE :" +
+ (pay.getTransactionType() == TransactionsType.MMQR_REFUND.value
+ ? "QR PAYMENT"
+ : pay.getCustomerMobile())
+ );
+// printString("TXN NAME:" + pay.getTransType().replace("_", " "));
+ printString("DATE :" + POSUtil.getInstance().formatDisplayDate(pay.getTransDate()) + " " + pay.getTransTime());
+ printString("TRACE NO:" + pay.getVoucherNo());
if (pay.getTransactionType() == TransactionsType.MMQR_REFUND.value) {
- print2ColumnsString("QR PAYMENT", "");
- } else {
- print2ColumnsString(pay.getCustomerMobile(), "");
- }
- print2ColumnsString(pay.getTransDate(), pay.getTransTime());
- print2ColumnsString(pay.getTransType().replace("_", " "), pay.getVoucherNo());
- if (pay.getTransactionType() == TransactionsType.MMQR_REFUND.value) {
- print2ColumnsString(pay.getReferNo() + "(RRN)", "");
- print2ColumnsString(isNeedMinusSign ? "-" + PrintUtils.getInstance().getSeparatorNumberFormat(pay.getAmount(), isDecimalEnabled) : "" + PrintUtils.getInstance().getSeparatorNumberFormat(pay.getAmount(), isDecimalEnabled), "");
- } else {
- print2ColumnsString(pay.getQrTransId(), "");
- print2ColumnsString(isNeedMinusSign ? "-" + PrintUtils.getInstance().getSeparatorNumberFormat(pay.getAmount(), isDecimalEnabled) : "" + PrintUtils.getInstance().getSeparatorNumberFormat(pay.getAmount(), isDecimalEnabled) , "");
+ printString("RRN :" + pay.getReferNo());
}
+ printString("AMOUNT :" +
+ (isNeedMinusSign
+ ? "-" + PrintUtils.getInstance()
+ .getSeparatorNumberFormat(pay.getAmount(), isDecimalEnabled)
+ : PrintUtils.getInstance()
+ .getSeparatorNumberFormat(pay.getAmount(), isDecimalEnabled))
+ + " " +"MMK");
+ dotBreak();
+
+// if (pay.getTransactionType() == TransactionsType.MMQR_REFUND.value) {
+// print2ColumnsString("QR PAYMENT", "");
+// } else {
+// print2ColumnsString(pay.getCustomerMobile(), "");
+// }
+// print2ColumnsString(pay.getTransDate(), pay.getTransTime());
+// print2ColumnsString(pay.getTransType().replace("_", " "), pay.getVoucherNo());
+// if (pay.getTransactionType() == TransactionsType.MMQR_REFUND.value) {
+// print2ColumnsString(pay.getReferNo() + "(RRN)", "");
+// print2ColumnsString(isNeedMinusSign ? "-" + PrintUtils.getInstance().getSeparatorNumberFormat(pay.getAmount(), isDecimalEnabled) : "" + PrintUtils.getInstance().getSeparatorNumberFormat(pay.getAmount(), isDecimalEnabled), "");
+// } else {
+// print2ColumnsString(pay.getQrTransId(), "");
+// print2ColumnsString(isNeedMinusSign ? "-" + PrintUtils.getInstance().getSeparatorNumberFormat(pay.getAmount(), isDecimalEnabled) : "" + PrintUtils.getInstance().getSeparatorNumberFormat(pay.getAmount(), isDecimalEnabled) , "");
+// }
}
@@ -921,7 +962,7 @@ public abstract class BaseXPrint {
// merchantPhoneNo = "MERCHANT PHONENO";
// }
if(TextUtils.equals(terminalName, "") || terminalName == null){
- terminalName = "Terminal Name";
+ terminalName = "";
}
// emptyLine(1);
// printer.appendPrnStr(receiptHeader, fontNormal, AlignEnum.CENTER,false);
@@ -931,8 +972,7 @@ public abstract class BaseXPrint {
printer.appendPrnStr(merchantAddress3, fontNormal, AlignEnum.CENTER,false);
// printer.appendPrnStr(merchantPhoneNo, fontNormal, AlignEnum.CENTER,false);
// emptyLine(1);
-// dashBreak();
- lineBreak();
+ dotBreak();
}
protected void printKeyInfo() {
@@ -988,33 +1028,32 @@ public abstract class BaseXPrint {
String traceNum = payDetail.getVoucherNo();
// String traceNum = SystemParamsOperation.getInstance().getCurrentSerialNum();
-
batchNum = payDetail.getBatchNo();
-
// printer.appendPrnStr("DATE :" + payDetail.getTransDate() + " TIME:" + payDetail.getTransTime(), fontNormal, AlignEnum.LEFT,false);
- printer.appendPrnStr("DATE :" + POSUtil.getInstance().formatDisplayDate(payDetail.getTransDate()), fontNormal, AlignEnum.LEFT, false);
- printer.appendPrnStr("TIME :" + payDetail.getTransTime(), fontNormal, AlignEnum.LEFT, false);
+ printer.appendPrnStr("DATE :" + POSUtil.getInstance().formatDisplayDate(payDetail.getTransDate()), fontNormal, AlignEnum.LEFT, false);
+ printer.appendPrnStr("TIME :" + payDetail.getTransTime(), fontNormal, AlignEnum.LEFT, false);
if (payDetail.getTransactionType() == TransactionsType.MMQR.value && payDetail.getQrTransStatus() == 1) {
// printer.appendPrnStr("TRACE NO:" + traceNum + " INV NO:" + invoiceNo, fontNormal, AlignEnum.LEFT,false);
- printer.appendPrnStr("INV NO :" + invoiceNo , fontNormal, AlignEnum.LEFT,false);
+ printer.appendPrnStr("INV NO :" + invoiceNo , fontNormal, AlignEnum.LEFT,false);
} else if (!payDetail.getTransType().equals(SETTLEMENT) && !payDetail.getTransType().equals(SUMMARY) && payDetail.getTransactionType() != TransactionsType.MMQR_REFUND.value && payDetail.getTransactionType() != TransactionsType.MMQR.value) {
- printer.appendPrnStr("BTH NO :" + batchNum + " INV NO:" + invoiceNo, fontNormal, AlignEnum.LEFT,false);
+ printer.appendPrnStr("BTH NO :" + batchNum + " INV NO:" + invoiceNo, fontNormal, AlignEnum.LEFT,false);
} else if (payDetail.getTransType().equals(SUMMARY)) {
- printer.appendPrnStr("HOST :" + HOST_NAME_MPU + "", fontNormal, AlignEnum.LEFT,false);
+ printer.appendPrnStr("HOST :" + HOST_NAME_MPU + "", fontNormal, AlignEnum.LEFT,false);
}
/* 17 Sept 2024 Yoma requested to changed slip design for QR*/
// printer.printColumnsString(new String[]{"MID :" + payDetail.getMerchantNo(), ""}, new int[]{3, 1}, new int[]{0, 2}, innerResultCallback);
// printer.printColumnsString(new String[]{"TID :" + payDetail.getTerminalNo(), ""}, new int[]{3, 1}, new int[]{0, 2}, innerResultCallback);
if (payDetail.getTransactionType() == TransactionsType.MMQR.value || payDetail.getTransactionType() == TransactionsType.MMQR_REFUND.value){
- printer.appendPrnStr("SHORT CODE:" + payDetail.getMerchantNo(), fontNormal, AlignEnum.LEFT,false);
+ printer.appendPrnStr("SHORT CODE :" + payDetail.getMerchantNo(), fontNormal, AlignEnum.LEFT,false);
}else{
- printer.appendPrnStr("MID :" + payDetail.getMerchantNo(), fontNormal, AlignEnum.LEFT,false);
- printer.appendPrnStr("TID :" + payDetail.getTerminalNo(), fontNormal, AlignEnum.LEFT,false);
+ printer.appendPrnStr("MID :" + payDetail.getMerchantNo(), fontNormal, AlignEnum.LEFT,false);
+ printer.appendPrnStr("TID :" + payDetail.getTerminalNo(), fontNormal, AlignEnum.LEFT,false);
}
emptyLine(1);
printer.appendPrnStr(transType.replace("_", " "),fontNormal, AlignEnum.CENTER,true);
+// printer.appendPrnStr("TRAN TYPE :" + transType.replace("_", " "),fontNormal, AlignEnum.LEFT,false);
if (!(payDetail.getQrTransStatus() != 1 && (payDetail.getTransactionType() == TransactionsType.MMQR_REFUND.value || payDetail.getTransactionType() == TransactionsType.MMQR.value))) {
// printer.appendPrnStr("\n", fontNormal, AlignEnum.LEFT,false);
@@ -1022,6 +1061,36 @@ public abstract class BaseXPrint {
}
+ protected void printDetailReportHeader(){
+ SimpleDateFormat date = new SimpleDateFormat("dd MMM yyyy", Locale.getDefault());
+ String printedDate = date.format(new Date());
+
+ SimpleDateFormat time = new SimpleDateFormat("HH:mm:ss", Locale.getDefault());
+ String printedTime = time.format(new Date());
+
+ printer.appendPrnStr("PRINTED DATE", printedDate, fontNormal, false);
+ printer.appendPrnStr("", printedTime, fontNormal, false);
+ printer.appendPrnStr("DETAIL REPORT", fontNormal , AlignEnum.CENTER, false);
+ dotBreak();
+ }
+
+ protected void printTranHeader(String title){
+ SimpleDateFormat date = new SimpleDateFormat("dd MMM yyyy", Locale.getDefault());
+ String printedDate = date.format(new Date());
+
+ SimpleDateFormat time = new SimpleDateFormat("HH:mm:ss", Locale.getDefault());
+ String printedTime = time.format(new Date());
+
+ printer.appendPrnStr("PRINTED DATE", printedDate, fontNormal, false);
+ printer.appendPrnStr("", printedTime, fontNormal, false);
+ printer.appendPrnStr(title, fontNormal , AlignEnum.CENTER, false);
+
+// if (payDetail.getTransactionType() == TransactionsType.MMQR.value && payDetail.getQrTransStatus() == 1) {
+//// printer.appendPrnStr("TRACE NO:" + traceNum + " INV NO:" + invoiceNo, fontNormal, AlignEnum.LEFT,false);
+// printer.appendPrnStr("INV NO :" + invoiceNo , fontNormal, AlignEnum.LEFT,false);
+// }
+ dotBreak();
+ }
protected void printTransHeader(PayDetail payDetail, HostType hostType) {
String invoiceNo = payDetail.getInvoiceNo().isEmpty() ? SystemParamsOperation.getInstance().getCurrentInvoiceNum() : payDetail.getInvoiceNo();
String transType = payDetail.getTransType();
@@ -1112,11 +1181,11 @@ public abstract class BaseXPrint {
printer.appendPrnStr("Secondary Ip : " + secIpPort[0], fontNormal, AlignEnum.LEFT, false);
printer.appendPrnStr("Secondary Port: " + secIpPort[1], fontNormal, AlignEnum.LEFT, false);
printer.appendPrnStr("Currency Code : " + sp.getCurrencyType(), fontNormal, AlignEnum.LEFT, false);
- lineBreak();
+ dotBreak();
// ---------- SECONDARY HOST (optional) ----------
if (!TextUtils.isEmpty(sp.getSecHostName())) {
printer.appendPrnStr("SECONDARY HOST", fontNormal, AlignEnum.LEFT, true);
- printer.appendPrnStr("Name : " + sp.getSecHostName(), fontNormal, AlignEnum.LEFT, false);
+ printer.appendPrnStr("Name : " + sp.getSecHostName(), fontNormal, AlignEnum.LEFT, false);
printer.appendPrnStr("SHORT CODE : " + sp.getShortCode(), fontNormal, AlignEnum.LEFT, false);
String[] secHostIp = splitIpAndPort(sp.getSecHostIpAddress());
printer.appendPrnStr("Primary Ip : " + secHostIp[0], fontNormal, AlignEnum.LEFT, false);
@@ -1125,7 +1194,7 @@ public abstract class BaseXPrint {
printer.appendPrnStr("Secondary Ip : " + secHostSecIp[0], fontNormal, AlignEnum.LEFT, false);
printer.appendPrnStr("Secondary Port: " + secHostSecIp[1], fontNormal, AlignEnum.LEFT, false);
printer.appendPrnStr("Currency Code : " + sp.getCurrencyType(), fontNormal, AlignEnum.LEFT, false);
- lineBreak();
+ dotBreak();
printer.appendPrnStr("App Version : " + getAppVersion(), fontNormal, AlignEnum.LEFT, false);
}
}
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 cdb5bb7..a7714a7 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
@@ -163,7 +163,7 @@ public class PrintXImpl extends BaseXPrint implements PrintX {
printMerchantHeader();
printTransHeader(payDetail);
printTransDetailQR(payDetail);
- LogUtil.d(TAG,"QR trans status:"+payDetail.getQrTransStatus());
+// LogUtil.d(TAG,"QR trans status:"+payDetail.getQrTransStatus());
if (payDetail.getQrTransStatus() == 1) {
printTransFooter(true,payDetail, isMerchantCopy);
} else {
@@ -232,7 +232,8 @@ public class PrintXImpl extends BaseXPrint implements PrintX {
setHeight(0x12);
printLogo();
printMerchantHeader();
- printTransHeader(payDetail, hostType);
+// printTransHeader(payDetail, hostType);
+ printTranHeader("DETAIL REPORT");
printTransDetailReport(lists,hostType);
// emptyLine(1);
startPrintNex();
@@ -311,23 +312,27 @@ public class PrintXImpl extends BaseXPrint implements PrintX {
// payDetail.getCustomerMobile() // as channel type
if(payDetail.getTransactionType() == TransactionsType.MMQR.value && payDetail.getQrTransStatus() == 1 ) {
- print2ColumnsStringNoSpace("PAYMENT TYPE ",": "+ (payDetail.getCustomerMobile() == null || payDetail.getCustomerMobile().isEmpty() ? "-": payDetail.getCustomerMobile()));
- print2ColumnsStringNoSpace("TRXN REF ",": "+ payDetail.getReferNo());
+ print2ColumnsStringNoSpace("PAYMENT TYPE",":"+ (payDetail.getCustomerMobile() == null || payDetail.getCustomerMobile().isEmpty() ? "-": payDetail.getCustomerMobile()));
+ print2ColumnsStringNoSpace("TRXN REF ",":"+ payDetail.getReferNo());
if(payDetail.getQrReferNo() != null && !payDetail.getQrReferNo().isEmpty()) {
- print2ColumnsStringNoSpace("MMQR REF ",": "+ payDetail.getQrReferNo());
+ print2ColumnsStringNoSpace("MMQR REF ",":"+ payDetail.getQrReferNo());
}
- print2ColumnsStringNoSpace("TRXN ID",":"+ (payDetail.getQrTransId() == null || payDetail.getQrTransId().isEmpty() ? "-": payDetail.getQrTransId()));
- print2ColumnsStringNoSpace("STATUS ",": "+ PrintUtils.getInstance().getQrTransStatus(payDetail.getQrTransStatus()));
+ print2ColumnsStringNoSpace("TRXN ID ",":"+ (payDetail.getQrTransId() == null || payDetail.getQrTransId().isEmpty() ? "-": payDetail.getQrTransId()));
+ print2ColumnsStringNoSpace("STATUS ",":"+ PrintUtils.getInstance().getQrTransStatus(payDetail.getQrTransStatus()));
} else if(payDetail.getTransactionType() == TransactionsType.MMQR_REFUND.value && payDetail.getQrTransStatus() == 1) {
- print2ColumnsStringNoSpace("TRXN REF ",":"+ payDetail.getReferNo());
- print2ColumnsStringNoSpace("TXN DATE/TIME",":"+ payDetail.getOriginalTransDate());
- print2ColumnsStringNoSpace("STATUS ",":"+ PrintUtils.getInstance().getQrTransStatus(payDetail.getQrTransStatus()));
+ String originalDate = payDetail.getOriginalTransDate();
+ String tranDate = originalDate.split(" ")[0];
+ String tranTime = originalDate.split(" ")[1];
+ print2ColumnsStringNoSpace("TRXN REF ",":"+ payDetail.getReferNo());
+ print2ColumnsStringNoSpace("TXN DATE ",":"+ tranDate);
+ print2ColumnsStringNoSpace("TXN TIME ",":"+ tranTime);
+ print2ColumnsStringNoSpace("STATUS ",":"+ PrintUtils.getInstance().getQrTransStatus(payDetail.getQrTransStatus()));
} else if(payDetail.getTransactionType() == TransactionsType.MMQR.value && payDetail.getQrTransStatus() == -1) {
- print2ColumnsStringNoSpace("PAYMENT TYPE ",":"+ (payDetail.getCustomerMobile() == null || payDetail.getCustomerMobile().isEmpty() ? "-": payDetail.getCustomerMobile()));
- print2ColumnsStringNoSpace("TRXN REF ",":"+ payDetail.getReferNo());
- print2ColumnsStringNoSpace("TXN TIME ",":"+ (payDetail.getOriginalTransDate() == null || payDetail.getOriginalTransDate().isEmpty() ? POSUtil.getInstance().getCurrentDateTimeForQR(): payDetail.getOriginalTransDate()));
+ print2ColumnsStringNoSpace("PAYMENT TYPE",":"+ (payDetail.getCustomerMobile() == null || payDetail.getCustomerMobile().isEmpty() ? "-": payDetail.getCustomerMobile()));
+ print2ColumnsStringNoSpace("TRXN REF ",":"+ payDetail.getReferNo());
+ print2ColumnsStringNoSpace("TXN TIME ",":"+ (payDetail.getOriginalTransDate() == null || payDetail.getOriginalTransDate().isEmpty() ? POSUtil.getInstance().getCurrentDateTimeForQR(): payDetail.getOriginalTransDate()));
}
@@ -341,10 +346,9 @@ public class PrintXImpl extends BaseXPrint implements PrintX {
boolean isNeedMinusSign = payDetail.getTransactionType() == TransactionsType.MMQR_REFUND.value;
boolean isQrDecimalEnable = SystemParamsOperation.getInstance().isQrDecimalEnable();
- lineBreak();
- print2ColumnsStringBoldCenter("TOTAL MMK", isNeedMinusSign? "- "+PrintUtils.getInstance().getSeparatorNumberFormat(payDetail.getAmount(), isQrDecimalEnable): PrintUtils.getInstance().getSeparatorNumberFormat(payDetail.getAmount(), isQrDecimalEnable),fontLarge, AlignEnum.LEFT);
- lineBreak();
-
+ dotBreak();
+ print2ColumnsStringBoldCenter("AMOUNT :", isNeedMinusSign? "- "+PrintUtils.getInstance().getSeparatorNumberFormat(payDetail.getAmount(), isQrDecimalEnable) + " MMK": PrintUtils.getInstance().getSeparatorNumberFormat(payDetail.getAmount(), isQrDecimalEnable) + " MMK",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();
//
@@ -431,7 +435,8 @@ public class PrintXImpl extends BaseXPrint implements PrintX {
setHeight(0x12);
printLogo();
printMerchantHeader();
- printTransHeader(payDetail, hostType);
+// printTransHeader(payDetail, hostType);
+ printTranHeader("SUMMARY REPORT");
printTransDetailSummary(payDetail);
// printTransFooterSummary();
From adbd0724af63d9942dc62d80d2c19fe6aeea43db Mon Sep 17 00:00:00 2001
From: MooN <56061215+MgKyawLay@users.noreply.github.com>
Date: Mon, 5 Jan 2026 20:46:37 +0630
Subject: [PATCH 2/5] SIM INTERNET FIX
---
app/src/main/AndroidManifest.xml | 2 +-
.../main/java/com/utsmm/kbz/util/tms/TMSUtil.java | 3 ++-
app/src/main/res/xml/network_security_config.xml | 12 +++++++-----
3 files changed, 10 insertions(+), 7 deletions(-)
diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml
index 91a8970..9c36dce 100644
--- a/app/src/main/AndroidManifest.xml
+++ b/app/src/main/AndroidManifest.xml
@@ -9,7 +9,7 @@
-
+
diff --git a/app/src/main/java/com/utsmm/kbz/util/tms/TMSUtil.java b/app/src/main/java/com/utsmm/kbz/util/tms/TMSUtil.java
index 908b68a..a3a8b4c 100644
--- a/app/src/main/java/com/utsmm/kbz/util/tms/TMSUtil.java
+++ b/app/src/main/java/com/utsmm/kbz/util/tms/TMSUtil.java
@@ -319,6 +319,7 @@ public class TMSUtil {
Log.d(TAG,"Connected to Wifi");
return "WIFI";
}
- }return "No Connection";
+ }
+ return "No Connection";
}
}
diff --git a/app/src/main/res/xml/network_security_config.xml b/app/src/main/res/xml/network_security_config.xml
index 53d56cc..9dab6ac 100644
--- a/app/src/main/res/xml/network_security_config.xml
+++ b/app/src/main/res/xml/network_security_config.xml
@@ -1,14 +1,16 @@
-
+
159.223.40.176
128.199.170.203
152.42.199.193
api.kbzpay.com
-
- receipt-nest.utsmyanmar.com
-
sirius-nest.utsmyanmar.com
-
\ No newline at end of file
+
+
+ receipt-nest.utsmyanmar.com
+
+
+
From 00bd4c417e0804943c41c092031f366b595a056c Mon Sep 17 00:00:00 2001
From: MooN <56061215+MgKyawLay@users.noreply.github.com>
Date: Tue, 6 Jan 2026 17:45:54 +0630
Subject: [PATCH 3/5] refund fail amount wrong fixed
---
.../kbz/ui/qr_pay/QRRefundDetailFragment.java | 24 +++++++++++++++----
.../ui/qr_pay/QRRefundProcessFragment.java | 9 ++++---
2 files changed, 23 insertions(+), 10 deletions(-)
diff --git a/app/src/main/java/com/utsmm/kbz/ui/qr_pay/QRRefundDetailFragment.java b/app/src/main/java/com/utsmm/kbz/ui/qr_pay/QRRefundDetailFragment.java
index 92e489f..3439b9b 100644
--- a/app/src/main/java/com/utsmm/kbz/ui/qr_pay/QRRefundDetailFragment.java
+++ b/app/src/main/java/com/utsmm/kbz/ui/qr_pay/QRRefundDetailFragment.java
@@ -26,6 +26,8 @@ import com.utsmm.kbz.ui.core_viewmodel.SharedViewModel;
import com.utsmm.kbz.util.DecimalDigitsInputFilter;
import com.utsmm.kbz.util.TransactionUtil;
+import java.text.DecimalFormat;
+
public class QRRefundDetailFragment extends DataBindingFragment {
@@ -43,6 +45,8 @@ public class QRRefundDetailFragment extends DataBindingFragment {
private EditText etReferenceNo, etOriginalAmount, etRefundAmount, etRefundReason;
private LinearLayout originalAmountLayout, refundAmountLayout;
+ private String originalRefundAmount;
+
private boolean isPartialRefund = false;
@@ -122,6 +126,10 @@ public class QRRefundDetailFragment extends DataBindingFragment {
}
private void initData() {
+ double realAmount = payDetail.getAmount() / 100.0;
+ DecimalFormat df = new DecimalFormat("0.00");
+ originalRefundAmount = df.format(realAmount);
+
payDetail = TransactionUtil.getInstance().initWalletTransaction(TransactionsType.MMQR_REFUND);
payDetail.setInvoiceNo(SystemParamsOperation.getInstance().getIncrementInvoiceNum());
@@ -144,8 +152,8 @@ public class QRRefundDetailFragment extends DataBindingFragment {
} else {
// Hide amount fields for original refund
isPartialRefund = false;
- originalAmountLayout.setVisibility(View.GONE);
- refundAmountLayout.setVisibility(View.GONE);
+ originalAmountLayout.setVisibility(View.VISIBLE);
+ refundAmountLayout.setVisibility(View.VISIBLE);
}
});
}
@@ -162,6 +170,8 @@ public class QRRefundDetailFragment extends DataBindingFragment {
String referenceNo = etReferenceNo.getText().toString().trim();
String refundReason = etRefundReason.getText().toString().trim();
+ String originalAmountStr = etOriginalAmount.getText().toString().trim();
+ String refundAmountStr = etRefundAmount.getText().toString().trim();
// Validate reference number
if (referenceNo.isEmpty()) {
@@ -171,8 +181,8 @@ public class QRRefundDetailFragment extends DataBindingFragment {
if (isPartialRefund) {
// Partial refund validation
- String originalAmountStr = etOriginalAmount.getText().toString().trim();
- String refundAmountStr = etRefundAmount.getText().toString().trim();
+// String originalAmountStr = etOriginalAmount.getText().toString().trim();
+// String refundAmountStr = etRefundAmount.getText().toString().trim();
if (originalAmountStr.isEmpty()) {
kPayViewModel.invalidAmountMsg.setValue("Enter original amount");
@@ -207,12 +217,16 @@ public class QRRefundDetailFragment extends DataBindingFragment {
kPayViewModel.setQrRefund(qrRefund);
} else {
- QRRefund qrRefund = new QRRefund(referenceNo, "0", etOriginalAmount.getText().toString().trim(), refundReason);
+// String originalAmountStr = etOriginalAmount.getText().toString().trim();
+// String refundAmountStr = etRefundAmount.getText().toString().trim();
+
+ QRRefund qrRefund = new QRRefund(referenceNo, refundAmountStr, originalRefundAmount, refundReason);
kPayViewModel.setQrRefund(qrRefund);
}
sharedViewModel.transactionsType.setValue(TransactionsType.MMQR_REFUND);
kPayViewModel.setPayDetail(payDetail);
+// sharedViewModel.amount.setValue(refundAmountStr);
routeId = R.id.action_qrRefundDetail_inputPasswordFragment;
safeNavigateToRouteId();
}
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 2a8a6c8..ecc0852 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
@@ -127,7 +127,7 @@ public class QRRefundProcessFragment extends DataBindingFragment {
.observeOn(AndroidSchedulers.mainThread())
.subscribe(
response -> {
- handleRefundResponse(response, referenceNo);
+ handleRefundResponse(response, referenceNo, originalAmount);
},
throwable -> {
LogUtil.e(TAG, "Refund error: " + throwable.getMessage());
@@ -141,14 +141,12 @@ public class QRRefundProcessFragment extends DataBindingFragment {
refundDisposable.add(refundDi);
}
- private void handleRefundResponse(KPayRefund.RefundResponse response, String referenceNo) {
+ private void handleRefundResponse(KPayRefund.RefundResponse response, String referenceNo, String orgAmount) {
if (response != null && response.getResponse() != null && "REFUND_SUCCESS".equalsIgnoreCase(response.getResponse().getRefundStatus())) {
LogUtil.d(TAG, "Refund successful!");
String refundAmount = response.getResponse().getRefundAmount();
- Log.d(TAG, "refund amount -> " + refundAmount);
long text = POSUtil.getInstance().convertAmount(refundAmount);
- Log.d(TAG, "refund amount but long -> " + text);
String dateTime = SystemDateTime.getTodayDateFormat() + " " + SystemDateTime.getTodayTimeFormat();
payDetail.setTC(response.getResponse().getRefundStatus());
@@ -185,6 +183,7 @@ public class QRRefundProcessFragment extends DataBindingFragment {
if (response != null && response.getResponse() != null && response.getResponse().getMsg() != null) {
errorMsg = response.getResponse().getMsg();
}
+
payDetail.setTradeResultDes(errorMsg);
EReceiptRequest request = EReceiptUtil.getInstance().generateQRRefundReceipt(
"0",
@@ -196,7 +195,7 @@ public class QRRefundProcessFragment extends DataBindingFragment {
TransResultStatus.FAIL
);
sharedViewModel.pushReceipt(request);
-
+ sharedViewModel.amount.setValue(orgAmount);
sharedViewModel.payDetail.setValue(payDetail);
navigateToNext();
}
From ccebba6ba7dcd0ce0aa0b091fc2f82287e0ac9a3 Mon Sep 17 00:00:00 2001
From: MooN <56061215+MgKyawLay@users.noreply.github.com>
Date: Thu, 8 Jan 2026 12:47:07 +0630
Subject: [PATCH 4/5] added Grand total in Settlement
---
.../java/com/utsmyanmar/paylibs/print/printx/BaseXPrint.java | 2 ++
1 file changed, 2 insertions(+)
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 85faea5..76d6b26 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
@@ -819,6 +819,8 @@ public abstract class BaseXPrint {
print2ColumnsString("Refund Total:MMK", PrintUtils.getInstance().getSeparatorOnlyNumberFormat(refundTotal));
dashBreak();
print2ColumnsString("Sale Total :MMK", PrintUtils.getInstance().getSeparatorOnlyNumberFormat(totalAmount));
+ dashBreak();
+ print2ColumnsString("Grand Total :MMK", PrintUtils.getInstance().getSeparatorOnlyNumberFormat(totalAmount - refundTotal));
dashBreakEnding();
// emptyLine(2);
From 0faaf36fde343a7d2e8f7ef0721fe87977a83e70 Mon Sep 17 00:00:00 2001
From: MooN <56061215+MgKyawLay@users.noreply.github.com>
Date: Thu, 8 Jan 2026 16:18:39 +0630
Subject: [PATCH 5/5] alert fix for refund
---
app/build.gradle | 4 ++--
.../utsmm/kbz/ui/core_ui/TransactionResultFragment.java | 7 +++++--
2 files changed, 7 insertions(+), 4 deletions(-)
diff --git a/app/build.gradle b/app/build.gradle
index 5bdae75..83be06c 100644
--- a/app/build.gradle
+++ b/app/build.gradle
@@ -14,8 +14,8 @@ android {
applicationId "com.utsmm.kbz"
minSdk 24
targetSdk 33
- versionCode 11
- versionName "1.10"
+ versionCode 14
+ versionName "1.13"
testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
}
diff --git a/app/src/main/java/com/utsmm/kbz/ui/core_ui/TransactionResultFragment.java b/app/src/main/java/com/utsmm/kbz/ui/core_ui/TransactionResultFragment.java
index 3fb209b..0c3f03c 100644
--- a/app/src/main/java/com/utsmm/kbz/ui/core_ui/TransactionResultFragment.java
+++ b/app/src/main/java/com/utsmm/kbz/ui/core_ui/TransactionResultFragment.java
@@ -94,7 +94,6 @@ public class TransactionResultFragment extends DataBindingFragment implements Da
@Override
public void onStart() {
super.onStart();
-
}
@Override
@@ -172,7 +171,11 @@ public class TransactionResultFragment extends DataBindingFragment implements Da
handleSettlementTransaction(siriusReq);
} else if (isQRPayNonSuccessTransaction(transactionType, payDetail)) {
// startPrintProcess(false);
- showDeclineDialog("QR Payment Failed!");
+ if(transactionType == TransactionsType.MMQR_REFUND){
+ showDeclineDialog("QR Refund Failed!");
+ }else{
+ showDeclineDialog("QR Payment Failed!");
+ }
navigateToMainScreen();
} else if (isQRPaySuccessTransaction(transactionType, payDetail)) {
handleQRPaySuccessTransaction(payDetail, siriusReq);