diff --git a/app/src/main/java/com/utsmm/kbz/ui/settlement/SettlementTransactionFragment.java b/app/src/main/java/com/utsmm/kbz/ui/settlement/SettlementTransactionFragment.java index f7a600c..04e82bd 100644 --- a/app/src/main/java/com/utsmm/kbz/ui/settlement/SettlementTransactionFragment.java +++ b/app/src/main/java/com/utsmm/kbz/ui/settlement/SettlementTransactionFragment.java @@ -67,6 +67,7 @@ public class SettlementTransactionFragment extends DataBindingFragment implement private final CurrencyBucket mmkBucket = new CurrencyBucket(); private final CurrencyBucket usdBucket = new CurrencyBucket(); + private List cardTransactionsList = new ArrayList<>(); private final ArrayList qrTransactionsList = new ArrayList<>(); private final ArrayList qrTransListAll = new ArrayList<>(); private int qrSaleCount = 0; @@ -243,6 +244,7 @@ public class SettlementTransactionFragment extends DataBindingFragment implement settlementViewModel.getSettlementPOS().observe(getViewLifecycleOwner(), payDetails -> { resetSettlementCounters(); if(payDetails != null && !payDetails.isEmpty()) { + cardTransactionsList = payDetails; for(PayDetail payDetail:payDetails) { int transType = payDetail.getTransactionType(); @@ -584,7 +586,13 @@ public class SettlementTransactionFragment extends DataBindingFragment implement } private void updateData() { - sharedViewModel.payDetail.setValue(settlementViewModel.getPayDetail()); + PayDetail payDetail = settlementViewModel.getPayDetail(); + + if (cardTransactionsList != null && !cardTransactionsList.isEmpty()) { + payDetail.setCardSettleData(CardSettleData.convertFromPayDetail(cardTransactionsList)); + } + + sharedViewModel.payDetail.setValue(payDetail); EReceiptRequest request = EReceiptUtil.getInstance().generateMPUReceipt(sharedViewModel.payDetail.getValue()); 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 5493e65..edab5cc 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 @@ -213,6 +213,12 @@ public abstract class BaseXPrint { } protected void printTransDetailSettlement(PayDetail payDetail) { + List cardSettleDataList = payDetail.getCardSettleData(); + if (cardSettleDataList != null && !cardSettleDataList.isEmpty()) { + printTransDetailSettlement(payDetail, cardSettleDataList); + return; + } + SettleData settleData = payDetail.getSettleDataObj(); print3ColumnsString("TRX TYPE ", "CNT", "AMOUNT"); print3ColumnsString("SALE ", countStringFormat(settleData.getSaleCount()), PrintUtils.getInstance().getSeparatorNumberFormat(settleData.getSaleAmount(), SystemParamsOperation.getInstance().getDecimalEnable())); @@ -270,32 +276,40 @@ public abstract class BaseXPrint { protected void printMMQRReport(List qrList) { if (qrList == null || qrList.isEmpty()) return; - boolean isDecimalEnabled = SystemParamsOperation.getInstance().isQrDecimalEnable(); long saleTotal = 0; long refundTotal = 0; - int saleCount = 0; - int refundCount = 0; - - for (QRSettleData data : qrList) { - if (data.getTransactionType() == TransactionsType.MMQR_REFUND.value) { - refundTotal += data.getAmount(); - refundCount++; - } else { - saleTotal += data.getAmount(); - saleCount++; - } - } - - long grandTotal = saleTotal - refundTotal; emptyLine(1); dashBreak(); printString("MMQR REPORT", true); dashBreak(); - print3ColumnsString("QR SALE ", countStringFormat(saleCount), "MMK " + PrintUtils.getInstance().getSeparatorNumberFormat(saleTotal, isDecimalEnabled)); - print3ColumnsString("QR REFUND ", countStringFormat(refundCount), "MMK -" + PrintUtils.getInstance().getSeparatorNumberFormat(refundTotal, isDecimalEnabled)); - dotBreak(); - print3ColumnsString("QR TOTAL ", countStringFormat(saleCount + refundCount), "MMK " + PrintUtils.getInstance().getSeparatorNumberFormat(grandTotal, isDecimalEnabled)); + + for (QRSettleData data : qrList) { + if (data.getTransactionType() == TransactionsType.MMQR_REFUND.value) { + refundTotal += data.getAmount(); + } else { + saleTotal += data.getAmount(); + } + + printString("Trans Id:" + data.getTransId()); + printString("Status :" + data.getStatus()); + printString("Date :" + data.getDate()); + printString("Time :" + data.getTime()); + printString("Amount : MMK " + + (data.getTransactionType() == TransactionsType.MMQR_REFUND.value ? "-" : "") + + PrintUtils.getInstance().getSeparatorOnlyNumberFormat(data.getAmount())); + emptyLine(1); + } + + long grandTotal = saleTotal - refundTotal; + + dashBreak(); + printer.appendPrnStr("Refund Total:MMK", "- " + PrintUtils.getInstance().getSeparatorOnlyNumberFormat(refundTotal) + " ", fontNormal, false); + dashBreak(); + printer.appendPrnStr("Sale Total :MMK", PrintUtils.getInstance().getSeparatorOnlyNumberFormat(saleTotal) + " ", fontNormal, false); + dashBreak(); + printer.appendPrnStr("Grand Total :MMK", PrintUtils.getInstance().getSeparatorOnlyNumberFormat(grandTotal) + " ", fontNormal, false); + dashBreakEnding(); emptyLine(1); }