|
|
|
|
@ -160,7 +160,7 @@ public abstract class BaseXPrint {
|
|
|
|
|
protected void emptyLine(int no) {
|
|
|
|
|
|
|
|
|
|
for (int i = 0; i < no; i++) {
|
|
|
|
|
printer.appendPrnStr("\n", fontNormal, AlignEnum.LEFT, false);
|
|
|
|
|
printer.appendPrnStr("\n", fontNormal, AlignEnum.LEFT,false);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
@ -192,23 +192,23 @@ public abstract class BaseXPrint {
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
protected void lineBreak() {
|
|
|
|
|
printer.appendPrnStr("*****************************", fontNormal, AlignEnum.LEFT, false);
|
|
|
|
|
printer.appendPrnStr("*****************************", fontNormal, AlignEnum.LEFT,false);
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
protected void dashBreak() {
|
|
|
|
|
printer.appendPrnStr("-----------------------------", fontNormal, AlignEnum.LEFT, false);
|
|
|
|
|
printer.appendPrnStr("-----------------------------", fontNormal, AlignEnum.LEFT,false);
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
protected void dashBreakEnding() {
|
|
|
|
|
printer.appendPrnStr("--------X----------X---------", fontNormal, AlignEnum.LEFT, false);
|
|
|
|
|
printer.appendPrnStr("--------X----------X---------", fontNormal, AlignEnum.LEFT,false);
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
protected void breakingLine() {
|
|
|
|
|
printer.appendPrnStr("******************************", fontNormal, AlignEnum.LEFT, false);
|
|
|
|
|
printer.appendPrnStr("******************************", fontNormal, AlignEnum.LEFT,false);
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
@ -247,36 +247,43 @@ public abstract class BaseXPrint {
|
|
|
|
|
boolean isDecimalEnabled = SystemParamsOperation.getInstance().getDecimalEnable();
|
|
|
|
|
|
|
|
|
|
lineBreak();
|
|
|
|
|
print2SideStringMargin("CARD TYPE ", "CARD NUMBER");
|
|
|
|
|
print2SideStringMargin("EXP DATE ", "INVOICE NUM");
|
|
|
|
|
print2SideStringMargin("TRANSACTION ", "AMOUNT");
|
|
|
|
|
print2SideStringMargin("APPR CODE ", "DATE/TIME");
|
|
|
|
|
print2SideStringMargin("CARD TYPE ","CARD NUMBER");
|
|
|
|
|
print2SideStringMargin("EXP DATE ","INVOICE NUM");
|
|
|
|
|
print2SideStringMargin("TRANSACTION ","AMOUNT");
|
|
|
|
|
print2SideStringMargin("APPR CODE ","DATE/TIME");
|
|
|
|
|
lineBreak();
|
|
|
|
|
|
|
|
|
|
for (CardSettleData cardSettleData : cardSettleDataList) {
|
|
|
|
|
print2SideStringMargin(cardSettleData.getCardType(), PrintUtils.getInstance().maskCardNumberPciDss(cardSettleData.getCardNum()));
|
|
|
|
|
print2SideStringMargin("INV NO", cardSettleData.getInvoiceNum());
|
|
|
|
|
String cardCurrency = currencyCodeToText(cardSettleData.getCurrencyCode());
|
|
|
|
|
print2SideStringMargin(cardSettleData.getTransType(), cardCurrency + " " + PrintUtils.getInstance().getSeparatorNumberFormat(cardSettleData.getAmount(), isDecimalEnabled));
|
|
|
|
|
print2SideStringMargin(cardSettleData.getApprovalCode(), cardSettleData.getTransDate() + " " + cardSettleData.getTransTime());
|
|
|
|
|
for (CardSettleData cardSettleData:cardSettleDataList) {
|
|
|
|
|
print2SideStringMargin(cardSettleData.getCardType(),PrintUtils.getInstance().maskCardNumberPciDss(cardSettleData.getCardNum()));
|
|
|
|
|
print2SideStringMargin("XX/XX",cardSettleData.getInvoiceNum());
|
|
|
|
|
print2SideStringMargin(cardSettleData.getTransType(),"MMK "+PrintUtils.getInstance().getSeparatorNumberFormat(payDetail.getAmount(), isDecimalEnabled));
|
|
|
|
|
print2SideStringMargin(cardSettleData.getApprovalCode(),cardSettleData.getTransDate() + " " + cardSettleData.getTransTime() );
|
|
|
|
|
emptyLine(1);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
lineBreak();
|
|
|
|
|
SettleData settleData = payDetail.getSettleDataObj();
|
|
|
|
|
long totalAmount = settleData.getSaleAmount() + settleData.getPreAuthCompAmount() + settleData.getCashAdvanceAmount()
|
|
|
|
|
- settleData.getVoidSaleAmount() - settleData.getRefundAmount();
|
|
|
|
|
int totalCount = settleData.getSaleCount() + settleData.getPreAuthCompCount() + settleData.getRefundCount() + settleData.getCashAdvanceCount();
|
|
|
|
|
long totalAmount = settleData.getSaleAmount() + settleData.getPreAuthCompAmount() + settleData.getCashAdvanceAmount();
|
|
|
|
|
|
|
|
|
|
printer.appendPrnStr("GRAND TOTAL", fontLarge, AlignEnum.LEFT, true);
|
|
|
|
|
emptyLine(1);
|
|
|
|
|
print3ColumnsString("TRX TYPE ", "CNT", "AMOUNT");
|
|
|
|
|
print3ColumnsString("SALE ", countStringFormat(settleData.getSaleCount()), PrintUtils.getInstance().getSeparatorNumberFormat(settleData.getSaleAmount(), isDecimalEnabled));
|
|
|
|
|
print3ColumnsString("VOID SALE ", countStringFormat(settleData.getVoidSaleCount()), "- " + PrintUtils.getInstance().getSeparatorNumberFormat(settleData.getVoidSaleAmount(), isDecimalEnabled));
|
|
|
|
|
print3ColumnsString("VOID SALE ", countStringFormat(settleData.getVoidSaleCount()), PrintUtils.getInstance().getSeparatorNumberFormat(settleData.getVoidSaleAmount(), isDecimalEnabled));
|
|
|
|
|
print3ColumnsString("PREAUTH COMP ", countStringFormat(settleData.getPreAuthCompCount()), PrintUtils.getInstance().getSeparatorNumberFormat(settleData.getPreAuthCompAmount(), isDecimalEnabled));
|
|
|
|
|
if (settleData.getCashAdvanceCount() != 0)
|
|
|
|
|
print3ColumnsString("CASH ADV ", countStringFormat(settleData.getCashAdvanceCount()), PrintUtils.getInstance().getSeparatorNumberFormat(settleData.getCashAdvanceAmount(), isDecimalEnabled));
|
|
|
|
|
print3ColumnsString("REFUND ", countStringFormat(settleData.getRefundCount()), "- " + PrintUtils.getInstance().getSeparatorNumberFormat(settleData.getRefundAmount(), isDecimalEnabled));
|
|
|
|
|
emptyLine(1);
|
|
|
|
|
printer.appendPrnStr("GRAND TOTAL", fontLarge, AlignEnum.LEFT,true);
|
|
|
|
|
emptyLine(1);
|
|
|
|
|
// print3ColumnsString("TOTAL(MMK) ", countStringFormat(totalCount), PrintUtils.getInstance().getSeparatorNumberFormat(totalAmount));
|
|
|
|
|
print3ColumnsString("TRX TYPE ", "CNT", "AMOUNT");
|
|
|
|
|
print3ColumnsString("SALE ", countStringFormat(settleData.getSaleCount()), PrintUtils.getInstance().getSeparatorNumberFormat(settleData.getSaleAmount(), isDecimalEnabled));
|
|
|
|
|
print3ColumnsString("VOID SALE ", countStringFormat(settleData.getVoidSaleCount()), PrintUtils.getInstance().getSeparatorNumberFormat(settleData.getVoidSaleAmount(), isDecimalEnabled));
|
|
|
|
|
print3ColumnsString("PREAUTH COMP ", countStringFormat(settleData.getPreAuthCompCount()), PrintUtils.getInstance().getSeparatorNumberFormat(settleData.getPreAuthCompAmount(), isDecimalEnabled));
|
|
|
|
|
if (settleData.getCashAdvanceCount() != 0)
|
|
|
|
|
print3ColumnsString("CASH ADV ", countStringFormat(settleData.getCashAdvanceCount()), PrintUtils.getInstance().getSeparatorNumberFormat(settleData.getCashAdvanceAmount(), isDecimalEnabled));
|
|
|
|
|
print3ColumnsString("REFUND ", countStringFormat(settleData.getRefundCount()), "- " + PrintUtils.getInstance().getSeparatorNumberFormat(settleData.getRefundAmount(), isDecimalEnabled));
|
|
|
|
|
dotBreak();
|
|
|
|
|
print3ColumnsString("TOTAL ", "", PrintUtils.getInstance().getSeparatorNumberFormat(totalAmount, isDecimalEnabled));
|
|
|
|
|
emptyLine(2);
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
@ -377,18 +384,17 @@ public abstract class BaseXPrint {
|
|
|
|
|
|
|
|
|
|
String receiptFooter = SystemParamsOperation.getInstance().getReceiptFooter();
|
|
|
|
|
String finalVersion = SystemParamsOperation.getInstance().getFinalVersion();
|
|
|
|
|
printer.appendPrnStr("***** MERCHANT COPY *****", fontNormal, AlignEnum.CENTER, false);
|
|
|
|
|
printer.appendPrnStr("***** MERCHANT COPY *****", fontNormal, AlignEnum.CENTER,false);
|
|
|
|
|
// printer.appendPrnStr(finalVersion, fontNormal, AlignEnum.CENTER,false);
|
|
|
|
|
printer.appendPrnStr(receiptFooter, fontNormal, AlignEnum.CENTER, false);
|
|
|
|
|
printer.appendPrnStr(receiptFooter, fontNormal, AlignEnum.CENTER,false);
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
protected void printTransFooterForSettlement() {
|
|
|
|
|
String receiptFooter = SystemParamsOperation.getInstance().getReceiptFooter();
|
|
|
|
|
String finalVersion = SystemParamsOperation.getInstance().getFinalVersion();
|
|
|
|
|
printer.appendPrnStr("***** SETTLEMENT CONFIRM *****", fontNormal, AlignEnum.CENTER, false);
|
|
|
|
|
printer.appendPrnStr(receiptFooter, fontNormal, AlignEnum.CENTER, false);
|
|
|
|
|
printer.appendPrnStr("***** SETTLEMENT CONFIRM *****", fontNormal, AlignEnum.CENTER,false);
|
|
|
|
|
printer.appendPrnStr(receiptFooter, fontNormal, AlignEnum.CENTER,false);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
@ -403,9 +409,9 @@ public abstract class BaseXPrint {
|
|
|
|
|
|
|
|
|
|
print2ColumnsStringNoSpace("CARD NUM :", PrintUtils.getInstance().maskCardNumberPciDss(payDetail.getCardNo()));
|
|
|
|
|
print2ColumnsStringNoSpace("ENTRY MODE :", PrintUtils.getInstance().getEntryType(payDetail.getCardType()));
|
|
|
|
|
print2ColumnsStringNoSpace("EXP DATE :", PrintUtils.getInstance().getFormatExpDate(payDetail.getEXPDate()));
|
|
|
|
|
print2ColumnsStringNoSpace("EXP DATE :",PrintUtils.getInstance().getFormatExpDate(payDetail.getEXPDate()));
|
|
|
|
|
print2ColumnsStringNoSpace("CARD TYPE :", payDetail.getAccountType());
|
|
|
|
|
print2ColumnsStringNoSpace("TRACE NUM :", payDetail.getVoucherNo());
|
|
|
|
|
print2ColumnsStringNoSpace("TRACE NUM :", payDetail.getInvoiceNo());
|
|
|
|
|
|
|
|
|
|
if (payDetail.getCardType() != BaseCardType.MAGNETIC.getValue()) {
|
|
|
|
|
print2ColumnsStringNoSpace("CARD HOLDER:", firsLineName);
|
|
|
|
|
@ -415,7 +421,7 @@ public abstract class BaseXPrint {
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
if (payDetail.getTradeAnswerCode().equals(Constant.ANSWER_CODE_ACCEPT) || payDetail.getTradeAnswerCode().equals(Constant.ANSWER_CODE_APPROVED)) {
|
|
|
|
|
print2ColumnsStringNoSpace("APPR CODE :", payDetail.getApprovalCode());
|
|
|
|
|
print2ColumnsStringNoSpace( "APPR CODE :" ,payDetail.getApprovalCode());
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
print2ColumnsStringNoSpace("TRANS REF :", payDetail.getReferNo());
|
|
|
|
|
@ -430,6 +436,7 @@ public abstract class BaseXPrint {
|
|
|
|
|
// }
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
boolean isDecimalEnabled = SystemParamsOperation.getInstance().getDecimalEnable();
|
|
|
|
|
if (payDetail.getTradeAnswerCode().equals("00") || payDetail.getTradeAnswerCode().equals("000")) {
|
|
|
|
|
if (payDetail.getTransactionType() == TransactionType.CASH_ADVANCE) {
|
|
|
|
|
@ -442,7 +449,7 @@ public abstract class BaseXPrint {
|
|
|
|
|
if (payDetail.getTradeAnswerCode().equals("00") || payDetail.getTradeAnswerCode().equals("000")) {
|
|
|
|
|
String currencySign = currencyCodeToText(payDetail.getCurrencyCode());
|
|
|
|
|
if (payDetail.getTransactionType() == TransactionType.BALANCE_INQUIRY) {
|
|
|
|
|
printer.appendPrnStr("MMK " + PrintUtils.getInstance().getBalanceInquiryNumberFormat(payDetail.getAmount()), fontNormal, AlignEnum.LEFT, false);
|
|
|
|
|
printer.appendPrnStr("MMK " + PrintUtils.getInstance().getBalanceInquiryNumberFormat(payDetail.getAmount()), fontNormal, AlignEnum.LEFT,false);
|
|
|
|
|
|
|
|
|
|
} else if (payDetail.getTransactionType() == TransactionType.VOID || payDetail.getTransactionType() == TransactionType.REFUND || payDetail.getTransactionType() == TransactionType.PRE_SALE_CANCEL || payDetail.getTransactionType() == TransactionType.PRE_SALE_COMPLETE_VOID) {
|
|
|
|
|
print2SideString("AMT:" + currencySign, "- " + PrintUtils.getInstance().getSeparatorNumberFormat(payDetail.getAmount(), isDecimalEnabled));
|
|
|
|
|
@ -457,8 +464,8 @@ public abstract class BaseXPrint {
|
|
|
|
|
|
|
|
|
|
dotBreak();
|
|
|
|
|
emptyLine(2);
|
|
|
|
|
printer.appendPrnStr("TRANSACTION FAIL", fontNormal, AlignEnum.CENTER, true);
|
|
|
|
|
printer.appendPrnStr(BaseErrorCode.getCode(payDetail.getTradeAnswerCode()), fontNormal, AlignEnum.CENTER, true);
|
|
|
|
|
printer.appendPrnStr("TRANSACTION FAIL", fontNormal, AlignEnum.CENTER,true);
|
|
|
|
|
printer.appendPrnStr(BaseErrorCode.getCode(payDetail.getTradeAnswerCode()), fontNormal, AlignEnum.CENTER,true);
|
|
|
|
|
|
|
|
|
|
emptyLine(2);
|
|
|
|
|
dotBreak();
|
|
|
|
|
@ -519,20 +526,20 @@ public abstract class BaseXPrint {
|
|
|
|
|
} else {
|
|
|
|
|
hostName = HOST_NAME_VM;
|
|
|
|
|
}
|
|
|
|
|
printer.appendPrnStr("HOST :" + hostName, fontNormal, AlignEnum.LEFT, false);
|
|
|
|
|
printer.appendPrnStr("TID :" + payDetail.getTerminalNo(), fontNormal, AlignEnum.LEFT, false);
|
|
|
|
|
printer.appendPrnStr("MID :" + payDetail.getMerchantNo(), fontNormal, AlignEnum.LEFT, false);
|
|
|
|
|
printer.appendPrnStr("HOST :" + hostName, fontNormal, AlignEnum.LEFT,false);
|
|
|
|
|
printer.appendPrnStr("TID :" + payDetail.getTerminalNo(), fontNormal, AlignEnum.LEFT,false);
|
|
|
|
|
printer.appendPrnStr("MID :" + payDetail.getMerchantNo(), fontNormal, AlignEnum.LEFT,false);
|
|
|
|
|
|
|
|
|
|
if (payDetail.getTransType().equals("SUMMARY_REPORT")) {
|
|
|
|
|
printer.appendPrnStr("BTH NO:" + batchNum, fontNormal, AlignEnum.LEFT, false);
|
|
|
|
|
printer.appendPrnStr("BTH NO:" + batchNum, fontNormal, AlignEnum.LEFT,false);
|
|
|
|
|
} else {
|
|
|
|
|
// printer.printColumnsString(new String[]{"BATCH NO :" + batchNum, "INV NO: " + invoiceNo}, new int[]{2, 2}, new int[]{0, 2}, null);
|
|
|
|
|
printer.appendPrnStr("BTH NO:" + batchNum + " INV NO:" + invoiceNo, fontNormal, AlignEnum.LEFT, false);
|
|
|
|
|
printer.appendPrnStr("BTH NO:" + batchNum + " INV NO:" + traceNo, fontNormal, AlignEnum.LEFT,false);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
// printer.appendPrnStr("\n", fontNormal, AlignEnum.LEFT,false);
|
|
|
|
|
printer.appendPrnStr("\n", fontNormal, AlignEnum.LEFT, false);
|
|
|
|
|
printer.appendPrnStr(transType.replace("_", " "), fontNormal, AlignEnum.CENTER, true);
|
|
|
|
|
printer.appendPrnStr("\n", fontNormal, AlignEnum.LEFT,false);
|
|
|
|
|
printer.appendPrnStr(transType.replace("_", " "), fontNormal, AlignEnum.CENTER,true);
|
|
|
|
|
// printer.appendPrnStr("\n", fontNormal, AlignEnum.LEFT,false);
|
|
|
|
|
// printer.appendPrnStr("\n", fontNormal, AlignEnum.LEFT,false);
|
|
|
|
|
|
|
|
|
|
@ -571,12 +578,12 @@ public abstract class BaseXPrint {
|
|
|
|
|
print2ColumnsStringNoSpace("CARD NUM :", PrintUtils.getInstance().maskCardNumberPciDss(payDetail.getCardNo()));
|
|
|
|
|
if (payDetail.getCardType() != -1 || payDetail.getTransactionType() != TransactionsType.REFUND.value) {
|
|
|
|
|
// printer.appendPrnStr("AID :" + payDetail.getAID(), fontNormal, AlignEnum.LEFT,false);
|
|
|
|
|
printer.appendPrnStr("APP LABEL :" + payDetail.getAppLabel(), fontNormal, AlignEnum.LEFT, false);
|
|
|
|
|
printer.appendPrnStr("APP LABEL :" + payDetail.getAppLabel(), fontNormal, AlignEnum.LEFT,false);
|
|
|
|
|
}
|
|
|
|
|
print2ColumnsStringNoSpace("ENTRY MODE:", PrintUtils.getInstance().getEntryType(payDetail.getCardType()));
|
|
|
|
|
print2ColumnsStringNoSpace("EXP DATE :", PrintUtils.getInstance().getFormatExpDate(payDetail.getEXPDate()));
|
|
|
|
|
print2ColumnsStringNoSpace("EXP DATE :",PrintUtils.getInstance().getFormatExpDate(payDetail.getEXPDate()));
|
|
|
|
|
print2ColumnsStringNoSpace("CARD TYPE :", payDetail.getAccountType());
|
|
|
|
|
print2ColumnsStringNoSpace("TRACE NUM :", payDetail.getVoucherNo());
|
|
|
|
|
print2ColumnsStringNoSpace("TRACE NUM :", payDetail.getInvoiceNo());
|
|
|
|
|
|
|
|
|
|
if (payDetail.getCardType() != BaseCardType.MAGNETIC.getValue()) {
|
|
|
|
|
print2ColumnsStringNoSpace("CARD HOLDER:", firsLineName);
|
|
|
|
|
@ -586,7 +593,7 @@ public abstract class BaseXPrint {
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
if (payDetail.getTradeAnswerCode().equals(Constant.ANSWER_CODE_ACCEPT) || payDetail.getTradeAnswerCode().equals(Constant.ANSWER_CODE_APPROVED)) {
|
|
|
|
|
print2ColumnsStringNoSpace("APPR CODE :", payDetail.getApprovalCode());
|
|
|
|
|
print2ColumnsStringNoSpace( "APPR CODE :" ,payDetail.getApprovalCode());
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
@ -604,7 +611,7 @@ public abstract class BaseXPrint {
|
|
|
|
|
String currencySign = currencyCodeToText(payDetail.getCurrencyCode());
|
|
|
|
|
// CurrencyType currencySign = currencyTextToCurrencyType(payDetail.getCurrencyCode());
|
|
|
|
|
if (payDetail.getTransactionType() == TransactionType.BALANCE_INQUIRY) {
|
|
|
|
|
printer.appendPrnStr("MMK " + PrintUtils.getInstance().getBalanceInquiryNumberFormat(payDetail.getAmount()), fontNormal, AlignEnum.LEFT, true);
|
|
|
|
|
printer.appendPrnStr("MMK " + PrintUtils.getInstance().getBalanceInquiryNumberFormat(payDetail.getAmount()), fontNormal, AlignEnum.LEFT,true);
|
|
|
|
|
} else {
|
|
|
|
|
print2SideString("AMT:" + currencySign, PrintUtils.getInstance().getSeparatorNumberFormat(payDetail.getAmount(), isDecimalEnabled));
|
|
|
|
|
// printer.appendPrnStr("AMOUNT:" + currencySign + " " + PrintUtils.getInstance().getSeparatorNumberFormat(payDetail.getAmount()), fontNormal, AlignEnum.LEFT,true);
|
|
|
|
|
@ -614,7 +621,7 @@ public abstract class BaseXPrint {
|
|
|
|
|
|
|
|
|
|
// lineBreak();
|
|
|
|
|
emptyLine(1);
|
|
|
|
|
printer.appendPrnStr(BaseErrorCode.getCode(payDetail.getTradeAnswerCode()), fontNormal, AlignEnum.CENTER, true);
|
|
|
|
|
printer.appendPrnStr(BaseErrorCode.getCode(payDetail.getTradeAnswerCode()), fontNormal, AlignEnum.CENTER,true);
|
|
|
|
|
emptyLine(1);
|
|
|
|
|
dotBreak();
|
|
|
|
|
}
|
|
|
|
|
@ -631,7 +638,7 @@ public abstract class BaseXPrint {
|
|
|
|
|
if (isNegative) {
|
|
|
|
|
amountString = "-" + amountString;
|
|
|
|
|
}
|
|
|
|
|
printer.appendPrnStr(label + countStringFormat(count) + MMK + " " + amountString, fontNormal, AlignEnum.LEFT, false);
|
|
|
|
|
printer.appendPrnStr(label + countStringFormat(count) + MMK + " " + amountString, fontNormal, AlignEnum.LEFT,false);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
@ -649,14 +656,14 @@ public abstract class BaseXPrint {
|
|
|
|
|
|
|
|
|
|
if (settleData.getSaleCount() == 0 && settleData.getVoidSaleCount() == 0 && settleData.getWavePayCount() == 0 && settleData.getCashAdvanceCount() == 0) {
|
|
|
|
|
printErrorBlock("NO TRANSACTION FOUND");
|
|
|
|
|
printer.appendPrnStr("\n", fontNormal, AlignEnum.LEFT, false);
|
|
|
|
|
printer.appendPrnStr("\n", fontNormal, AlignEnum.LEFT,false);
|
|
|
|
|
return;
|
|
|
|
|
}
|
|
|
|
|
if (payDetail.getAccountType().equals("WALLET")) {
|
|
|
|
|
// printer.appendPrnStr("PAYMENT NAME: PAY BY QR", fontNormal, AlignEnum.LEFT,false);
|
|
|
|
|
printString("TYPE : " + "PAY BY QR");
|
|
|
|
|
} 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, false);
|
|
|
|
|
@ -710,18 +717,18 @@ public abstract class BaseXPrint {
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
if (isWallet) {
|
|
|
|
|
if (settleData.getWavePayCount() > 0) {
|
|
|
|
|
printer.appendPrnStr("(" + settleData.getWavePayCount() + ")" + "QR PAY", PrintUtils.getInstance().getSeparatorNumberFormat(settleData.getWavePayAmount(), isQrDecimalEnabled), fontNormal, false);
|
|
|
|
|
if (settleData.getWavePayCount() > 0){
|
|
|
|
|
printer.appendPrnStr( "(" + settleData.getWavePayCount() + ")" + "QR PAY" , PrintUtils.getInstance().getSeparatorNumberFormat(settleData.getWavePayAmount(), isQrDecimalEnabled) , fontNormal, false);
|
|
|
|
|
}
|
|
|
|
|
if (settleData.getWaveRefundCount() > 0) {
|
|
|
|
|
printer.appendPrnStr("(" + settleData.getWaveRefundCount() + ")" + "QR REFUND", "- " + PrintUtils.getInstance().getSeparatorNumberFormat(settleData.getWaveRefundAmount(), isQrDecimalEnabled), fontNormal, false);
|
|
|
|
|
printer.appendPrnStr( "(" + settleData.getWaveRefundCount() + ")" + "QR REFUND", "- " + PrintUtils.getInstance().getSeparatorNumberFormat(settleData.getWaveRefundAmount(), isQrDecimalEnabled) , fontNormal, false);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
// dashBreak();
|
|
|
|
|
dotBreak();
|
|
|
|
|
// printColumnString("TOTAL", totalCount, totalAmount, false);
|
|
|
|
|
// printer.appendPrnStr( "TOTAL " + countStringFormat(totalCount) + " " + "MMK", PrintUtils.getInstance().getSeparatorNumberFormat(totalAmount, isQrDecimalEnabled) , fontNormal, false);
|
|
|
|
|
printer.appendPrnStr("TOTAL", PrintUtils.getInstance().getSeparatorNumberFormat(totalAmount, isQrDecimalEnabled), fontNormal, false);
|
|
|
|
|
printer.appendPrnStr( "TOTAL", PrintUtils.getInstance().getSeparatorNumberFormat(totalAmount, isQrDecimalEnabled) , fontNormal, false);
|
|
|
|
|
|
|
|
|
|
// printer.appendPrnStr("\n", fontNormal, AlignEnum.LEFT,false);
|
|
|
|
|
// printer.appendPrnStr("GRAND TOTAL", fontNormal, AlignEnum.LEFT,false);
|
|
|
|
|
@ -933,7 +940,7 @@ public abstract class BaseXPrint {
|
|
|
|
|
|
|
|
|
|
if (list == null || list.isEmpty()) {
|
|
|
|
|
printErrorBlock("NO TRANSACTION FOUND");
|
|
|
|
|
printer.appendPrnStr("\n", fontNormal, AlignEnum.LEFT, false);
|
|
|
|
|
printer.appendPrnStr("\n", fontNormal, AlignEnum.LEFT,false);
|
|
|
|
|
return;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
@ -957,7 +964,7 @@ public abstract class BaseXPrint {
|
|
|
|
|
|
|
|
|
|
if (currencyMap.isEmpty()) {
|
|
|
|
|
printErrorBlock("NO TRANSACTION FOUND");
|
|
|
|
|
printer.appendPrnStr("\n", fontNormal, AlignEnum.LEFT, false);
|
|
|
|
|
printer.appendPrnStr("\n", fontNormal, AlignEnum.LEFT,false);
|
|
|
|
|
return;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
@ -969,7 +976,7 @@ public abstract class BaseXPrint {
|
|
|
|
|
TempSummary data = currencyMap.get(currency);
|
|
|
|
|
boolean isQrHost = hostType == HostType.QR;
|
|
|
|
|
|
|
|
|
|
printer.appendPrnStr(currencyCodeToText(currency) + " " + "Transactions", fontNormal, AlignEnum.LEFT, false);
|
|
|
|
|
printer.appendPrnStr( currencyCodeToText(currency) + " " +"Transactions", fontNormal, AlignEnum.LEFT, false);
|
|
|
|
|
emptyLine(1);
|
|
|
|
|
|
|
|
|
|
// printer.appendPrnStr("(COUNT)TRANS", "AMOUNT(" + currencyCodeToText(currency) + ")", fontNormal, false);
|
|
|
|
|
@ -1047,7 +1054,7 @@ public abstract class BaseXPrint {
|
|
|
|
|
: (data.saleAmount + data.cashOutAmount + data.preAuthSaleAmount + data.preAuthCompAmount)
|
|
|
|
|
- (data.voidSaleAmount + data.preAuthVoidAmount + data.refundAmount + data.preAuthCompVoidAmount);
|
|
|
|
|
|
|
|
|
|
printer.appendPrnStr("TOTAL" + " " + currencyCodeToText(currency),
|
|
|
|
|
printer.appendPrnStr( "TOTAL"+ " " + currencyCodeToText(currency),
|
|
|
|
|
PrintUtils.getInstance().getSeparatorNumberFormat(totalAmount, isQrHost ? isQrDecimalEnabled : isDecimalEnabled),
|
|
|
|
|
fontNormal, false);
|
|
|
|
|
|
|
|
|
|
@ -1094,65 +1101,66 @@ public abstract class BaseXPrint {
|
|
|
|
|
}*/
|
|
|
|
|
|
|
|
|
|
protected void printString(String text) {
|
|
|
|
|
printer.appendPrnStr(text, fontNormal, AlignEnum.LEFT, false);
|
|
|
|
|
printer.appendPrnStr(text, fontNormal, AlignEnum.LEFT,false);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
protected void printString(String text, Boolean isBold) {
|
|
|
|
|
printer.appendPrnStr(text, fontNormal, AlignEnum.LEFT, isBold);
|
|
|
|
|
printer.appendPrnStr(text, fontNormal, AlignEnum.LEFT,isBold);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
protected void print2ColumnsString(String first, String second) {
|
|
|
|
|
printer.appendPrnStr(first + " " + second, fontNormal, AlignEnum.LEFT, false);
|
|
|
|
|
printer.appendPrnStr(first + " " + second, fontNormal, AlignEnum.LEFT,false);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
protected void print2SideString(String first, String second) {
|
|
|
|
|
printer.appendPrnStr(first, second, fontLarge, true);
|
|
|
|
|
printer.appendPrnStr(first,second, fontLarge,true);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
protected void print2SideStringMargin(String first, String second) {
|
|
|
|
|
LineOptionEntity lineOption = new LineOptionEntity();
|
|
|
|
|
lineOption.setMarginLeft(2);
|
|
|
|
|
lineOption.setUnderline(false);
|
|
|
|
|
printer.appendPrnStr(first, second, fontNormal, lineOption);
|
|
|
|
|
printer.appendPrnStr(first,second, fontNormal, lineOption);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
protected void print2ColumnsStringNoSpace(String first, String second) {
|
|
|
|
|
printer.appendPrnStr(first + " " + second, fontNormal, AlignEnum.LEFT, false);
|
|
|
|
|
printer.appendPrnStr(first + " " + second, fontNormal, AlignEnum.LEFT,false);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
protected void print2ColumnsStringBold(String first, String second) {
|
|
|
|
|
printer.appendPrnStr(first + " " + second, fontNormal, AlignEnum.LEFT, true);
|
|
|
|
|
printer.appendPrnStr(first + " " + second, fontNormal, AlignEnum.LEFT,true);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
protected void print2ColumnsStringBoldCenter(String first, String second) {
|
|
|
|
|
printer.appendPrnStr(first + " " + second, fontNormal, AlignEnum.CENTER, true);
|
|
|
|
|
printer.appendPrnStr(first + " " + second, fontNormal, AlignEnum.CENTER,true);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
protected void print2ColumnsStringBoldCenter(String first, String second, AlignEnum align) {
|
|
|
|
|
printer.appendPrnStr(first + " " + second, fontNormal, align, true);
|
|
|
|
|
printer.appendPrnStr(first + " " + second, fontNormal, align,true);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
protected void print2ColumnsStringBoldCenter(String first, String second, int fontSize, AlignEnum align) {
|
|
|
|
|
printer.appendPrnStr(first + " " + second, fontSize, align, true);
|
|
|
|
|
printer.appendPrnStr(first + " " + second, fontSize, align,true);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
protected void print3ColumnsString(String first, String second, String third) {
|
|
|
|
|
// printer.appendPrnStr(first + " " + second + " " + third, fontNormal, AlignEnum.LEFT,false);
|
|
|
|
|
printer.appendPrnStr(first + " " + second + " " + third, fontNormal, AlignEnum.LEFT, false);
|
|
|
|
|
printer.appendPrnStr(first + " " + second + " " + third, fontNormal, AlignEnum.LEFT,false);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
protected void print3ColumnsString(String first, String second, String third, Boolean isBold) {
|
|
|
|
|
// printer.appendPrnStr(first + " " + second + " " + third, fontNormal, AlignEnum.LEFT,false);
|
|
|
|
|
printer.appendPrnStr(first + " " + second + " " + third, fontNormal, AlignEnum.LEFT, isBold);
|
|
|
|
|
printer.appendPrnStr(first + " " + second + " " + third, fontNormal, AlignEnum.LEFT,isBold);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
protected void print3ColumnsStringWithAlign(String first, String second, String third, int font, boolean isBold) {
|
|
|
|
|
protected void print3ColumnsStringWithAlign(String first, String second, String third, int font, boolean isBold){
|
|
|
|
|
String fixedSizeString = String.format("%-5s", first);
|
|
|
|
|
printer.appendPrnStr(fixedSizeString + " " + second, third, font, isBold);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
protected void dotBreak() {
|
|
|
|
|
protected void dotBreak(){
|
|
|
|
|
printer.appendPrnStr(new String(new char[29]).replace("\0", "."), fontNormal, AlignEnum.CENTER, false);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
@ -1160,7 +1168,6 @@ public abstract class BaseXPrint {
|
|
|
|
|
long total = 0;
|
|
|
|
|
int count = 0;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
protected void printTransDetailReport(List<PayDetail> lists, HostType hostType) {
|
|
|
|
|
|
|
|
|
|
// ✅ Summary holder (total + count per currency)
|
|
|
|
|
@ -1213,7 +1220,7 @@ public abstract class BaseXPrint {
|
|
|
|
|
: pay.getCustomerMobile()));
|
|
|
|
|
printString("DATE :" + POSUtil.getInstance().formatDisplayDate(pay.getTransDate()));
|
|
|
|
|
printString(" " + pay.getTransTime());
|
|
|
|
|
printString("INV NO :" + pay.getInvoiceNo());
|
|
|
|
|
printString("INV NO :" + pay.getVoucherNo());
|
|
|
|
|
|
|
|
|
|
if (pay.getTransactionType() == TransactionsType.MMQR_REFUND.value) {
|
|
|
|
|
printString("RRN :" + pay.getReferNo());
|
|
|
|
|
@ -1379,13 +1386,13 @@ public abstract class BaseXPrint {
|
|
|
|
|
cvmText = "NO SIGNATURE REQUIRED";
|
|
|
|
|
break;
|
|
|
|
|
}
|
|
|
|
|
if (payDetail.getTransactionType() == TransactionsType.MMQR.value || payDetail.getTransactionType() == TransactionsType.MMQR_REFUND.value) {
|
|
|
|
|
if(payDetail.getTransactionType() == TransactionsType.MMQR.value || payDetail.getTransactionType() == TransactionsType.MMQR_REFUND.value){
|
|
|
|
|
cvmText = "";
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
addSignatureBitmap(payDetail);
|
|
|
|
|
|
|
|
|
|
printer.appendPrnStr(cvmText, fontNormal, AlignEnum.CENTER, true);
|
|
|
|
|
printer.appendPrnStr(cvmText, fontNormal, AlignEnum.CENTER,true);
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
// if (payDetail.getIsFreeSign()) {
|
|
|
|
|
@ -1397,17 +1404,17 @@ public abstract class BaseXPrint {
|
|
|
|
|
emptyLine(0);
|
|
|
|
|
// printer.appendPrnStr("I AGREE TO PAY THE ABOVE TOTAL AMOUNT", fontSmall, AlignEnum.CENTER,false);
|
|
|
|
|
if (!isQR) {
|
|
|
|
|
printer.appendPrnStr("I AGREE TO PAY THE ABOVE TOTAL AMOUNT", fontSmall, AlignEnum.CENTER, false);
|
|
|
|
|
printer.appendPrnStr("ACCORDING TO THE CARD ISSUER AGREEMENT", fontSmall, AlignEnum.CENTER, false);
|
|
|
|
|
printer.appendPrnStr("I AGREE TO PAY THE ABOVE TOTAL AMOUNT", fontSmall, AlignEnum.CENTER,false);
|
|
|
|
|
printer.appendPrnStr("ACCORDING TO THE CARD ISSUER AGREEMENT", fontSmall, AlignEnum.CENTER,false);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
if (isMerchantCopy) {
|
|
|
|
|
printer.appendPrnStr("***** MERCHANT COPY *****", fontSmall, AlignEnum.CENTER, false);
|
|
|
|
|
printer.appendPrnStr("***** MERCHANT COPY *****", fontSmall, AlignEnum.CENTER,false);
|
|
|
|
|
} else {
|
|
|
|
|
printer.appendPrnStr("***** CUSTOMER COPY *****", fontSmall, AlignEnum.CENTER, false);
|
|
|
|
|
printer.appendPrnStr("***** CUSTOMER COPY *****", fontSmall, AlignEnum.CENTER,false);
|
|
|
|
|
}
|
|
|
|
|
// printer.appendPrnStr(finalVersion, fontSmall, AlignEnum.CENTER,false);
|
|
|
|
|
printer.appendPrnStr(receiptFooter, fontSmall, AlignEnum.CENTER, false);
|
|
|
|
|
printer.appendPrnStr(receiptFooter, fontSmall, AlignEnum.CENTER,false);
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
@ -1535,16 +1542,17 @@ public abstract class BaseXPrint {
|
|
|
|
|
|
|
|
|
|
String ksn = ByteUtil.bytes2HexStr(ksnData);
|
|
|
|
|
|
|
|
|
|
printer.appendPrnStr("<<< DUKPT Key Information >>>", fontNormal, AlignEnum.CENTER, true);
|
|
|
|
|
printer.appendPrnStr("<<< DUKPT Key Information >>>", fontNormal, AlignEnum.CENTER,true);
|
|
|
|
|
|
|
|
|
|
lineBreak();
|
|
|
|
|
printer.appendPrnStr("Key Index (" + keyIndex + ")", fontNormal, AlignEnum.LEFT, false);
|
|
|
|
|
printer.appendPrnStr("KSN :" + ksn, fontNormal, AlignEnum.LEFT, false);
|
|
|
|
|
printer.appendPrnStr("Key Index (" + keyIndex + ")", fontNormal, AlignEnum.LEFT,false);
|
|
|
|
|
printer.appendPrnStr("KSN :" + ksn, fontNormal, AlignEnum.LEFT,false);
|
|
|
|
|
|
|
|
|
|
lineBreak();
|
|
|
|
|
emptyLine(4);
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
protected void startPrintNex() {
|
|
|
|
|
@ -1588,43 +1596,43 @@ public abstract class BaseXPrint {
|
|
|
|
|
printer.appendPrnStr("DATE :" + POSUtil.getInstance().formatDisplayDate(payDetail.getTransDate()), fontNormal, AlignEnum.LEFT, false);
|
|
|
|
|
printer.appendPrnStr("TIME :" + payDetail.getTransTime(), fontNormal, AlignEnum.LEFT, false);
|
|
|
|
|
if (payDetail.getTransactionType() == TransactionsType.MMQR.value && payDetail.getQrTransStatus() == 1) {
|
|
|
|
|
printer.appendPrnStr("TRACE NO :" + traceNum, fontNormal, AlignEnum.LEFT, false);
|
|
|
|
|
printer.appendPrnStr("TRACE NO :" + traceNum , fontNormal, AlignEnum.LEFT,false);
|
|
|
|
|
} else if (!payDetail.getTransType().equals(SETTLEMENT) && !payDetail.getTransType().equals(SUMMARY) && payDetail.getTransactionType() != TransactionsType.MMQR_REFUND.value && payDetail.getTransactionType() != TransactionsType.MMQR.value) {
|
|
|
|
|
printer.appendPrnStr("BTH NO:" + batchNum + " INV NO:" + invoiceNo, fontNormal, AlignEnum.LEFT, false);
|
|
|
|
|
printer.appendPrnStr("BTH NO:" + batchNum + " INV NO:" + traceNum, fontNormal, AlignEnum.LEFT,false);
|
|
|
|
|
} else if (payDetail.getTransType().equals(SUMMARY)) {
|
|
|
|
|
printer.appendPrnStr("HOST :" + HOST_NAME_MPU + "", fontNormal, AlignEnum.LEFT, false);
|
|
|
|
|
printer.appendPrnStr("HOST :" + HOST_NAME_MPU + "", fontNormal, AlignEnum.LEFT,false);
|
|
|
|
|
}
|
|
|
|
|
/* 17 Sept 2024 Yoma requested to changed slip design for QR*/
|
|
|
|
|
// printer.printColumnsString(new String[]{"MID :" + payDetail.getMerchantNo(), ""}, new int[]{3, 1}, new int[]{0, 2}, innerResultCallback);
|
|
|
|
|
// printer.printColumnsString(new String[]{"TID :" + payDetail.getTerminalNo(), ""}, new int[]{3, 1}, new int[]{0, 2}, innerResultCallback);
|
|
|
|
|
if (payDetail.getTransactionType() == TransactionsType.MMQR.value || payDetail.getTransactionType() == TransactionsType.MMQR_REFUND.value) {
|
|
|
|
|
printer.appendPrnStr("SHORT CODE :" + payDetail.getMerchantNo(), fontNormal, AlignEnum.LEFT, false);
|
|
|
|
|
} else {
|
|
|
|
|
if (payDetail.getTransactionType() == TransactionsType.MMQR.value || payDetail.getTransactionType() == TransactionsType.MMQR_REFUND.value){
|
|
|
|
|
printer.appendPrnStr("SHORT CODE :" + payDetail.getMerchantNo(), fontNormal, AlignEnum.LEFT,false);
|
|
|
|
|
}else{
|
|
|
|
|
|
|
|
|
|
if (isSettlement && isDuelCurrency) {
|
|
|
|
|
if(isSettlement && isDuelCurrency){
|
|
|
|
|
printer.appendPrnStr("MID :" + SystemParamsOperation.getInstance().getMerchantId(), fontNormal, AlignEnum.LEFT, false);
|
|
|
|
|
printer.appendPrnStr("TID :" + SystemParamsOperation.getInstance().getTerminalId(), fontNormal, AlignEnum.LEFT, false);
|
|
|
|
|
printer.appendPrnStr("MID :" + SystemParamsOperation.getInstance().getThirdHostMerchantId(), fontNormal, AlignEnum.LEFT, false);
|
|
|
|
|
printer.appendPrnStr("TID :" + SystemParamsOperation.getInstance().getThirdHostTerminalId(), fontNormal, AlignEnum.LEFT, false);
|
|
|
|
|
} else {
|
|
|
|
|
printer.appendPrnStr("MID :" + payDetail.getMerchantNo(), fontNormal, AlignEnum.LEFT, false);
|
|
|
|
|
printer.appendPrnStr("TID :" + payDetail.getTerminalNo(), fontNormal, AlignEnum.LEFT, false);
|
|
|
|
|
}else{
|
|
|
|
|
printer.appendPrnStr("MID :" + payDetail.getMerchantNo(), fontNormal, AlignEnum.LEFT,false);
|
|
|
|
|
printer.appendPrnStr("TID :" + payDetail.getTerminalNo(), fontNormal, AlignEnum.LEFT,false);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
if (isSettlement) {
|
|
|
|
|
printer.appendPrnStr("BATCH :" + batchNum, fontNormal, AlignEnum.LEFT, false);
|
|
|
|
|
printer.appendPrnStr("HOST :" + "KBZ Bank " + currencySign, fontNormal, AlignEnum.LEFT, false);
|
|
|
|
|
if(isSettlement) {
|
|
|
|
|
printer.appendPrnStr("BATCH :" + batchNum, fontNormal, AlignEnum.LEFT,false);
|
|
|
|
|
printer.appendPrnStr("HOST :" + "KBZ Bank "+currencySign, fontNormal, AlignEnum.LEFT,false);
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
if (isCardTransaction) {
|
|
|
|
|
if(isCardTransaction) {
|
|
|
|
|
dotBreak();
|
|
|
|
|
} else {
|
|
|
|
|
emptyLine(1);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
printer.appendPrnStr(transType.replace("_", " "), fontNormal, AlignEnum.CENTER, true);
|
|
|
|
|
printer.appendPrnStr(transType.replace("_", " "),fontNormal, AlignEnum.CENTER,true);
|
|
|
|
|
// printer.appendPrnStr("TRAN TYPE :" + transType.replace("_", " "),fontNormal, AlignEnum.LEFT,false);
|
|
|
|
|
|
|
|
|
|
if (!(payDetail.getQrTransStatus() != 1 && (payDetail.getTransactionType() == TransactionsType.MMQR_REFUND.value || payDetail.getTransactionType() == TransactionsType.MMQR.value))) {
|
|
|
|
|
@ -1633,7 +1641,7 @@ public abstract class BaseXPrint {
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
protected void printDetailReportHeader() {
|
|
|
|
|
protected void printDetailReportHeader(){
|
|
|
|
|
SimpleDateFormat date = new SimpleDateFormat("dd MMM yyyy", Locale.getDefault());
|
|
|
|
|
String printedDate = date.format(new Date());
|
|
|
|
|
|
|
|
|
|
@ -1642,11 +1650,11 @@ public abstract class BaseXPrint {
|
|
|
|
|
|
|
|
|
|
printer.appendPrnStr("PRINTED DATE", printedDate, fontNormal, false);
|
|
|
|
|
printer.appendPrnStr("", printedTime, fontNormal, false);
|
|
|
|
|
printer.appendPrnStr("DETAIL REPORT", fontNormal, AlignEnum.CENTER, false);
|
|
|
|
|
printer.appendPrnStr("DETAIL REPORT", fontNormal , AlignEnum.CENTER, false);
|
|
|
|
|
dotBreak();
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
protected void printTranHeader(String title) {
|
|
|
|
|
protected void printTranHeader(String title){
|
|
|
|
|
SimpleDateFormat date = new SimpleDateFormat("dd MMM yyyy", Locale.getDefault());
|
|
|
|
|
String printedDate = date.format(new Date());
|
|
|
|
|
|
|
|
|
|
@ -1655,11 +1663,10 @@ public abstract class BaseXPrint {
|
|
|
|
|
|
|
|
|
|
printer.appendPrnStr("PRINTED DATE", printedDate, fontNormal, false);
|
|
|
|
|
printer.appendPrnStr("", printedTime, fontNormal, false);
|
|
|
|
|
printer.appendPrnStr(title, fontNormal, AlignEnum.CENTER, false);
|
|
|
|
|
printer.appendPrnStr(title, fontNormal , AlignEnum.CENTER, false);
|
|
|
|
|
|
|
|
|
|
dotBreak();
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
protected void printTransHeader(PayDetail payDetail, HostType hostType) {
|
|
|
|
|
String invoiceNo = payDetail.getInvoiceNo().isEmpty() ? SystemParamsOperation.getInstance().getCurrentInvoiceNum() : payDetail.getInvoiceNo();
|
|
|
|
|
String transType = payDetail.getTransType();
|
|
|
|
|
@ -1678,24 +1685,24 @@ public abstract class BaseXPrint {
|
|
|
|
|
if (payDetail.getTransactionType() == TransactionsType.MMQR.value && payDetail.getQrTransStatus() == 1) {
|
|
|
|
|
// printer.appendPrnStr("TRACE NO:" + traceNum + " INV NO:" + invoiceNo, fontNormal, AlignEnum.LEFT,false);
|
|
|
|
|
// printer.appendPrnStr("INV NO :" + invoiceNo , fontNormal, AlignEnum.LEFT,false);
|
|
|
|
|
printer.appendPrnStr("TRACE NO :" + traceNum, fontNormal, AlignEnum.LEFT, false);
|
|
|
|
|
printer.appendPrnStr("TRACE NO :" + traceNum , fontNormal, AlignEnum.LEFT,false);
|
|
|
|
|
} else if (!payDetail.getTransType().equals(SETTLEMENT) && !payDetail.getTransType().equals(SUMMARY) && payDetail.getTransactionType() != TransactionsType.MMQR_REFUND.value && payDetail.getTransactionType() != TransactionsType.MMQR.value) {
|
|
|
|
|
// printer.appendPrnStr("BTH NO :" + batchNum + " INV NO:" + traceNum, fontNormal, AlignEnum.LEFT,false);
|
|
|
|
|
} else if (payDetail.getTransType().equals(SUMMARY)) {
|
|
|
|
|
printer.appendPrnStr("HOST :" + HOST_NAME_MPU + "", fontNormal, AlignEnum.LEFT, false);
|
|
|
|
|
printer.appendPrnStr("HOST :" + HOST_NAME_MPU + "", fontNormal, AlignEnum.LEFT,false);
|
|
|
|
|
}
|
|
|
|
|
/* 17 Sept 2024 Yoma requested to changed slip design for QR*/
|
|
|
|
|
// printer.printColumnsString(new String[]{"MID :" + payDetail.getMerchantNo(), ""}, new int[]{3, 1}, new int[]{0, 2}, innerResultCallback);
|
|
|
|
|
// printer.printColumnsString(new String[]{"TID :" + payDetail.getTerminalNo(), ""}, new int[]{3, 1}, new int[]{0, 2}, innerResultCallback);
|
|
|
|
|
if (hostType == HostType.QR) {
|
|
|
|
|
printer.appendPrnStr("SHORT CODE:" + shortCode, fontNormal, AlignEnum.LEFT, false);
|
|
|
|
|
} else {
|
|
|
|
|
printer.appendPrnStr("MID :" + payDetail.getMerchantNo(), fontNormal, AlignEnum.LEFT, false);
|
|
|
|
|
printer.appendPrnStr("TID :" + payDetail.getTerminalNo(), fontNormal, AlignEnum.LEFT, false);
|
|
|
|
|
if (hostType == HostType.QR){
|
|
|
|
|
printer.appendPrnStr("SHORT CODE:" + shortCode, fontNormal, AlignEnum.LEFT,false);
|
|
|
|
|
}else{
|
|
|
|
|
printer.appendPrnStr("MID :" + payDetail.getMerchantNo(), fontNormal, AlignEnum.LEFT,false);
|
|
|
|
|
printer.appendPrnStr("TID :" + payDetail.getTerminalNo(), fontNormal, AlignEnum.LEFT,false);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
emptyLine(1);
|
|
|
|
|
printer.appendPrnStr(transType.replace("_", " "), fontNormal, AlignEnum.CENTER, true);
|
|
|
|
|
printer.appendPrnStr(transType.replace("_", " "),fontNormal, AlignEnum.CENTER,true);
|
|
|
|
|
//
|
|
|
|
|
// if (!(payDetail.getQrTransStatus() != 1 && (payDetail.getTransactionType() == TransactionsType.MMQR_REFUND.value || payDetail.getTransactionType() == TransactionsType.MMQR.value))) {
|
|
|
|
|
// printer.appendPrnStr("\n", fontNormal, AlignEnum.LEFT,false);
|
|
|
|
|
@ -1828,11 +1835,11 @@ public abstract class BaseXPrint {
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
// No port → do NOT split
|
|
|
|
|
return new String[]{raw, ""};
|
|
|
|
|
return new String[]{ raw, "" };
|
|
|
|
|
|
|
|
|
|
} catch (Exception e) {
|
|
|
|
|
// fail-safe: do not split
|
|
|
|
|
return new String[]{raw, ""};
|
|
|
|
|
return new String[]{ raw, "" };
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
@ -1840,7 +1847,7 @@ public abstract class BaseXPrint {
|
|
|
|
|
int idx = raw.lastIndexOf(":");
|
|
|
|
|
|
|
|
|
|
if (idx == -1) {
|
|
|
|
|
return new String[]{raw, ""};
|
|
|
|
|
return new String[]{ raw, "" };
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
return new String[]{
|
|
|
|
|
|