Merge branch 'merge_latest_SIT' of https://hub.utsmyanmar.com/Kyaw_Min_Khant/KBZ-POS into merge_latest_SIT

This commit is contained in:
MooN 2025-12-10 14:48:44 +06:30
commit a1c0f55472
13 changed files with 242 additions and 123 deletions

View File

@ -27,6 +27,7 @@ public class ManagementViewModel extends ViewModel {
public SingleLiveEvent<String> processCodeText = new SingleLiveEvent<>(); public SingleLiveEvent<String> processCodeText = new SingleLiveEvent<>();
public SingleLiveEvent<PayDetail> payDetail = new SingleLiveEvent<>(); public SingleLiveEvent<PayDetail> payDetail = new SingleLiveEvent<>();
public SingleLiveEvent<List<PayDetail>> payDetails = new SingleLiveEvent<>();
public SingleLiveEvent<String> panErrorMsg = new SingleLiveEvent<>(); public SingleLiveEvent<String> panErrorMsg = new SingleLiveEvent<>();
@ -75,6 +76,10 @@ public class ManagementViewModel extends ViewModel {
return repository.getLastSettlement(voucherNo); return repository.getLastSettlement(voucherNo);
} }
public LiveData<List<PayDetail>> getLastSettlementQR(String voucherNo){
return repository.getLastSettlementQR(voucherNo);
}
public LiveData<List<PayDetail>> getLastTransaction(String voucherNo){ public LiveData<List<PayDetail>> getLastTransaction(String voucherNo){
return repository.getLastTransaction(voucherNo); return repository.getLastTransaction(voucherNo);
} }

View File

@ -72,6 +72,7 @@ public class SelectHostFragment extends DataBindingFragment implements DataBindi
} }
} }
checkQRButtonVisibility();
// try { // try {
// int result = MyApplication.getInstance().basicOptBinder.setScreenMode(1); // int result = MyApplication.getInstance().basicOptBinder.setScreenMode(1);
// } catch (RemoteException e) { // } catch (RemoteException e) {
@ -168,14 +169,16 @@ public class SelectHostFragment extends DataBindingFragment implements DataBindi
observerData(); observerData();
isReturnTransactions();
} }
private void isReturnTransactions() { private void checkQRButtonVisibility() {
if(sharedViewModel.getTransMenu().getValue() == TransMenu.VOID || sharedViewModel.getTransMenu().getValue() == TransMenu.PRE_AUTH_COMPLETE_VOID || sharedViewModel.getTransMenu().getValue() == TransMenu.REVERSAL || sharedViewModel.getTransMenu().getValue() == TransMenu.PRE_AUTH_FULL_VOID) { if(sharedViewModel.getTransMenu().getValue() == TransMenu.VOID || sharedViewModel.getTransMenu().getValue() == TransMenu.PRE_AUTH_COMPLETE_VOID || sharedViewModel.getTransMenu().getValue() == TransMenu.REVERSAL || sharedViewModel.getTransMenu().getValue() == TransMenu.PRE_AUTH_FULL_VOID || sharedViewModel.getTransMenu().getValue() == TransMenu.LAST_SETTLEMENT) {
sharedViewModel.qrPayVisibility.setValue(8); sharedViewModel.qrPayVisibility.setValue(8);
} else { } else {
sharedViewModel.qrPayVisibility.setValue(0); sharedViewModel.qrPayVisibility.setValue(0);
} }
} }
@ -268,6 +271,7 @@ public class SelectHostFragment extends DataBindingFragment implements DataBindi
public void onChanged(List<PayDetail> payDetails) { public void onChanged(List<PayDetail> payDetails) {
if (payDetails != null) { if (payDetails != null) {
if (!payDetails.isEmpty()) { if (!payDetails.isEmpty()) {
managementViewModel.payDetails.setValue(payDetails);
routeId = R.id.action_selectHostFragment_to_settlementTransactionFragment; routeId = R.id.action_selectHostFragment_to_settlementTransactionFragment;
} else { } else {
showSingleInfoDialog(getString(R.string.txt_no_trans_to_print)); showSingleInfoDialog(getString(R.string.txt_no_trans_to_print));
@ -283,6 +287,7 @@ public class SelectHostFragment extends DataBindingFragment implements DataBindi
}); });
} }
private void observeRoute() { private void observeRoute() {
switch (Objects.requireNonNull(sharedViewModel.getTransMenu().getValue())) { switch (Objects.requireNonNull(sharedViewModel.getTransMenu().getValue())) {
case REVERSAL: case REVERSAL:
@ -296,13 +301,14 @@ public class SelectHostFragment extends DataBindingFragment implements DataBindi
clearBatch(); clearBatch();
break; break;
case LAST_SETTLEMENT: case LAST_SETTLEMENT:
if(sharedViewModel.hostType.getValue() == HostType.MPU) observeLastSettlement();
observeLastSettlement(); // if(sharedViewModel.hostType.getValue() != HostType.QR) {
else { // observeLastSettlement();
showSingleInfoDialog(getString(R.string.txt_no_trans_to_print)); // } else {
routeId = R.id.action_selectHostFragment_to_nav_main; // showSingleInfoDialog(getString(R.string.txt_no_trans_to_print));
safeNavigateToRouteId(); // routeId = R.id.action_selectHostFragment_to_nav_main;
} // safeNavigateToRouteId();
// }
break; break;
case CLEAR_REVERSAL: case CLEAR_REVERSAL:
clearReversal(); clearReversal();

View File

@ -18,6 +18,7 @@ import com.utsmyanmar.paylibs.model.TradeData;
import com.utsmyanmar.paylibs.utils.POSUtil; import com.utsmyanmar.paylibs.utils.POSUtil;
import com.utsmyanmar.paylibs.utils.core_utils.SystemParamsOperation; import com.utsmyanmar.paylibs.utils.core_utils.SystemParamsOperation;
import com.utsmyanmar.paylibs.utils.enums.HostType; import com.utsmyanmar.paylibs.utils.enums.HostType;
import com.utsmyanmar.paylibs.utils.enums.TransMenu;
import com.utsmyanmar.paylibs.utils.iso_utils.TransactionsType; import com.utsmyanmar.paylibs.utils.iso_utils.TransactionsType;
import com.utsmyanmar.paylibs.utils.params.Params; import com.utsmyanmar.paylibs.utils.params.Params;
import com.utsmm.kbz.BR; import com.utsmm.kbz.BR;
@ -84,15 +85,31 @@ public class QRSettlementTransactionFragment extends DataBindingFragment impleme
sharedViewModel.merchantName.postValue("Default Value"); sharedViewModel.merchantName.postValue("Default Value");
} }
if(sharedViewModel.getTransMenu().getValue() == TransMenu.LAST_SETTLEMENT) {
setToolBarTitleWithBackIcon(getString(R.string.txt_subtitle_reprint_last_settle_report));
delayFunctionCall(this::observeQRLastSettlementTransactions);
} else {
setToolBarTitleWithBackIcon(getString(R.string.title_view_batch));
delayFunctionCall(this::observeQRTransactions);
}
showLoadingView(); showLoadingView();
setupQRSettlementData(); // setupQRSettlementData();
}
@Override
public void onPause() {
super.onPause();
} }
@Override @Override
public void onViewCreated(@NonNull View view, @Nullable Bundle savedInstanceState) { public void onViewCreated(@NonNull View view, @Nullable Bundle savedInstanceState) {
super.onViewCreated(view, savedInstanceState); super.onViewCreated(view, savedInstanceState);
setupBackButtonPressDetection(this); setupBackButtonPressDetection(this);
observeQRTransactions();
setupQRSettlementData();
} }
private void showLoadingView() { private void showLoadingView() {
@ -163,7 +180,52 @@ public class QRSettlementTransactionFragment extends DataBindingFragment impleme
}); });
} }
private void observeQRLastSettlementTransactions() {
List<PayDetail> payDetailList = managementViewModel.payDetails.getValue();
if( payDetailList != null) {
qrTransactionsList.clear();
count = 0;
totalAmount = 0;
for (PayDetail payDetail : payDetailList) {
// Filter for QR transactions only
if ((payDetail.getTransactionType() == TransactionsType.MMQR.value
|| payDetail.getTransactionType() == TransactionsType.MMQR_REFUND.value)
&& payDetail.getQrTransStatus() == 1
&& POSUtil.getInstance().getYesterdayDate().compareTo(POSUtil.getInstance().getDateByString(payDetail.transDate)) < 1) {
boolean isNeedMinusSign = payDetail.getTransactionType() == TransactionsType.MMQR_REFUND.value;
qrTransactionsList.add(payDetail);
count++;
if (isNeedMinusSign) {
totalAmount -= payDetail.getAmount();
} else {
totalAmount += payDetail.getAmount();
}
}
}
if (qrTransactionsList.isEmpty()) {
showEmptyDataView();
settlementViewModel.isNoData.setValue(true);
} else {
showDataView();
settlementViewModel.isNoData.setValue(false);
}
setupSettlementDisplayData();
} else {
showEmptyDataView();
settlementViewModel.isNoData.setValue(true);
}
}
private void setupSettlementDisplayData() { private void setupSettlementDisplayData() {
// Calculate QR sale and refund counts/amounts // Calculate QR sale and refund counts/amounts
int qrSaleCount = 0; int qrSaleCount = 0;
long qrSaleAmount = 0; long qrSaleAmount = 0;
@ -199,7 +261,11 @@ public class QRSettlementTransactionFragment extends DataBindingFragment impleme
payDetail.setAmount(totalAmount); payDetail.setAmount(totalAmount);
payDetail.setTradeAnswerCode("000"); payDetail.setTradeAnswerCode("000");
sharedViewModel.insertPayDetail(payDetail); if(sharedViewModel.getTransMenu().getValue() != TransMenu.LAST_SETTLEMENT) {
sharedViewModel.insertPayDetail(payDetail);
}
sharedViewModel.setAmount(String.valueOf(qrSaleAmount - qrRefundAmount)); sharedViewModel.setAmount(String.valueOf(qrSaleAmount - qrRefundAmount));
sharedViewModel.payDetail.setValue(payDetail); sharedViewModel.payDetail.setValue(payDetail);
@ -233,24 +299,40 @@ public class QRSettlementTransactionFragment extends DataBindingFragment impleme
popBackStack(); popBackStack();
} }
private void navigateToMain() {
routeId = R.id.action_QRSettlementTransactionFragment_to_nav_main;
safeNavigateToRouteId();
}
public class ClickEvent { public class ClickEvent {
public void onCancel() { public void onCancel() {
if (sharedViewModel.isEcr.getValue() != null && sharedViewModel.isEcr.getValue()) { if(sharedViewModel.getTransMenu().getValue() == TransMenu.SETTLEMENT) {
finishECRProcess(); if (sharedViewModel.isEcr.getValue() != null && sharedViewModel.isEcr.getValue()) {
finishECRProcess();
}
popBackStack();
} else if(sharedViewModel.getTransMenu().getValue() == TransMenu.LAST_SETTLEMENT) {
navigateToMain();
} }
popBackStack();
} }
public void onConfirm() { public void onConfirm() {
if (!qrTransactionsList.isEmpty()) { if(sharedViewModel.getTransMenu().getValue() == TransMenu.SETTLEMENT) {
for (PayDetail payDetail : qrTransactionsList) { if (!qrTransactionsList.isEmpty()) {
settlementViewModel.deletePayDetail(payDetail); for (PayDetail payDetail : qrTransactionsList) {
} settlementViewModel.deletePayDetail(payDetail);
}
updateData(); updateData();
navigateToResult(); navigateToResult();
}
} else if(sharedViewModel.getTransMenu().getValue() == TransMenu.LAST_SETTLEMENT) {
routeId = R.id.action_QRSettlementTransactionFragment_to_reprintReceiptFragment;
safeNavigateToRouteId();
} }
} }
} }
} }

View File

@ -322,6 +322,12 @@
app:popUpToInclusive="true" app:popUpToInclusive="true"
android:id="@+id/action_QRSettlementTransactionFragment_to_transactionResultFragment" android:id="@+id/action_QRSettlementTransactionFragment_to_transactionResultFragment"
app:destination="@id/transactionResultFragment" /> app:destination="@id/transactionResultFragment" />
<action
app:launchSingleTop="true"
app:popUpTo="@+id/mobile_navigation"
app:popUpToInclusive="true"
android:id="@+id/action_QRSettlementTransactionFragment_to_reprintReceiptFragment"
app:destination="@id/reprintReceiptFragment" />
</fragment> </fragment>
<fragment <fragment
android:id="@+id/transactionHistoryFragment" android:id="@+id/transactionHistoryFragment"
@ -786,6 +792,12 @@
app:popUpToInclusive="true" app:popUpToInclusive="true"
android:id="@+id/action_selectHostFragment_to_settlementTransactionFragment" android:id="@+id/action_selectHostFragment_to_settlementTransactionFragment"
app:destination="@id/settlementTransactionFragment" /> app:destination="@id/settlementTransactionFragment" />
<action
app:launchSingleTop="true"
app:popUpTo="@+id/selectHostFragment"
app:popUpToInclusive="true"
android:id="@+id/action_selectHostFragment_to_QRSettlementTransactionFragment"
app:destination="@id/QRSettlementTransactionFragment" />
<action <action
app:launchSingleTop="true" app:launchSingleTop="true"
app:popUpTo="@+id/selectHostFragment" app:popUpTo="@+id/selectHostFragment"

View File

@ -127,6 +127,9 @@ public interface PayDetailDao {
@Query("SELECT * FROM paydetail WHERE transactionType = 3 AND voucherNo <= :voucherNo") @Query("SELECT * FROM paydetail WHERE transactionType = 3 AND voucherNo <= :voucherNo")
LiveData<List<PayDetail>> getLastSettlement(String voucherNo); LiveData<List<PayDetail>> getLastSettlement(String voucherNo);
@Query("SELECT * FROM paydetail WHERE transactionType = 35 AND voucherNo <= :voucherNo")
LiveData<List<PayDetail>> getLastSettlementQR(String voucherNo);
// @Query("SELECT * FROM paydetail WHERE transactionType != 10 AND voucherNo <= :voucherNo") // @Query("SELECT * FROM paydetail WHERE transactionType != 10 AND voucherNo <= :voucherNo")
@Query("SELECT * FROM paydetail WHERE transactionType != 10 AND voucherNo IN(:voucherNo)") @Query("SELECT * FROM paydetail WHERE transactionType != 10 AND voucherNo IN(:voucherNo)")
LiveData<List<PayDetail>> getLastTransaction(String voucherNo); LiveData<List<PayDetail>> getLastTransaction(String voucherNo);

View File

@ -285,8 +285,8 @@ public class NetworkModule {
tmsAddress = getTMSUrlFromNative(); tmsAddress = getTMSUrlFromNative();
} }
// String baseUrl = tmsAddress.trim() + "/api/v1/"; String baseUrl = tmsAddress.trim() + "/api/v1/";
String baseUrl = tmsAddress.trim() + "/"; // String baseUrl = tmsAddress.trim() + "/";
final Gson gson = final Gson gson =
new GsonBuilder().create(); new GsonBuilder().create();

View File

@ -137,6 +137,7 @@ public class Repository {
public LiveData<List<PayDetail>> getTransactionHistory(){ return payDetailDao.getTransactionHistory();} public LiveData<List<PayDetail>> getTransactionHistory(){ return payDetailDao.getTransactionHistory();}
public LiveData<List<PayDetail>> getLastSettlement(String voucherNo) { return payDetailDao.getLastSettlement(voucherNo);} public LiveData<List<PayDetail>> getLastSettlement(String voucherNo) { return payDetailDao.getLastSettlement(voucherNo);}
public LiveData<List<PayDetail>> getLastSettlementQR(String voucherNo) { return payDetailDao.getLastSettlementQR(voucherNo);}
public LiveData<List<PayDetail>> getLastTransaction(String voucherNo) { return payDetailDao.getLastTransaction(voucherNo);} public LiveData<List<PayDetail>> getLastTransaction(String voucherNo) { return payDetailDao.getLastTransaction(voucherNo);}

Binary file not shown.

View File

@ -9,6 +9,8 @@ import android.os.Build;
import android.os.RemoteException; import android.os.RemoteException;
import android.text.TextUtils; import android.text.TextUtils;
import androidx.core.content.res.ResourcesCompat;
import com.nexgo.oaf.apiv3.SdkResult; import com.nexgo.oaf.apiv3.SdkResult;
import com.nexgo.oaf.apiv3.device.printer.AlignEnum; import com.nexgo.oaf.apiv3.device.printer.AlignEnum;
import com.nexgo.oaf.apiv3.device.printer.DotMatrixFontEnum; import com.nexgo.oaf.apiv3.device.printer.DotMatrixFontEnum;
@ -20,6 +22,7 @@ import com.sunmi.pay.hardware.aidl.AidlConstants;
import com.sunmi.peripheral.printer.InnerResultCallback; import com.sunmi.peripheral.printer.InnerResultCallback;
import com.utsmyanmar.paylibs.Constant; import com.utsmyanmar.paylibs.Constant;
import com.utsmyanmar.paylibs.PayLibsUtils; import com.utsmyanmar.paylibs.PayLibsUtils;
import com.utsmyanmar.paylibs.R;
import com.utsmyanmar.paylibs.model.MsgField; import com.utsmyanmar.paylibs.model.MsgField;
import com.utsmyanmar.paylibs.model.PayDetail; import com.utsmyanmar.paylibs.model.PayDetail;
import com.utsmyanmar.paylibs.model.SettleData; import com.utsmyanmar.paylibs.model.SettleData;
@ -77,8 +80,13 @@ public abstract class BaseXPrint {
protected final int FONT_SIZE_SMALL = 20; protected final int FONT_SIZE_SMALL = 20;
protected final int FONT_SIZE_NORMAL = 24; protected final int FONT_SIZE_NORMAL = 24;
protected final int FONT_SIZE_BIG = 24; protected final int FONT_SIZE_BIG = 24;
protected FontEntity fontSmall = new FontEntity(DotMatrixFontEnum.CH_SONG_20X20, DotMatrixFontEnum.ASC_SONG_8X16);
protected FontEntity fontNormal = new FontEntity(DotMatrixFontEnum.CH_SONG_24X24, DotMatrixFontEnum.ASC_SONG_12X24); protected int fontSmall = 20;
// protected FontEntity fontSmall = new FontEntity(DotMatrixFontEnum.CH_SONG_20X20, DotMatrixFontEnum.ASC_SONG_8X16);
protected int fontNormal = 25;
// 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);
@ -107,7 +115,9 @@ public abstract class BaseXPrint {
// LogUtil.d(TAG, Arrays.toString(returnText)); // LogUtil.d(TAG, Arrays.toString(returnText));
// printer.setTypeface(Typeface.DEFAULT); // printer.setTypeface(Typeface.DEFAULT);
Resources resources = PayLibsUtils.getInstance().context.getResources(); Resources resources = PayLibsUtils.getInstance().context.getResources();
printer.setTypeface(Typeface.createFromAsset(PayLibsUtils.getInstance().context.getAssets(), "consolas.ttf")); // Typeface typeface = ResourcesCompat.getFont(PayLibsUtils.getInstance().context, R.font.consolas);
// printer.setTypeface(typeface);
printer.setTypeface(Typeface.createFromAsset(PayLibsUtils.getInstance().context.getAssets(), "fonts/ubuntu_mono.ttf"));
printer.setGray(getGrayLevel()); printer.setGray(getGrayLevel());
} }
@ -144,7 +154,7 @@ public abstract class BaseXPrint {
protected void emptyLine(int no) { protected void emptyLine(int no) {
for (int i = 0; i < no; i++) { for (int i = 0; i < no; i++) {
printer.appendPrnStr("\n", fontNormal, AlignEnum.LEFT); printer.appendPrnStr("\n", fontNormal, AlignEnum.LEFT,false);
} }
@ -176,22 +186,22 @@ public abstract class BaseXPrint {
} }
protected void lineBreak() { protected void lineBreak() {
printer.appendPrnStr("******************************", fontNormal, AlignEnum.LEFT); printer.appendPrnStr("******************************", fontNormal, AlignEnum.LEFT,false);
} }
protected void dashBreak() { protected void dashBreak() {
printer.appendPrnStr("------------------------------", fontNormal, AlignEnum.LEFT); printer.appendPrnStr("------------------------------", fontNormal, AlignEnum.LEFT,false);
} }
protected void dashBreakEnding() { protected void dashBreakEnding() {
printer.appendPrnStr("--------X----------X----------", fontNormal, AlignEnum.LEFT); printer.appendPrnStr("--------X----------X----------", fontNormal, AlignEnum.LEFT,false);
} }
protected void breakingLine() { protected void breakingLine() {
printer.appendPrnStr("******************************", fontNormal, AlignEnum.LEFT); printer.appendPrnStr("******************************", fontNormal, AlignEnum.LEFT,false);
} }
@ -243,9 +253,9 @@ public abstract class BaseXPrint {
String receiptFooter = SystemParamsOperation.getInstance().getReceiptFooter(); String receiptFooter = SystemParamsOperation.getInstance().getReceiptFooter();
String finalVersion = SystemParamsOperation.getInstance().getFinalVersion(); String finalVersion = SystemParamsOperation.getInstance().getFinalVersion();
printer.appendPrnStr("***** MERCHANT COPY *****", fontNormal, AlignEnum.CENTER); printer.appendPrnStr("***** MERCHANT COPY *****", fontNormal, AlignEnum.CENTER,false);
printer.appendPrnStr(finalVersion, fontNormal, AlignEnum.CENTER); printer.appendPrnStr(finalVersion, fontNormal, AlignEnum.CENTER,false);
printer.appendPrnStr(receiptFooter, fontNormal, AlignEnum.CENTER); printer.appendPrnStr(receiptFooter, fontNormal, AlignEnum.CENTER,false);
} }
@ -296,7 +306,7 @@ public abstract class BaseXPrint {
if (payDetail.getTradeAnswerCode().equals("00") || payDetail.getTradeAnswerCode().equals("000")) { if (payDetail.getTradeAnswerCode().equals("00") || payDetail.getTradeAnswerCode().equals("000")) {
String currencySign = currencyCodeToText(payDetail.getCurrencyCode()); String currencySign = currencyCodeToText(payDetail.getCurrencyCode());
if (payDetail.getTransactionType() == TransactionType.BALANCE_INQUIRY) { if (payDetail.getTransactionType() == TransactionType.BALANCE_INQUIRY) {
printer.appendPrnStr("MMK " + PrintUtils.getInstance().getBalanceInquiryNumberFormat(payDetail.getAmount()), fontNormal, AlignEnum.LEFT); 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) { } else if (payDetail.getTransactionType() == TransactionType.VOID || payDetail.getTransactionType() == TransactionType.REFUND || payDetail.getTransactionType() == TransactionType.PRE_SALE_CANCEL || payDetail.getTransactionType() == TransactionType.PRE_SALE_COMPLETE_VOID) {
print2ColumnsStringNoSpace("TOTAL " + currencySign, "- " + PrintUtils.getInstance().getSeparatorNumberFormat(payDetail.getAmount())); print2ColumnsStringNoSpace("TOTAL " + currencySign, "- " + PrintUtils.getInstance().getSeparatorNumberFormat(payDetail.getAmount()));
@ -310,8 +320,8 @@ public abstract class BaseXPrint {
lineBreak(); lineBreak();
emptyLine(2); emptyLine(2);
printer.appendPrnStr("TRANSACTION FAIL", fontNormal, AlignEnum.CENTER); printer.appendPrnStr("TRANSACTION FAIL", fontNormal, AlignEnum.CENTER,true);
printer.appendPrnStr(BaseErrorCode.getCode(payDetail.getTradeAnswerCode()), fontNormal, AlignEnum.CENTER); printer.appendPrnStr(BaseErrorCode.getCode(payDetail.getTradeAnswerCode()), fontNormal, AlignEnum.CENTER,true);
emptyLine(2); emptyLine(2);
lineBreak(); lineBreak();
@ -370,33 +380,33 @@ public abstract class BaseXPrint {
batchNum = payDetail.getBatchNo(); batchNum = payDetail.getBatchNo();
printer.appendPrnStr("DATE :" + payDetail.getTransDate() + " TIME: " + payDetail.getTransTime(), fontNormal, AlignEnum.LEFT); printer.appendPrnStr("DATE :" + payDetail.getTransDate() + " TIME: " + payDetail.getTransTime(), fontNormal, AlignEnum.LEFT,false);
if (Objects.equals(payDetail.getAccountType(), CardScheme.MPU_CTLS.name)) { if (Objects.equals(payDetail.getAccountType(), CardScheme.MPU_CTLS.name)) {
hostName = HOST_NAME_MPU; hostName = HOST_NAME_MPU;
} else { } else {
hostName = HOST_NAME_VM; hostName = HOST_NAME_VM;
} }
printer.appendPrnStr("HOST:" + hostName, fontNormal, AlignEnum.LEFT); printer.appendPrnStr("HOST:" + hostName, fontNormal, AlignEnum.LEFT,false);
printer.appendPrnStr("TID :" + payDetail.getTerminalNo(), fontNormal, AlignEnum.LEFT); printer.appendPrnStr("TID :" + payDetail.getTerminalNo(), fontNormal, AlignEnum.LEFT,false);
printer.appendPrnStr("MID :" + payDetail.getMerchantNo(), fontNormal, AlignEnum.LEFT); printer.appendPrnStr("MID :" + payDetail.getMerchantNo(), fontNormal, AlignEnum.LEFT,false);
if (payDetail.getTransType().equals("SUMMARY_REPORT")) { if (payDetail.getTransType().equals("SUMMARY_REPORT")) {
printer.appendPrnStr("BATCH NO :" + batchNum, fontNormal, AlignEnum.LEFT); printer.appendPrnStr("BATCH NO :" + batchNum, fontNormal, AlignEnum.LEFT,false);
} else { } else {
// printer.printColumnsString(new String[]{"BATCH NO :" + batchNum, "INV NO: " + invoiceNo}, new int[]{2, 2}, new int[]{0, 2}, null); // printer.printColumnsString(new String[]{"BATCH NO :" + batchNum, "INV NO: " + invoiceNo}, new int[]{2, 2}, new int[]{0, 2}, null);
printer.appendPrnStr("BATCH NO :" + batchNum + " TRACE NO:" + traceNo, fontNormal, AlignEnum.LEFT); printer.appendPrnStr("BATCH NO :" + batchNum + " TRACE NO:" + traceNo, fontNormal, AlignEnum.LEFT,false);
} }
printer.appendPrnStr("\n", fontNormal, AlignEnum.LEFT); printer.appendPrnStr("\n", fontNormal, AlignEnum.LEFT,false);
printer.appendPrnStr("\n", fontNormal, AlignEnum.LEFT); printer.appendPrnStr("\n", fontNormal, AlignEnum.LEFT,false);
printer.appendPrnStr(transType.replace("_", " "), fontBold, AlignEnum.CENTER); printer.appendPrnStr(transType.replace("_", " "), fontNormal, AlignEnum.CENTER,true);
printer.appendPrnStr("\n", fontNormal, AlignEnum.LEFT); printer.appendPrnStr("\n", fontNormal, AlignEnum.LEFT,false);
printer.appendPrnStr("\n", fontNormal, AlignEnum.LEFT); printer.appendPrnStr("\n", fontNormal, AlignEnum.LEFT,false);
} }
@ -406,52 +416,52 @@ public abstract class BaseXPrint {
String schemeName = ""; String schemeName = "";
schemeName = payDetail.getAccountType() == null ? "" : payDetail.getAccountType(); schemeName = payDetail.getAccountType() == null ? "" : payDetail.getAccountType();
// printer.appendPrnStr("\n", fontNormal, AlignEnum.LEFT); // printer.appendPrnStr("\n", fontNormal, AlignEnum.LEFT,false);
printer.appendPrnStr(PrintUtils.getInstance().maskCardNumberPciDss(payDetail.getCardNo()), fontNormal, AlignEnum.LEFT); printer.appendPrnStr(PrintUtils.getInstance().maskCardNumberPciDss(payDetail.getCardNo()), fontNormal, AlignEnum.LEFT,false);
printer.appendPrnStr(PrintUtils.getInstance().getFormatExpDateWithSlash(payDetail.getEXPDate()), fontNormal, AlignEnum.LEFT); printer.appendPrnStr(PrintUtils.getInstance().getFormatExpDateWithSlash(payDetail.getEXPDate()), fontNormal, AlignEnum.LEFT,false);
printer.appendPrnStr(PrintUtils.getInstance().getEntryType(payDetail.getCardType()) + " ENTRY", fontNormal, AlignEnum.LEFT); printer.appendPrnStr(PrintUtils.getInstance().getEntryType(payDetail.getCardType()) + " ENTRY", fontNormal, AlignEnum.LEFT,false);
if (payDetail.getTradeAnswerCode().equals(Constant.ANSWER_CODE_APPROVED) || payDetail.getTradeAnswerCode().equals(Constant.ANSWER_CODE_ACCEPT)) { if (payDetail.getTradeAnswerCode().equals(Constant.ANSWER_CODE_APPROVED) || payDetail.getTradeAnswerCode().equals(Constant.ANSWER_CODE_ACCEPT)) {
printer.appendPrnStr("APPR CODE:" + payDetail.getApprovalCode(), fontNormal, AlignEnum.LEFT); printer.appendPrnStr("APPR CODE:" + payDetail.getApprovalCode(), fontNormal, AlignEnum.LEFT,false);
// manual entry or refund // manual entry or refund
if (payDetail.getCardType() == -1 || payDetail.getTransactionType() == TransactionsType.REFUND.value) { if (payDetail.getCardType() == -1 || payDetail.getTransactionType() == TransactionsType.REFUND.value) {
printer.appendPrnStr("RRN:" + payDetail.getReferNo(), fontNormal, AlignEnum.LEFT); printer.appendPrnStr("RRN:" + payDetail.getReferNo(), fontNormal, AlignEnum.LEFT,false);
} else { } else {
printer.appendPrnStr("RRN:" + payDetail.getReferNo() + " TVR:" + payDetail.getTVR(), fontNormal, AlignEnum.LEFT); printer.appendPrnStr("RRN:" + payDetail.getReferNo() + " TVR:" + payDetail.getTVR(), fontNormal, AlignEnum.LEFT,false);
printer.appendPrnStr("TSI :" + payDetail.getTSI(), fontNormal, AlignEnum.LEFT); printer.appendPrnStr("TSI :" + payDetail.getTSI(), fontNormal, AlignEnum.LEFT,false);
printer.appendPrnStr("TC :" + payDetail.getArqC(), fontNormal, AlignEnum.LEFT); printer.appendPrnStr("TC :" + payDetail.getArqC(), fontNormal, AlignEnum.LEFT,false);
} }
} else { } else {
printer.appendPrnStr("\n", fontNormal, AlignEnum.LEFT); printer.appendPrnStr("\n", fontNormal, AlignEnum.LEFT,false);
printer.appendPrnStr("TVR :" + payDetail.getTVR(), fontNormal, AlignEnum.LEFT); printer.appendPrnStr("TVR :" + payDetail.getTVR(), fontNormal, AlignEnum.LEFT,false);
} }
//actually we can remove //actually we can remove
if (payDetail.getCardType() != -1 || payDetail.getTransactionType() != TransactionsType.REFUND.value) { if (payDetail.getCardType() != -1 || payDetail.getTransactionType() != TransactionsType.REFUND.value) {
printer.appendPrnStr("AID :" + payDetail.getAID(), fontNormal, AlignEnum.LEFT); printer.appendPrnStr("AID :" + payDetail.getAID(), fontNormal, AlignEnum.LEFT,false);
printer.appendPrnStr("APP NAME :" + payDetail.getAppLabel(), fontNormal, AlignEnum.LEFT); printer.appendPrnStr("APP NAME :" + payDetail.getAppLabel(), fontNormal, AlignEnum.LEFT,false);
} }
printer.appendPrnStr("\n", fontNormal, AlignEnum.LEFT); printer.appendPrnStr("\n", fontNormal, AlignEnum.LEFT,false);
// check is pin change // check is pin change
if (payDetail.getTradeAnswerCode().equals("00") || payDetail.getTradeAnswerCode().equals("000")) { if (payDetail.getTradeAnswerCode().equals("00") || payDetail.getTradeAnswerCode().equals("000")) {
String currencySign = currencyCodeToText(payDetail.getCurrencyCode()); String currencySign = currencyCodeToText(payDetail.getCurrencyCode());
// CurrencyType currencySign = currencyTextToCurrencyType(payDetail.getCurrencyCode()); // CurrencyType currencySign = currencyTextToCurrencyType(payDetail.getCurrencyCode());
if (payDetail.getTransactionType() == TransactionType.BALANCE_INQUIRY) { if (payDetail.getTransactionType() == TransactionType.BALANCE_INQUIRY) {
printer.appendPrnStr("MMK " + PrintUtils.getInstance().getBalanceInquiryNumberFormat(payDetail.getAmount()), fontBold, AlignEnum.LEFT); printer.appendPrnStr("MMK " + PrintUtils.getInstance().getBalanceInquiryNumberFormat(payDetail.getAmount()), fontNormal, AlignEnum.LEFT,true);
} else { } else {
printer.appendPrnStr("TOTAL " + currencySign + " " + PrintUtils.getInstance().getSeparatorNumberFormat(payDetail.getAmount()), fontBold, AlignEnum.LEFT); printer.appendPrnStr("TOTAL " + currencySign + " " + PrintUtils.getInstance().getSeparatorNumberFormat(payDetail.getAmount()), fontNormal, AlignEnum.LEFT,true);
} }
} else { } else {
lineBreak(); lineBreak();
emptyLine(3); emptyLine(3);
printer.appendPrnStr(BaseErrorCode.getCode(payDetail.getTradeAnswerCode()), fontBold, AlignEnum.CENTER); printer.appendPrnStr(BaseErrorCode.getCode(payDetail.getTradeAnswerCode()), fontNormal, AlignEnum.CENTER,true);
emptyLine(3); emptyLine(3);
lineBreak(); lineBreak();
} }
@ -467,7 +477,7 @@ public abstract class BaseXPrint {
if (isNegative) { if (isNegative) {
amountString = "-" + amountString; amountString = "-" + amountString;
} }
printer.appendPrnStr(label + countStringFormat(count) + MMK + " " + PrintUtils.getInstance().getSeparatorNumberFormat(amount), fontNormal, AlignEnum.LEFT); printer.appendPrnStr(label + countStringFormat(count) + MMK + " " + PrintUtils.getInstance().getSeparatorNumberFormat(amount), fontNormal, AlignEnum.LEFT,false);
} }
} }
@ -484,20 +494,20 @@ public abstract class BaseXPrint {
if (settleData.getSaleCount() == 0 && settleData.getVoidSaleCount() == 0 && settleData.getWavePayCount() == 0 && settleData.getCashAdvanceCount() == 0) { if (settleData.getSaleCount() == 0 && settleData.getVoidSaleCount() == 0 && settleData.getWavePayCount() == 0 && settleData.getCashAdvanceCount() == 0) {
printErrorBlock("NO TRANSACTION FOUND"); printErrorBlock("NO TRANSACTION FOUND");
printer.appendPrnStr("\n", fontNormal, AlignEnum.LEFT); printer.appendPrnStr("\n", fontNormal, AlignEnum.LEFT,false);
return; return;
} }
if (payDetail.getAccountType().equals("WALLET")) { if (payDetail.getAccountType().equals("WALLET")) {
printer.appendPrnStr("PAYMENT NAME: QR", fontNormal, AlignEnum.LEFT); printer.appendPrnStr("PAYMENT NAME: QR", fontNormal, AlignEnum.LEFT,false);
} else { } else {
printer.appendPrnStr("CARD NAME:" + payDetail.getAccountType(), fontNormal, AlignEnum.LEFT); printer.appendPrnStr("CARD NAME:" + payDetail.getAccountType(), fontNormal, AlignEnum.LEFT,false);
} }
printer.appendPrnStr(" " + "COUNT " + " " + " TOTAL", fontNormal, AlignEnum.LEFT); 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)
printColumnString("SALES", settleData.getSaleCount(), settleData.getSaleAmount(), false); printColumnString("SALES", settleData.getSaleCount(), settleData.getSaleAmount(), false);
// printer.appendPrnStr("SALES "+ countStringFormat(settleData.getSaleCount())+MMK+" "+ PrintUtils.getInstance().getSeparatorNumberFormat(settleData.getSaleAmount()), fontNormal, AlignEnum.LEFT); // printer.appendPrnStr("SALES "+ countStringFormat(settleData.getSaleCount())+MMK+" "+ PrintUtils.getInstance().getSeparatorNumberFormat(settleData.getSaleAmount()), fontNormal, AlignEnum.LEFT,false);
if (settleData.getVoidSaleCount() > 0) if (settleData.getVoidSaleCount() > 0)
printColumnString("VOID SALES", settleData.getVoidSaleCount(), settleData.getVoidSaleAmount(), true); printColumnString("VOID SALES", settleData.getVoidSaleCount(), settleData.getVoidSaleAmount(), true);
if (settleData.getCashAdvanceCount() > 0) if (settleData.getCashAdvanceCount() > 0)
@ -520,14 +530,14 @@ public abstract class BaseXPrint {
printColumnString("TOTAL", totalCount, totalAmount, false); printColumnString("TOTAL", totalCount, totalAmount, false);
printer.appendPrnStr("\n", fontNormal, AlignEnum.LEFT); printer.appendPrnStr("\n", fontNormal, AlignEnum.LEFT,false);
printer.appendPrnStr("GRAND TOTAL", fontNormal, AlignEnum.LEFT); printer.appendPrnStr("GRAND TOTAL", fontNormal, AlignEnum.LEFT,false);
printer.appendPrnStr(" " + "COUNT " + " " + " TOTAL", fontNormal, AlignEnum.LEFT); 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)
printColumnString("SALES", settleData.getSaleCount(), settleData.getSaleAmount(), false); printColumnString("SALES", settleData.getSaleCount(), settleData.getSaleAmount(), false);
// printer.appendPrnStr("SALES "+ countStringFormat(settleData.getSaleCount())+MMK+" "+ PrintUtils.getInstance().getSeparatorNumberFormat(settleData.getSaleAmount()), fontNormal, AlignEnum.LEFT); // printer.appendPrnStr("SALES "+ countStringFormat(settleData.getSaleCount())+MMK+" "+ PrintUtils.getInstance().getSeparatorNumberFormat(settleData.getSaleAmount()), fontNormal, AlignEnum.LEFT,false);
if (settleData.getVoidSaleCount() > 0) if (settleData.getVoidSaleCount() > 0)
printColumnString("VOID SALES", settleData.getVoidSaleCount(), settleData.getVoidSaleAmount(), true); printColumnString("VOID SALES", settleData.getVoidSaleCount(), settleData.getVoidSaleAmount(), true);
if (settleData.getCashAdvanceCount() > 0) if (settleData.getCashAdvanceCount() > 0)
@ -549,8 +559,8 @@ public abstract class BaseXPrint {
dashBreak(); dashBreak();
printColumnString("TOTAL", totalCount, totalAmount, false); printColumnString("TOTAL", totalCount, totalAmount, false);
printer.appendPrnStr("\n", fontNormal, AlignEnum.LEFT); printer.appendPrnStr("\n", fontNormal, AlignEnum.LEFT,false);
printer.appendPrnStr("\n", fontNormal, AlignEnum.LEFT); printer.appendPrnStr("\n", fontNormal, AlignEnum.LEFT,false);
} }
@ -594,28 +604,28 @@ public abstract class BaseXPrint {
}*/ }*/
protected void printString(String text) { protected void printString(String text) {
printer.appendPrnStr(text, fontNormal, AlignEnum.LEFT); printer.appendPrnStr(text, fontNormal, AlignEnum.LEFT,false);
} }
protected void print2ColumnsString(String first, String second) { protected void print2ColumnsString(String first, String second) {
printer.appendPrnStr(first + " " + second, fontNormal, AlignEnum.LEFT); printer.appendPrnStr(first + " " + second, fontNormal, AlignEnum.LEFT,false);
} }
protected void print2ColumnsStringNoSpace(String first, String second) { protected void print2ColumnsStringNoSpace(String first, String second) {
printer.appendPrnStr(first + " " + second, fontNormal, AlignEnum.LEFT); printer.appendPrnStr(first + " " + second, fontNormal, AlignEnum.LEFT,false);
} }
protected void print2ColumnsStringBold(String first, String second) { protected void print2ColumnsStringBold(String first, String second) {
printer.appendPrnStr(first + " " + second, fontBold, AlignEnum.LEFT); printer.appendPrnStr(first + " " + second, fontNormal, AlignEnum.LEFT,true);
} }
protected void print2ColumnsStringBoldCenter(String first, String second) { protected void print2ColumnsStringBoldCenter(String first, String second) {
printer.appendPrnStr(first + " " + second, fontBold, AlignEnum.CENTER); printer.appendPrnStr(first + " " + second, fontNormal, AlignEnum.CENTER,true);
} }
protected void print3ColumnsString(String first, String second, String third) { protected void print3ColumnsString(String first, String second, String third) {
// printer.appendPrnStr(first + " " + second + " " + third, fontNormal, AlignEnum.LEFT); // printer.appendPrnStr(first + " " + second + " " + third, fontNormal, AlignEnum.LEFT,false);
printer.appendPrnStr(first + " " + second + " " + third, fontNormal, AlignEnum.LEFT); printer.appendPrnStr(first + " " + second + " " + third, fontNormal, AlignEnum.LEFT,false);
} }
protected void printTransDetailReport(List<PayDetail> lists, HostType hostType) { protected void printTransDetailReport(List<PayDetail> lists, HostType hostType) {
@ -767,7 +777,7 @@ public abstract class BaseXPrint {
addSignatureBitmap(payDetail); addSignatureBitmap(payDetail);
printer.appendPrnStr(cvmText, fontBold, AlignEnum.CENTER); printer.appendPrnStr(cvmText, fontNormal, AlignEnum.CENTER,true);
// if (payDetail.getIsFreeSign()) { // if (payDetail.getIsFreeSign()) {
@ -777,20 +787,20 @@ public abstract class BaseXPrint {
// } // }
emptyLine(1); emptyLine(1);
printer.appendPrnStr("I AGREE TO PAY THE ABOVE TOTAL AMOUNT", fontSmall, AlignEnum.CENTER); printer.appendPrnStr("I AGREE TO PAY THE ABOVE TOTAL AMOUNT", fontSmall, AlignEnum.CENTER,false);
if (isQR) { if (isQR) {
printer.appendPrnStr("ACCORDING TO THE ISSUER AGREEMENT", fontSmall, AlignEnum.CENTER); printer.appendPrnStr("ACCORDING TO THE ISSUER AGREEMENT", fontSmall, AlignEnum.CENTER,false);
} else { } else {
printer.appendPrnStr("ACCORDING TO THE CARD ISSUER AGREEMENT", fontSmall, AlignEnum.CENTER); printer.appendPrnStr("ACCORDING TO THE CARD ISSUER AGREEMENT", fontSmall, AlignEnum.CENTER,false);
} }
if (isMerchantCopy) { if (isMerchantCopy) {
printer.appendPrnStr("***** MERCHANT COPY *****", fontSmall, AlignEnum.CENTER); printer.appendPrnStr("***** MERCHANT COPY *****", fontSmall, AlignEnum.CENTER,false);
} else { } else {
printer.appendPrnStr("***** CUSTOMER COPY *****", fontSmall, AlignEnum.CENTER); printer.appendPrnStr("***** CUSTOMER COPY *****", fontSmall, AlignEnum.CENTER,false);
} }
printer.appendPrnStr(finalVersion, fontSmall, AlignEnum.CENTER); printer.appendPrnStr(finalVersion, fontSmall, AlignEnum.CENTER,false);
printer.appendPrnStr(receiptFooter, fontSmall, AlignEnum.CENTER); printer.appendPrnStr(receiptFooter, fontSmall, AlignEnum.CENTER,false);
} }
@ -854,10 +864,10 @@ public abstract class BaseXPrint {
} }
printer.appendPrnStr(receiptHeader, fontBold, AlignEnum.CENTER); printer.appendPrnStr(receiptHeader, fontNormal, AlignEnum.CENTER,false);
printer.appendPrnStr(merchantAddress, fontNormal, AlignEnum.CENTER); printer.appendPrnStr(merchantAddress, fontNormal, AlignEnum.CENTER,false);
printer.appendPrnStr(merchantAddress2, fontNormal, AlignEnum.CENTER); printer.appendPrnStr(merchantAddress2, fontNormal, AlignEnum.CENTER,false);
printer.appendPrnStr(merchantPhoneNo, fontNormal, AlignEnum.CENTER); printer.appendPrnStr(merchantPhoneNo, fontNormal, AlignEnum.CENTER,false);
emptyLine(2); emptyLine(2);
@ -871,11 +881,11 @@ public abstract class BaseXPrint {
String ksn = ByteUtil.bytes2HexStr(ksnData); String ksn = ByteUtil.bytes2HexStr(ksnData);
printer.appendPrnStr("<<< DUKPT Key Information >>>", fontBold, AlignEnum.CENTER); printer.appendPrnStr("<<< DUKPT Key Information >>>", fontNormal, AlignEnum.CENTER,true);
lineBreak(); lineBreak();
printer.appendPrnStr("Key Index (" + keyIndex + ")", fontNormal, AlignEnum.LEFT); printer.appendPrnStr("Key Index (" + keyIndex + ")", fontNormal, AlignEnum.LEFT,false);
printer.appendPrnStr("KSN :" + ksn, fontNormal, AlignEnum.LEFT); printer.appendPrnStr("KSN :" + ksn, fontNormal, AlignEnum.LEFT,false);
lineBreak(); lineBreak();
emptyLine(4); emptyLine(4);
@ -914,28 +924,28 @@ public abstract class BaseXPrint {
batchNum = payDetail.getBatchNo(); batchNum = payDetail.getBatchNo();
printer.appendPrnStr("DATE :" + payDetail.getTransDate() + " TIME:" + payDetail.getTransTime(), fontNormal, AlignEnum.LEFT); printer.appendPrnStr("DATE :" + payDetail.getTransDate() + " TIME:" + payDetail.getTransTime(), fontNormal, AlignEnum.LEFT,false);
if (payDetail.getTransactionType() == TransactionsType.MMQR.value && payDetail.getQrTransStatus() == 1) { if (payDetail.getTransactionType() == TransactionsType.MMQR.value && payDetail.getQrTransStatus() == 1) {
printer.appendPrnStr("TRACE NO:" + traceNum + " INV NO: " + invoiceNo, fontNormal, AlignEnum.LEFT); printer.appendPrnStr("TRACE NO:" + traceNum + " INV NO: " + invoiceNo, 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) { } 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); printer.appendPrnStr("BTH NO :" + batchNum + " INV NO: " + invoiceNo, fontNormal, AlignEnum.LEFT,false);
} else if (payDetail.getTransType().equals(SUMMARY)) { } else if (payDetail.getTransType().equals(SUMMARY)) {
printer.appendPrnStr("HOST :" + HOST_NAME_MPU + "", fontNormal, AlignEnum.LEFT); printer.appendPrnStr("HOST :" + HOST_NAME_MPU + "", fontNormal, AlignEnum.LEFT,false);
} }
/* 17 Sept 2024 Yoma requested to changed slip design for QR*/ /* 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[]{"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); // printer.printColumnsString(new String[]{"TID :" + payDetail.getTerminalNo(), ""}, new int[]{3, 1}, new int[]{0, 2}, innerResultCallback);
printer.appendPrnStr("MID :" + payDetail.getMerchantNo(), fontNormal, AlignEnum.LEFT); printer.appendPrnStr("MID :" + payDetail.getMerchantNo(), fontNormal, AlignEnum.LEFT,false);
printer.appendPrnStr("TID :" + payDetail.getTerminalNo(), fontNormal, AlignEnum.LEFT); printer.appendPrnStr("TID :" + payDetail.getTerminalNo(), fontNormal, AlignEnum.LEFT,false);
emptyLine(1); emptyLine(1);
printer.appendPrnStr(transType.replace("_", " "), fontBold, AlignEnum.CENTER); printer.appendPrnStr(transType.replace("_", " "),fontNormal, AlignEnum.CENTER,true);
if (!(payDetail.getQrTransStatus() != 1 && (payDetail.getTransactionType() == TransactionsType.MMQR_REFUND.value || payDetail.getTransactionType() == TransactionsType.MMQR.value))) { if (!(payDetail.getQrTransStatus() != 1 && (payDetail.getTransactionType() == TransactionsType.MMQR_REFUND.value || payDetail.getTransactionType() == TransactionsType.MMQR.value))) {
printer.appendPrnStr("\n", fontNormal, AlignEnum.LEFT); printer.appendPrnStr("\n", fontNormal, AlignEnum.LEFT,false);
printer.appendPrnStr("\n", fontNormal, AlignEnum.LEFT); printer.appendPrnStr("\n", fontNormal, AlignEnum.LEFT,false);
} }
} }

View File

@ -169,7 +169,7 @@ public class PrintXImpl extends BaseXPrint implements PrintX {
} else { } else {
String receiptFooter = SystemParamsOperation.getInstance().getReceiptFooter(); String receiptFooter = SystemParamsOperation.getInstance().getReceiptFooter();
emptyLine(1); emptyLine(1);
printer.appendPrnStr(receiptFooter, fontNormal, AlignEnum.CENTER); printer.appendPrnStr(receiptFooter, fontNormal, AlignEnum.CENTER,false);
} }
@ -270,8 +270,8 @@ public class PrintXImpl extends BaseXPrint implements PrintX {
printTransFooter(false,payDetail, isMerchantCopy); printTransFooter(false,payDetail, isMerchantCopy);
} else { } else {
String receiptFooter = SystemParamsOperation.getInstance().getReceiptFooter(); String receiptFooter = SystemParamsOperation.getInstance().getReceiptFooter();
printer.appendPrnStr("\n", fontNormal, AlignEnum.LEFT); printer.appendPrnStr("\n", fontNormal, AlignEnum.LEFT,false);
printer.appendPrnStr(receiptFooter, fontNormal, AlignEnum.CENTER); printer.appendPrnStr(receiptFooter, fontNormal, AlignEnum.CENTER,false);
} }
@ -294,8 +294,8 @@ public class PrintXImpl extends BaseXPrint implements PrintX {
printTransFooter(false,payDetail, isMerchantCopy); printTransFooter(false,payDetail, isMerchantCopy);
} else { } else {
String receiptFooter = SystemParamsOperation.getInstance().getReceiptFooter(); String receiptFooter = SystemParamsOperation.getInstance().getReceiptFooter();
printer.appendPrnStr("\n", fontNormal, AlignEnum.LEFT); printer.appendPrnStr("\n", fontNormal, AlignEnum.LEFT,false);
printer.appendPrnStr(receiptFooter, fontNormal, AlignEnum.CENTER); printer.appendPrnStr(receiptFooter, fontNormal, AlignEnum.CENTER,false);
} }
@ -359,31 +359,31 @@ public class PrintXImpl extends BaseXPrint implements PrintX {
} else { } else {
if(payDetail.getTransactionType() == TransactionsType.MMQR_REFUND.value) { if(payDetail.getTransactionType() == TransactionsType.MMQR_REFUND.value) {
printer.appendPrnStr("(TRANSACTION FAIL)", fontNormal, AlignEnum.CENTER); printer.appendPrnStr("(TRANSACTION FAIL)", fontNormal, AlignEnum.CENTER,false);
emptyLine(1); emptyLine(1);
printer.appendPrnStr(reformattedExceededString(payDetail.getTradeResultDes()), fontNormal, AlignEnum.CENTER); printer.appendPrnStr(reformattedExceededString(payDetail.getTradeResultDes()), fontNormal, AlignEnum.CENTER,false);
} else { } else {
printer.appendPrnStr("(TRANSACTION FAIL)", fontNormal, AlignEnum.CENTER); printer.appendPrnStr("(TRANSACTION FAIL)", fontNormal, AlignEnum.CENTER,false);
emptyLine(1); emptyLine(1);
if(payDetail.getQrTransStatus() == -1) { if(payDetail.getQrTransStatus() == -1) {
// printer.printText("TRANSACTION FAIL\nPAYMENT CREDIT FAILURE\n", null); // printer.printText("TRANSACTION FAIL\nPAYMENT CREDIT FAILURE\n", null);
printer.appendPrnStr(reformattedExceededString("PAYMENT CREDIT FAILURE"), fontNormal, AlignEnum.CENTER); printer.appendPrnStr(reformattedExceededString("PAYMENT CREDIT FAILURE"), fontNormal, AlignEnum.CENTER,false);
} else if(payDetail.getQrTransStatus() == 2) { } else if(payDetail.getQrTransStatus() == 2) {
if(POSUtil.getInstance().isCurrentDateTimePassed(payDetail.getTransDate(),payDetail.getTransTime())) { if(POSUtil.getInstance().isCurrentDateTimePassed(payDetail.getTransDate(),payDetail.getTransTime())) {
// printer.printText("TRANSACTION FAIL\nEXPIRE\n", null); // printer.printText("TRANSACTION FAIL\nEXPIRE\n", null);
printer.appendPrnStr(reformattedExceededString("EXPIRE"), fontNormal, AlignEnum.CENTER); printer.appendPrnStr(reformattedExceededString("EXPIRE"), fontNormal, AlignEnum.CENTER,false);
} else { } else {
printer.appendPrnStr(reformattedExceededString("PAYMENT CREDIT IN-PROGRESS"), fontNormal, AlignEnum.CENTER); printer.appendPrnStr(reformattedExceededString("PAYMENT CREDIT IN-PROGRESS"), fontNormal, AlignEnum.CENTER,false);
// printer.printText("TRANSACTION FAIL\nPAYMENT CREDIT IN-PROGRESS\n", null); // printer.printText("TRANSACTION FAIL\nPAYMENT CREDIT IN-PROGRESS\n", null);
} }
} else if(payDetail.getQrTransStatus() == 3) { } else if(payDetail.getQrTransStatus() == 3) {
printer.appendPrnStr(reformattedExceededString("COMMUNICATION ERROR"), fontNormal, AlignEnum.CENTER); printer.appendPrnStr(reformattedExceededString("COMMUNICATION ERROR"), fontNormal, AlignEnum.CENTER,false);
// printer.printText("COMMUNICATION ERROR\n", null); // printer.printText("COMMUNICATION ERROR\n", null);
} }
} }

View File

@ -42,8 +42,8 @@ public class SystemParamsSettings implements Serializable {
// private String tmsAddress = "https://tms.smile-mm.com"; // private String tmsAddress = "https://tms.smile-mm.com";
// private String tmsAddress = "http://128.199.170.203"; // private String tmsAddress = "http://128.199.170.203";
// private String tmsAddress = "http://sirius-nest.utsmyanmar.com"; private String tmsAddress = "http://sirius-nest.utsmyanmar.com";
private String tmsAddress = "https://api-tms-uat.kbzbank.com:8443/sirius"; // private String tmsAddress = "https://api-tms-uat.kbzbank.com:8443/sirius";
private String ereceiptAddress = "http://receipt-nest.utsmyanmar.com"; private String ereceiptAddress = "http://receipt-nest.utsmyanmar.com";
private String terminalCapability = "E0E8C8"; private String terminalCapability = "E0E8C8";

Binary file not shown.