combined settlement receipt

This commit is contained in:
moon 2026-07-09 16:25:52 +06:30
parent 808e87b2f9
commit 9e119e7c7e
7 changed files with 68 additions and 3 deletions

View File

@ -494,7 +494,11 @@ public class SharedViewModel extends ViewModel {
if (payDetail.getValue() == null) return;
PrintXReceipt.getInstance().printSmileSettlementReport(payDetail.getValue(), printXStatus);
if (payDetails.getValue() != null && !payDetails.getValue().isEmpty()) {
PrintXReceipt.getInstance().printSmileSettlementReport(payDetail.getValue(), QRSettleData.convertFromPayDetail(payDetails.getValue()), printXStatus);
} else {
PrintXReceipt.getInstance().printSmileSettlementReport(payDetail.getValue(), printXStatus);
}
}
private void startPrintProcessQRSettlement(PrintXStatus printXStatus) {

View File

@ -331,7 +331,7 @@ public class QRSettlementTransactionFragment extends DataBindingFragment impleme
sharedViewModel.setAmount(POSUtil.getInstance().getDecimalAmountSeparatorFormat(totalAmount));
sharedViewModel.payDetails.setValue(qrTransactionsList);
sharedViewModel.payDetails.setValue(new ArrayList<>(qrTransactionsList));
sharedViewModel.payDetail.setValue(payDetail);
for (PayDetail pay : qrTransactionsList) {

View File

@ -612,7 +612,7 @@ public class SettlementTransactionFragment extends DataBindingFragment implement
sharedViewModel.insertPayDetail(payDetail);
}
sharedViewModel.payDetails.setValue(qrTransactionsList);
sharedViewModel.payDetails.setValue(new ArrayList<>(qrTransactionsList));
for (PayDetail pay : qrTransactionsList) {
settlementViewModel.deletePayDetail(pay);

View File

@ -267,6 +267,38 @@ public abstract class BaseXPrint {
}
protected void printMMQRReport(List<QRSettleData> 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));
emptyLine(1);
}
private void printSettlementCurrencySection(String currencyLabel, CurrencySettlementSummary summary) {
// if (!summary.hasAnyValue()) {
// return;

View File

@ -24,6 +24,8 @@ public interface PrintX {
void printSmileSettlementReport(PayDetail payDetail,PrintXStatus printXStatus);
void printSmileSettlementReport(PayDetail payDetail, List<QRSettleData> qrList, PrintXStatus printXStatus);
void printQRSettlementReport(PayDetail payDetail, List<QRSettleData> list, PrintXStatus printXStatus);
void printDetailReport(PayDetail payDetail, List<PayDetail> lists, HostType hostType,PrintXStatus printXStatus);

View File

@ -203,6 +203,29 @@ public class PrintXImpl extends BaseXPrint implements PrintX {
}
}
@Override
public void printSmileSettlementReport(PayDetail payDetail, List<QRSettleData> qrList, PrintXStatus printXStatus) {
this.callbackStatus = printXStatus;
try {
LogUtil.d(TAG, payDetail.getSettleDataObj().toString());
setHeight(0x12);
printLogo();
printMerchantHeader();
printTransHeader(payDetail);
printTransDetailSettlement(payDetail);
printMMQRReport(qrList);
printTransFooterForSettlement();
emptyLine(1);
startPrintNex();
} catch (RemoteException e) {
e.printStackTrace();
}
}
@Override
public void printQRSettlementReport(PayDetail payDetail, List<QRSettleData> list, PrintXStatus printXStatus) {
this.callbackStatus = printXStatus;

View File

@ -36,6 +36,10 @@ public class PrintXReceipt {
printX.printSmileSettlementReport(payDetail,printXStatus);
}
public void printSmileSettlementReport(PayDetail payDetail, List<QRSettleData> qrList, PrintXStatus printXStatus) {
printX.printSmileSettlementReport(payDetail, qrList, printXStatus);
}
public void printQRSettlementReport(PayDetail payDetail, List<QRSettleData> lists, PrintXStatus printXStatus) {
printX.printQRSettlementReport(payDetail,lists,printXStatus);
}