settlement receipt changed

This commit is contained in:
moon 2026-07-09 16:39:29 +06:30
parent 9e119e7c7e
commit aad5652988
2 changed files with 42 additions and 20 deletions

View File

@ -67,6 +67,7 @@ public class SettlementTransactionFragment extends DataBindingFragment implement
private final CurrencyBucket mmkBucket = new CurrencyBucket(); private final CurrencyBucket mmkBucket = new CurrencyBucket();
private final CurrencyBucket usdBucket = new CurrencyBucket(); private final CurrencyBucket usdBucket = new CurrencyBucket();
private List<PayDetail> cardTransactionsList = new ArrayList<>();
private final ArrayList<PayDetail> qrTransactionsList = new ArrayList<>(); private final ArrayList<PayDetail> qrTransactionsList = new ArrayList<>();
private final ArrayList<PayDetail> qrTransListAll = new ArrayList<>(); private final ArrayList<PayDetail> qrTransListAll = new ArrayList<>();
private int qrSaleCount = 0; private int qrSaleCount = 0;
@ -243,6 +244,7 @@ public class SettlementTransactionFragment extends DataBindingFragment implement
settlementViewModel.getSettlementPOS().observe(getViewLifecycleOwner(), payDetails -> { settlementViewModel.getSettlementPOS().observe(getViewLifecycleOwner(), payDetails -> {
resetSettlementCounters(); resetSettlementCounters();
if(payDetails != null && !payDetails.isEmpty()) { if(payDetails != null && !payDetails.isEmpty()) {
cardTransactionsList = payDetails;
for(PayDetail payDetail:payDetails) { for(PayDetail payDetail:payDetails) {
int transType = payDetail.getTransactionType(); int transType = payDetail.getTransactionType();
@ -584,7 +586,13 @@ public class SettlementTransactionFragment extends DataBindingFragment implement
} }
private void updateData() { 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()); EReceiptRequest request = EReceiptUtil.getInstance().generateMPUReceipt(sharedViewModel.payDetail.getValue());

View File

@ -213,6 +213,12 @@ public abstract class BaseXPrint {
} }
protected void printTransDetailSettlement(PayDetail payDetail) { protected void printTransDetailSettlement(PayDetail payDetail) {
List<CardSettleData> cardSettleDataList = payDetail.getCardSettleData();
if (cardSettleDataList != null && !cardSettleDataList.isEmpty()) {
printTransDetailSettlement(payDetail, cardSettleDataList);
return;
}
SettleData settleData = payDetail.getSettleDataObj(); SettleData settleData = payDetail.getSettleDataObj();
print3ColumnsString("TRX TYPE ", "CNT", "AMOUNT"); print3ColumnsString("TRX TYPE ", "CNT", "AMOUNT");
print3ColumnsString("SALE ", countStringFormat(settleData.getSaleCount()), PrintUtils.getInstance().getSeparatorNumberFormat(settleData.getSaleAmount(), SystemParamsOperation.getInstance().getDecimalEnable())); 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<QRSettleData> qrList) { protected void printMMQRReport(List<QRSettleData> qrList) {
if (qrList == null || qrList.isEmpty()) return; if (qrList == null || qrList.isEmpty()) return;
boolean isDecimalEnabled = SystemParamsOperation.getInstance().isQrDecimalEnable();
long saleTotal = 0; long saleTotal = 0;
long refundTotal = 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); emptyLine(1);
dashBreak(); dashBreak();
printString("MMQR REPORT", true); printString("MMQR REPORT", true);
dashBreak(); dashBreak();
print3ColumnsString("QR SALE ", countStringFormat(saleCount), "MMK " + PrintUtils.getInstance().getSeparatorNumberFormat(saleTotal, isDecimalEnabled));
print3ColumnsString("QR REFUND ", countStringFormat(refundCount), "MMK -" + PrintUtils.getInstance().getSeparatorNumberFormat(refundTotal, isDecimalEnabled)); for (QRSettleData data : qrList) {
dotBreak(); if (data.getTransactionType() == TransactionsType.MMQR_REFUND.value) {
print3ColumnsString("QR TOTAL ", countStringFormat(saleCount + refundCount), "MMK " + PrintUtils.getInstance().getSeparatorNumberFormat(grandTotal, isDecimalEnabled)); 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); emptyLine(1);
} }