physical receipt fix decimal for print summery
This commit is contained in:
parent
063805e77a
commit
bbabe9b824
@ -385,7 +385,7 @@ public class TransactionSummaryFragment extends DataBindingFragment {
|
|||||||
private void printReceipt(PayDetail payDetail) {
|
private void printReceipt(PayDetail payDetail) {
|
||||||
try {
|
try {
|
||||||
LogUtil.d(TAG, "Starting receipt print");
|
LogUtil.d(TAG, "Starting receipt print");
|
||||||
PrintXReceipt.getInstance().printSmileSummaryReport(payDetail, new PrintXStatus() {
|
PrintXReceipt.getInstance().printSmileSummaryReport(payDetail, sharedViewModel.hostType.getValue(), new PrintXStatus() {
|
||||||
@Override
|
@Override
|
||||||
public void onSuccess() {
|
public void onSuccess() {
|
||||||
LogUtil.d(TAG, "Receipt printed successfully");
|
LogUtil.d(TAG, "Receipt printed successfully");
|
||||||
|
|||||||
@ -90,7 +90,7 @@ public abstract class BaseXPrint {
|
|||||||
protected int fontNormal = 21;
|
protected int fontNormal = 21;
|
||||||
protected int fontLarge = 22;
|
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 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);
|
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";
|
String MMK = "MMK";
|
||||||
SettleData settleData = payDetail.getSettleDataObj();
|
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();
|
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());
|
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 {
|
} else {
|
||||||
printer.appendPrnStr("CARD NAME:" + payDetail.getAccountType(), fontNormal, AlignEnum.LEFT,false);
|
printer.appendPrnStr("CARD NAME:" + payDetail.getAccountType(), fontNormal, AlignEnum.LEFT,false);
|
||||||
}
|
}
|
||||||
printer.appendPrnStr(" " + "COUNT " + " " + " TOTAL", 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);
|
printer.appendPrnStr("COUNT", "TOTAL", fontNormal, false);
|
||||||
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.printColumnsString(new String[]{"", "COUNT", "TOTAL"}, new int[]{2,1, 1}, new int[]{ 2,1, 2}, innerResultCallback);
|
// printer.printColumnsString(new String[]{"", "COUNT", "TOTAL"}, new int[]{2,1, 1}, new int[]{ 2,1, 2}, innerResultCallback);
|
||||||
// emptyLine(1);
|
// emptyLine(1);
|
||||||
if (settleData.getSaleCount() > 0)
|
if (settleData.getSaleCount() > 0)
|
||||||
@ -559,15 +531,56 @@ public abstract class BaseXPrint {
|
|||||||
printColumnString("PREAUTH COMP", settleData.getPreAuthCompCount(), settleData.getPreAuthCompAmount(), false);
|
printColumnString("PREAUTH COMP", settleData.getPreAuthCompCount(), settleData.getPreAuthCompAmount(), false);
|
||||||
if (settleData.getPreAuthCompVoidCount() > 0)
|
if (settleData.getPreAuthCompVoidCount() > 0)
|
||||||
printColumnString("VOID PREAUTH COMPLETE", settleData.getPreAuthCompVoidCount(), settleData.getPreAuthCompVoidAmount(), true);
|
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);
|
// printColumnString("QR PAY", settleData.getWavePayCount(), settleData.getWavePayAmount(), false);
|
||||||
if (settleData.getWaveRefundCount() > 0)
|
printer.appendPrnStr( "QR PAY " + countStringFormat(settleData.getWavePayCount()) + " " + "MMK" , PrintUtils.getInstance().getSeparatorNumberFormat(settleData.getWavePayAmount(), isQrDecimalEnabled) , fontNormal, false);
|
||||||
printColumnString("QR REFUND", settleData.getWaveRefundCount(), settleData.getWaveRefundAmount(), true);
|
}
|
||||||
|
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();
|
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("\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;
|
long refundTotal = 0;
|
||||||
|
|
||||||
for (PayDetail pay : lists) {
|
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("Trans Id: " + pay.getQrTransId());
|
||||||
printString("Status : " + pay.getTC());
|
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()));
|
printString("Amount : " + "MMK " + PrintUtils.getInstance().getSeparatorOnlyNumberFormat(pay.getAmount()));
|
||||||
|
|
||||||
if (pay.getTransactionType() == TransactionsType.MMQR_REFUND.value) {
|
if (pay.getTransactionType() == TransactionsType.MMQR_REFUND.value) {
|
||||||
@ -930,7 +948,7 @@ public abstract class BaseXPrint {
|
|||||||
public void onPrintResult(final int retCode) {
|
public void onPrintResult(final int retCode) {
|
||||||
|
|
||||||
LogUtil.d(TAG, "Start printing :" + retCode);
|
LogUtil.d(TAG, "Start printing :" + retCode);
|
||||||
|
|
||||||
if (retCode == 0) {
|
if (retCode == 0) {
|
||||||
callbackStatus.onSuccess();
|
callbackStatus.onSuccess();
|
||||||
} else {
|
} else {
|
||||||
|
|||||||
@ -17,6 +17,8 @@ public interface PrintX {
|
|||||||
|
|
||||||
void printSmileSummaryReport(PayDetail payDetail,PrintXStatus printXStatus);
|
void printSmileSummaryReport(PayDetail payDetail,PrintXStatus printXStatus);
|
||||||
|
|
||||||
|
void printSmileSummaryReport(PayDetail payDetail, HostType hostType, PrintXStatus printXStatus);
|
||||||
|
|
||||||
void printSmileSettlementReport(PayDetail payDetail,PrintXStatus printXStatus);
|
void printSmileSettlementReport(PayDetail payDetail,PrintXStatus printXStatus);
|
||||||
|
|
||||||
void printQRSettlementReport(PayDetail payDetail,List<PayDetail> list,PrintXStatus printXStatus);
|
void printQRSettlementReport(PayDetail payDetail,List<PayDetail> list,PrintXStatus printXStatus);
|
||||||
|
|||||||
@ -415,15 +415,32 @@ public class PrintXImpl extends BaseXPrint implements PrintX {
|
|||||||
printTransDetailSummary(payDetail);
|
printTransDetailSummary(payDetail);
|
||||||
// printTransFooterSummary();
|
// printTransFooterSummary();
|
||||||
|
|
||||||
emptyLine(2);
|
// emptyLine(2);
|
||||||
startPrintNex();
|
startPrintNex();
|
||||||
} catch (RemoteException e) {
|
} catch (RemoteException e) {
|
||||||
e.printStackTrace();
|
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
|
@Override
|
||||||
public void printTerminalConfig(PrintXStatus printXStatus) {
|
public void printTerminalConfig(PrintXStatus printXStatus) {
|
||||||
|
|||||||
@ -55,6 +55,10 @@ public class PrintXReceipt {
|
|||||||
printX.printDetailReport(payDetail,lists,hostType,printXStatus);
|
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){
|
public void printTerminalHostConfig(PrintXStatus printXStatus){
|
||||||
printX.printTerminalConfig(printXStatus);
|
printX.printTerminalConfig(printXStatus);
|
||||||
}
|
}
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user