update receipt design

This commit is contained in:
moon 2026-06-28 22:45:31 +06:30
parent 948aba0a8a
commit 7ebc3a50d6

View File

@ -219,7 +219,9 @@ public abstract class BaseXPrint {
String schemeName = "";
schemeName = payDetail.getAccountType() == null ? "" : payDetail.getAccountType();
sunmiPrinterService.setFontSize(18, innerResultCallback);
sunmiPrinterService.setFontSize(20, innerResultCallback);
sunmiPrinterService.setAlignment(0, innerResultCallback);
sunmiPrinterService.setFontName("libre_basker_ville.ttf", innerResultCallback);
String secondLineName = PrintUtils.getInstance().processNameSpaceSecondLine(PrintUtils.getInstance().getCardHolderName(payDetail.getCardHolderName()));
String firstLineName = PrintUtils.getInstance().processNameSpaceFirstLine(PrintUtils.getInstance().getCardHolderName(payDetail.getCardHolderName()), secondLineName);
@ -227,32 +229,45 @@ public abstract class BaseXPrint {
if(payDetail.getAccountType().contains("Ctls")) {
cardType = payDetail.getAccountType().replace(" Ctls","");
}
sunmiPrinterService.printColumnsString(new String[]{"CARD NUM :", PrintUtils.getInstance().cardNumMasking(payDetail.getCardNo())}, new int[]{2, 2}, new int[]{0, 1}, innerResultCallback);
// sunmiPrinterService.printColumnsString(new String[]{"CARD NUM :", PrintUtils.getInstance().cardNumMasking(payDetail.getCardNo())}, new int[]{2, 2}, new int[]{0, 1}, innerResultCallback);
sunmiPrinterService.printText("CARD NUMBER : "+ PrintUtils.getInstance().cardNumMasking(payDetail.getCardNo()) + "\n", innerResultCallback);
if(!firstLineName.isEmpty()) {
sunmiPrinterService.printColumnsString(new String[]{"CARD HOLDER NAME:", firstLineName}, new int[]{2, 2}, new int[]{0, 1}, innerResultCallback);
sunmiPrinterService.printText("CARD HOLDER NAME: " + firstLineName + "\n", innerResultCallback);
// sunmiPrinterService.printColumnsString(new String[]{"CARD HOLDER NAME:", firstLineName}, new int[]{2, 2}, new int[]{0, 1}, innerResultCallback);
}
if(!secondLineName.isEmpty()) {
sunmiPrinterService.printColumnsString(new String[]{secondLineName, ""}, new int[]{2, 2}, new int[]{0, 1}, innerResultCallback);
sunmiPrinterService.printText(" " + secondLineName + "\n", innerResultCallback);
// sunmiPrinterService.printColumnsString(new String[]{secondLineName, ""}, new int[]{2, 2}, new int[]{0, 1}, innerResultCallback);
}
sunmiPrinterService.printColumnsString(new String[]{"ENTRY MODE:" + PrintUtils.getInstance().getEntryType(payDetail.getCardType()), "EXPIRY DATE:" + PrintUtils.getInstance().getFormatExpDate(payDetail.getEXPDate())}, new int[]{2, 2}, new int[]{0, 2}, innerResultCallback);
sunmiPrinterService.printText("ENTRY MODE : " + PrintUtils.getInstance().getEntryType(payDetail.getCardType()) + "\n", innerResultCallback);
sunmiPrinterService.printText("EXPIRY DATE : " + PrintUtils.getInstance().getFormatExpDate(payDetail.getEXPDate()) + "\n", innerResultCallback);
// sunmiPrinterService.printColumnsString(new String[]{"ENTRY MODE:" + PrintUtils.getInstance().getEntryType(payDetail.getCardType()), "EXPIRY DATE:" + PrintUtils.getInstance().getFormatExpDate(payDetail.getEXPDate())}, new int[]{2, 2}, new int[]{0, 2}, innerResultCallback);
if (payDetail.getTradeAnswerCode().equals(Constant.ANSWER_CODE_ACCEPT) || payDetail.getTradeAnswerCode().equals(Constant.ANSWER_CODE_APPROVED)) {
sunmiPrinterService.printColumnsString(new String[]{"CARD TYPE:" + cardType, "APPRCODE:" + payDetail.getApprovalCode()}, new int[]{2, 2}, new int[]{0, 2}, innerResultCallback);
sunmiPrinterService.printText("CARD TYPE : " + cardType + "\n", innerResultCallback);
// sunmiPrinterService.printText("APPROVAL CODE : " + cardType + "\n", innerResultCallback);
// sunmiPrinterService.printColumnsString(new String[]{"CARD TYPE:" + cardType, "APPRCODE:" + payDetail.getApprovalCode()}, new int[]{2, 2}, new int[]{0, 2}, innerResultCallback);
} else {
sunmiPrinterService.printColumnsString(new String[]{"CARD TYPE:" + cardType, ""}, new int[]{2, 2}, new int[]{0, 2}, innerResultCallback);
sunmiPrinterService.printText("CARD TYPE : " + cardType + "\n", innerResultCallback);
// sunmiPrinterService.printColumnsString(new String[]{"CARD TYPE:" + cardType, ""}, new int[]{2, 2}, new int[]{0, 2}, innerResultCallback);
}
if(payDetail.getAID() == null || payDetail.getAID().isEmpty()){
sunmiPrinterService.printColumnsString(new String[]{"AID", ":" + MPU_AID}, new int[]{1, 2}, new int[]{0, 0}, innerResultCallback);
sunmiPrinterService.printText("AID : " + MPU_AID + "\n", innerResultCallback);
// sunmiPrinterService.printColumnsString(new String[]{"AID", ":" + MPU_AID}, new int[]{1, 2}, new int[]{0, 0}, innerResultCallback);
} else {
sunmiPrinterService.printColumnsString(new String[]{"AID", ":" + payDetail.getAID()}, new int[]{1, 2}, new int[]{0, 0}, innerResultCallback);
sunmiPrinterService.printText("AID : " + payDetail.getAID() + "\n" , innerResultCallback);
// sunmiPrinterService.printColumnsString(new String[]{"AID", ":" + payDetail.getAID()}, new int[]{1, 2}, new int[]{0, 0}, innerResultCallback);
}
if (payDetail.getTradeAnswerCode().equals(Constant.ANSWER_CODE_ACCEPT) || payDetail.getTradeAnswerCode().equals(Constant.ANSWER_CODE_APPROVED)) {
sunmiPrinterService.printColumnsString(new String[]{"TXN ID", ":" + payDetail.getReferNo()}, new int[]{1, 2}, new int[]{0, 0}, innerResultCallback);
// sunmiPrinterService.printText("TXN ID : " + payDetail.getAID() + "\n" , innerResultCallback);
// sunmiPrinterService.printColumnsString(new String[]{"TXN ID", ":" + payDetail.getReferNo()}, new int[]{1, 2}, new int[]{0, 0}, innerResultCallback);
}
sunmiPrinterService.printColumnsString(new String[]{"REF NUM", ":" + payDetail.getReferNo()}, new int[]{1, 2}, new int[]{0, 0}, innerResultCallback);
sunmiPrinterService.printColumnsString(new String[]{"TRACE No", ":" + payDetail.getVoucherNo()}, new int[]{1, 2}, new int[]{0, 0}, innerResultCallback);
sunmiPrinterService.printText("REF NUM : " + payDetail.getReferNo() + "\n", innerResultCallback);
sunmiPrinterService.printText("TRACE NO : " + payDetail.getVoucherNo() + "\n", innerResultCallback);
// sunmiPrinterService.printColumnsString(new String[]{"REF NUM", ":" + payDetail.getReferNo()}, new int[]{1, 2}, new int[]{0, 0}, innerResultCallback);
// sunmiPrinterService.printColumnsString(new String[]{"TRACE No", ":" + payDetail.getVoucherNo()}, new int[]{1, 2}, new int[]{0, 0}, innerResultCallback);
if (payDetail.getTradeAnswerCode().equals("00") || payDetail.getTradeAnswerCode().equals("000")) {
if (payDetail.getTransactionType() == TransactionType.CASH_ADVANCE) {
@ -800,7 +815,6 @@ public abstract class BaseXPrint {
String merchantName = "";
String merchantAddress = "";
String merchantPhoneNo = "";
String terminalName = "";
List<String> wrappedAddressText = new ArrayList<>();
merchantName = SystemParamsOperation.getInstance().getMerchantName();
@ -825,14 +839,11 @@ public abstract class BaseXPrint {
merchantPhoneNo = "";
}
try {
sunmiPrinterService.sendRAWData(boldOn(), innerResultCallback);
sunmiPrinterService.setFontName(typeface_name, innerResultCallback);
sunmiPrinterService.setFontSize(22, innerResultCallback);
sunmiPrinterService.printText(receiptHeader + "\n", innerResultCallback);
// sunmiPrinterService.printTextWithFont(merchantName + "\n", "", 24, null);
sunmiPrinterService.sendRAWData(boldOff(), innerResultCallback);
sunmiPrinterService.setFontSize(textSize, innerResultCallback);
for (String addressLine : wrappedAddressText) {
@ -876,12 +887,8 @@ public abstract class BaseXPrint {
protected void printTransHeader(PayDetail payDetail) {
String invoiceNo = payDetail.getInvoiceNo().isEmpty()?SystemParamsOperation.getInstance().getCurrentInvoiceNum() : payDetail.getInvoiceNo();
String transType = payDetail.getTransType();
String batchNum = "";
String traceNum = payDetail.getVoucherNo();
// String traceNum = SystemParamsOperation.getInstance().getCurrentSerialNum();
batchNum = payDetail.getBatchNo();
String batchNum = payDetail.getBatchNo();
try {
sunmiPrinterService.setFontSize(20, innerResultCallback);
@ -894,26 +901,13 @@ public abstract class BaseXPrint {
} else if (payDetail.getTransType().equals(SUMMARY)) {
sunmiPrinterService.printColumnsString(new String[]{"HOST :" + HOST_NAME_MPU, ""}, new int[]{2, 1}, new int[]{0, 2}, innerResultCallback);
}
/* 17 Sept 2024 Yoma requested to changed slip design for QR*/
// sunmiPrinterService.printColumnsString(new String[]{"MID :" + payDetail.getMerchantNo(), ""}, new int[]{3, 1}, new int[]{0, 2}, innerResultCallback);
// sunmiPrinterService.printColumnsString(new String[]{"TID :" + payDetail.getTerminalNo(), ""}, new int[]{3, 1}, new int[]{0, 2}, innerResultCallback);
sunmiPrinterService.printText("MID :"+payDetail.getMerchantNo()+"\n",innerResultCallback);
sunmiPrinterService.printText("TID :"+payDetail.getTerminalNo()+"\n",innerResultCallback);
sunmiPrinterService.lineWrap(2, innerResultCallback);
sunmiPrinterService.sendRAWData(boldOn(), innerResultCallback);
sunmiPrinterService.setAlignment(1, innerResultCallback);
sunmiPrinterService.setFontSize(22, innerResultCallback);
// if(payDetail.transactionType == TransactionsType.WAVEPAY_REFUND.value) {
// sunmiPrinterService.printText("WAVEPAY (REFUND)" + "" + "\n", null);
// } else {
// sunmiPrinterService.printText(transType.replace("_", " ") + "" + "\n", null);
// }
sunmiPrinterService.printText(transType.replace("_", " ") + "" + "\n", null);
sunmiPrinterService.sendRAWData(boldOff(), innerResultCallback);
sunmiPrinterService.setFontSize(textSize, innerResultCallback);
if (!(payDetail.getQrTransStatus() != 1 && (payDetail.getTransactionType() == TransactionsType.WAVEPAY_REFUND.value || payDetail.getTransactionType() == TransactionsType.WAVEPAY.value))) {