diff --git a/app/src/main/java/com/utsmm/kbz/ui/management/TransactionSummaryFragment.java b/app/src/main/java/com/utsmm/kbz/ui/management/TransactionSummaryFragment.java index 3b91b36..3415960 100644 --- a/app/src/main/java/com/utsmm/kbz/ui/management/TransactionSummaryFragment.java +++ b/app/src/main/java/com/utsmm/kbz/ui/management/TransactionSummaryFragment.java @@ -385,7 +385,7 @@ public class TransactionSummaryFragment extends DataBindingFragment { private void printReceipt(PayDetail payDetail) { try { LogUtil.d(TAG, "Starting receipt print"); - PrintXReceipt.getInstance().printSmileSummaryReport(payDetail, new PrintXStatus() { + PrintXReceipt.getInstance().printSmileSummaryReport(payDetail, sharedViewModel.hostType.getValue(), new PrintXStatus() { @Override public void onSuccess() { LogUtil.d(TAG, "Receipt printed successfully"); 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 039acec..6f2c161 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 @@ -90,7 +90,7 @@ public abstract class BaseXPrint { protected int fontNormal = 21; protected int fontLarge = 22; -// protected FontEntity fontNormal = new FontEntity(DotMatrixFontEnum.CH_SONG_24X24, DotMatrixFontEnum.ASC_SONG_12X24); + // protected FontEntity fontNormal = new FontEntity(DotMatrixFontEnum.CH_SONG_24X24, DotMatrixFontEnum.ASC_SONG_12X24); protected FontEntity fontBold = new FontEntity(DotMatrixFontEnum.CH_SONG_24X24, DotMatrixFontEnum.ASC_SONG_BOLD_16X24); protected FontEntity fontBig = new FontEntity(DotMatrixFontEnum.CH_SONG_24X24, DotMatrixFontEnum.ASC_SONG_12X24, false, true); @@ -494,6 +494,7 @@ public abstract class BaseXPrint { String MMK = "MMK"; SettleData settleData = payDetail.getSettleDataObj(); + boolean isQrDecimalEnabled = SystemParamsOperation.getInstance().isQrDecimalEnable(); int totalCount = settleData.getSaleCount() + settleData.getWavePayCount() + settleData.getVoidSaleCount() + settleData.getCashAdvanceCount() + settleData.getRefundCount() + settleData.getPreAuthCompCount() + settleData.getPreAuthCompVoidCount() + settleData.getWaveRefundCount(); long totalAmount = (settleData.getCashAdvanceAmount() + settleData.getSaleAmount() + settleData.getWavePayAmount() + settleData.getPreAuthCompAmount()) - (settleData.getVoidSaleAmount() + settleData.getRefundAmount() + settleData.getPreAuthCompVoidAmount() + settleData.getWaveRefundAmount()); @@ -509,37 +510,8 @@ public abstract class BaseXPrint { } else { printer.appendPrnStr("CARD NAME:" + payDetail.getAccountType(), fontNormal, AlignEnum.LEFT,false); } - printer.appendPrnStr(" " + "COUNT " + " " + " TOTAL", fontNormal, AlignEnum.LEFT,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); - if (settleData.getWaveRefundCount() > 0) - printColumnString("QR REFUND", settleData.getWaveRefundCount(), settleData.getWaveRefundAmount(), true); - dashBreak(); - printColumnString("TOTAL", totalCount, totalAmount, 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, 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) @@ -559,15 +531,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) - printColumnString("QR PAY", settleData.getWavePayCount(), settleData.getWavePayAmount(), false); - if (settleData.getWaveRefundCount() > 0) - printColumnString("QR REFUND", settleData.getWaveRefundCount(), settleData.getWaveRefundAmount(), 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.getWaveRefundCount(), isQrDecimalEnabled) , fontNormal, false); + } dashBreak(); - printColumnString("TOTAL", totalCount, totalAmount, false); +// 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); - 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.getWaveRefundCount(), 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); +// printer.appendPrnStr("\n", fontNormal, AlignEnum.LEFT,false); } @@ -725,10 +738,15 @@ public abstract class BaseXPrint { long refundTotal = 0; for (PayDetail pay : lists) { +// printer.appendPrnStr("DATE :" + POSUtil.getInstance().formatDisplayDate(payDetail.getTransDate()), fontNormal, AlignEnum.LEFT, false); +// printer.appendPrnStr("TIME :" + payDetail.getTransTime(), fontNormal, AlignEnum.LEFT, false); printString("Trans Id: " + pay.getQrTransId()); printString("Status : " + pay.getTC()); - printString("Date : " + PrintUtils.getInstance().formatTimestamp(Long.parseLong(pay.getTradeDateAndTime()))); +// printString("Date : " + PrintUtils.getInstance().formatTimestamp(Long.parseLong(pay.getTradeDateAndTime()))); + printString("Date : " + POSUtil.getInstance().formatDisplayDate(pay.getTradeDate())); + printString("Time : " + pay.getTransTime()); + printString("Amount : " + "MMK " + PrintUtils.getInstance().getSeparatorOnlyNumberFormat(pay.getAmount())); if (pay.getTransactionType() == TransactionsType.MMQR_REFUND.value) { @@ -930,7 +948,7 @@ public abstract class BaseXPrint { public void onPrintResult(final int retCode) { LogUtil.d(TAG, "Start printing :" + retCode); - + if (retCode == 0) { callbackStatus.onSuccess(); } else { diff --git a/paylibs/src/main/java/com/utsmyanmar/paylibs/print/printx/PrintX.java b/paylibs/src/main/java/com/utsmyanmar/paylibs/print/printx/PrintX.java index 56c3e17..2feb049 100644 --- a/paylibs/src/main/java/com/utsmyanmar/paylibs/print/printx/PrintX.java +++ b/paylibs/src/main/java/com/utsmyanmar/paylibs/print/printx/PrintX.java @@ -17,6 +17,8 @@ public interface PrintX { void printSmileSummaryReport(PayDetail payDetail,PrintXStatus printXStatus); + void printSmileSummaryReport(PayDetail payDetail, HostType hostType, PrintXStatus printXStatus); + void printSmileSettlementReport(PayDetail payDetail,PrintXStatus printXStatus); void printQRSettlementReport(PayDetail payDetail,List list,PrintXStatus printXStatus); 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 2e370bf..f8c7880 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 @@ -415,15 +415,32 @@ public class PrintXImpl extends BaseXPrint implements PrintX { printTransDetailSummary(payDetail); // printTransFooterSummary(); - emptyLine(2); +// emptyLine(2); startPrintNex(); } catch (RemoteException e) { e.printStackTrace(); } } + @Override + public void printSmileSummaryReport(PayDetail payDetail, HostType hostType, PrintXStatus printXStatus) { + this.callbackStatus = printXStatus; + try { +// LogUtil.d(TAG, payDetail.getSettleDataObj().toString()); + setHeight(0x12); + printLogo(); + printMerchantHeader(); + printTransHeader(payDetail, hostType); + printTransDetailSummary(payDetail); +// printTransFooterSummary(); +// emptyLine(2); + startPrintNex(); + } catch (RemoteException e) { + e.printStackTrace(); + } + } @Override public void printTerminalConfig(PrintXStatus printXStatus) { diff --git a/paylibs/src/main/java/com/utsmyanmar/paylibs/print/printx/PrintXReceipt.java b/paylibs/src/main/java/com/utsmyanmar/paylibs/print/printx/PrintXReceipt.java index 855c5c4..cdfde1b 100644 --- a/paylibs/src/main/java/com/utsmyanmar/paylibs/print/printx/PrintXReceipt.java +++ b/paylibs/src/main/java/com/utsmyanmar/paylibs/print/printx/PrintXReceipt.java @@ -55,6 +55,10 @@ public class PrintXReceipt { printX.printDetailReport(payDetail,lists,hostType,printXStatus); } + public void printSmileSummaryReport(PayDetail payDetail, HostType hostType, PrintXStatus printXStatus) { + printX.printSmileSummaryReport(payDetail, hostType, printXStatus); + } + public void printTerminalHostConfig(PrintXStatus printXStatus){ printX.printTerminalConfig(printXStatus); }