Merge branch 'merge_latest_SIT' of https://hub.utsmyanmar.com/Kyaw_Min_Khant/KBZ-POS into merge_latest_SIT
This commit is contained in:
commit
bd13d50848
@ -39,6 +39,7 @@ import com.utsmyanmar.paylibs.isobuilder.builderx.ISOMsgX;
|
|||||||
import com.utsmyanmar.paylibs.isobuilder.builderx.ISOVersion;
|
import com.utsmyanmar.paylibs.isobuilder.builderx.ISOVersion;
|
||||||
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.QRSettleData;
|
||||||
import com.utsmyanmar.paylibs.model.SettleData;
|
import com.utsmyanmar.paylibs.model.SettleData;
|
||||||
import com.utsmyanmar.paylibs.model.TradeData;
|
import com.utsmyanmar.paylibs.model.TradeData;
|
||||||
import com.utsmyanmar.paylibs.network.ISOCallback;
|
import com.utsmyanmar.paylibs.network.ISOCallback;
|
||||||
@ -388,7 +389,7 @@ public class AutoSettleService extends Service {
|
|||||||
payDetail.setAmount(totalAmount);
|
payDetail.setAmount(totalAmount);
|
||||||
payDetail.setTradeAnswerCode("000");
|
payDetail.setTradeAnswerCode("000");
|
||||||
payDetail.setBatchNo(SystemParamsOperation.getInstance().getCurrentBatchNum());
|
payDetail.setBatchNo(SystemParamsOperation.getInstance().getCurrentBatchNum());
|
||||||
|
payDetail.setQrSettleData(QRSettleData.convertFromPayDetail(qrTransactionsList));
|
||||||
// Insert QR settlement record
|
// Insert QR settlement record
|
||||||
repository.insertPayDetail(payDetail);
|
repository.insertPayDetail(payDetail);
|
||||||
|
|
||||||
@ -404,7 +405,7 @@ public class AutoSettleService extends Service {
|
|||||||
|
|
||||||
// Push e-receipt data using repository directly
|
// Push e-receipt data using repository directly
|
||||||
try {
|
try {
|
||||||
EReceiptRequest request = EReceiptUtil.getInstance().generateQRSettlement(payDetail, qrTransactionsList);
|
EReceiptRequest request = EReceiptUtil.getInstance().generateQRSettlement(payDetail, QRSettleData.convertFromPayDetail(qrTransactionsList));
|
||||||
sendEReceipt(request);
|
sendEReceipt(request);
|
||||||
LogUtil.d(TAG, "QR Settlement e-receipt data prepared and sent");
|
LogUtil.d(TAG, "QR Settlement e-receipt data prepared and sent");
|
||||||
} catch (Exception e) {
|
} catch (Exception e) {
|
||||||
|
|||||||
@ -17,6 +17,7 @@ import com.utsmyanmar.baselib.util.TerminalUtil;
|
|||||||
import com.utsmyanmar.ecr.data.TransType;
|
import com.utsmyanmar.ecr.data.TransType;
|
||||||
import com.utsmyanmar.ecr.data.model.Transactions;
|
import com.utsmyanmar.ecr.data.model.Transactions;
|
||||||
import com.utsmyanmar.paylibs.model.PayDetail;
|
import com.utsmyanmar.paylibs.model.PayDetail;
|
||||||
|
import com.utsmyanmar.paylibs.model.QRSettleData;
|
||||||
import com.utsmyanmar.paylibs.print.printx.PrintXReceipt;
|
import com.utsmyanmar.paylibs.print.printx.PrintXReceipt;
|
||||||
import com.utsmyanmar.paylibs.print.printx.PrintXStatus;
|
import com.utsmyanmar.paylibs.print.printx.PrintXStatus;
|
||||||
import com.utsmyanmar.paylibs.system.SingleLiveEvent;
|
import com.utsmyanmar.paylibs.system.SingleLiveEvent;
|
||||||
@ -418,7 +419,7 @@ public class SharedViewModel extends ViewModel {
|
|||||||
|
|
||||||
if(payDetail.getValue() == null && payDetails.getValue() == null) return;
|
if(payDetail.getValue() == null && payDetails.getValue() == null) return;
|
||||||
|
|
||||||
PrintXReceipt.getInstance().printQRSettlementReport(payDetail.getValue(),payDetails.getValue(), printXStatus);
|
PrintXReceipt.getInstance().printQRSettlementReport(payDetail.getValue(), QRSettleData.convertFromPayDetail(payDetails.getValue()), printXStatus);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@ -13,6 +13,7 @@ import com.utsmyanmar.baselib.fragment.DataBindingFragment;
|
|||||||
import com.utsmyanmar.baselib.util.DataBindingConfig;
|
import com.utsmyanmar.baselib.util.DataBindingConfig;
|
||||||
import com.utsmyanmar.baselib.util.DialogCallback;
|
import com.utsmyanmar.baselib.util.DialogCallback;
|
||||||
import com.utsmyanmar.paylibs.model.PayDetail;
|
import com.utsmyanmar.paylibs.model.PayDetail;
|
||||||
|
import com.utsmyanmar.paylibs.model.QRSettleData;
|
||||||
import com.utsmyanmar.paylibs.print.PrintHelper;
|
import com.utsmyanmar.paylibs.print.PrintHelper;
|
||||||
import com.utsmyanmar.paylibs.print.PrintReceipt;
|
import com.utsmyanmar.paylibs.print.PrintReceipt;
|
||||||
import com.utsmyanmar.paylibs.print.printx.PrintXReceipt;
|
import com.utsmyanmar.paylibs.print.printx.PrintXReceipt;
|
||||||
@ -26,6 +27,7 @@ import com.utsmm.kbz.ui.core_viewmodel.TransProcessViewModel;
|
|||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
||||||
import com.utsmyanmar.paylibs.utils.LogUtil;
|
import com.utsmyanmar.paylibs.utils.LogUtil;
|
||||||
|
import com.utsmyanmar.paylibs.utils.enums.HostType;
|
||||||
|
|
||||||
public class ReprintReceiptFragment extends DataBindingFragment {
|
public class ReprintReceiptFragment extends DataBindingFragment {
|
||||||
|
|
||||||
@ -108,7 +110,7 @@ public class ReprintReceiptFragment extends DataBindingFragment {
|
|||||||
private void updateUIPrintReceiptFailure(PayDetail payDetail) {
|
private void updateUIPrintReceiptFailure(PayDetail payDetail) {
|
||||||
sharedViewModel.printReceiptMsg.postValue(getString(R.string.txt_printing_settlement_report_failure));
|
sharedViewModel.printReceiptMsg.postValue(getString(R.string.txt_printing_settlement_report_failure));
|
||||||
sharedViewModel.reprintBtnLayout.postValue(0);
|
sharedViewModel.reprintBtnLayout.postValue(0);
|
||||||
ReprintReceiptFragment.this.payDetail = payDetail;
|
// ReprintReceiptFragment.this.payDetail = payDetail;
|
||||||
}
|
}
|
||||||
|
|
||||||
private void checkPaperExists(PayDetail payDetail) {
|
private void checkPaperExists(PayDetail payDetail) {
|
||||||
@ -142,42 +144,56 @@ public class ReprintReceiptFragment extends DataBindingFragment {
|
|||||||
}
|
}
|
||||||
|
|
||||||
private void observeLastSettlement() {
|
private void observeLastSettlement() {
|
||||||
managementViewModel.getLastSettlement(SystemParamsOperation.getInstance().getCurrentSerialNum()).observe(getViewLifecycleOwner(), new Observer<List<PayDetail>>() {
|
|
||||||
@Override
|
|
||||||
public void onChanged(List<PayDetail> payDetails) {
|
|
||||||
if (payDetails != null) {
|
|
||||||
if (payDetails.size() != 0) {
|
|
||||||
PayDetail payDetail = payDetails.get(payDetails.size() - 1);
|
|
||||||
payDetail.setTransType( payDetail.getTransType()+"(REPRINT)");
|
|
||||||
checkPaperExists(payDetail);
|
|
||||||
|
|
||||||
|
payDetail = sharedViewModel.payDetail.getValue();
|
||||||
} else {
|
payDetail.setTransType( payDetail.getTransType()+"(REPRINT)");
|
||||||
showSingleInfoDialog(getString(R.string.txt_no_trans_to_print));
|
checkPaperExists(payDetail);
|
||||||
navigateMainScreen();
|
// managementViewModel.payDetail.observe(getViewLifecycleOwner(), new Observer<PayDetail>() {
|
||||||
}
|
// @Override
|
||||||
|
// public void onChanged(PayDetail pay) {
|
||||||
}
|
// if (pay != null) {
|
||||||
}
|
//
|
||||||
});
|
// payDetail = pay;
|
||||||
|
//
|
||||||
|
//
|
||||||
|
//
|
||||||
|
//
|
||||||
|
//
|
||||||
|
// } else {
|
||||||
|
// showSingleInfoDialog(getString(R.string.txt_no_trans_to_print));
|
||||||
|
// navigateMainScreen();
|
||||||
|
// }
|
||||||
|
// }
|
||||||
|
// });
|
||||||
}
|
}
|
||||||
|
|
||||||
private void printReceipt(PayDetail payDetail) {
|
private void printReceipt(PayDetail payDetail) {
|
||||||
PrintXReceipt.getInstance().printSmileSettlementReport(payDetail, new PrintXStatus() {
|
|
||||||
@Override
|
|
||||||
public void onSuccess() {
|
|
||||||
delayFunctionCall(ReprintReceiptFragment.this::navigateMainScreen);
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
if(sharedViewModel.hostType.getValue() == HostType.QR) {
|
||||||
public void onFailure() {
|
|
||||||
updateUIPrintReceiptFailure(payDetail);
|
PrintXReceipt.getInstance().printQRSettlementReport(payDetail, payDetail.getQrSettleData(), printXStatus);
|
||||||
|
|
||||||
|
} else {
|
||||||
|
PrintXReceipt.getInstance().printSmileSettlementReport(payDetail, printXStatus);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
checkPaperExists(payDetail);
|
|
||||||
}
|
|
||||||
});
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private PrintXStatus printXStatus = new PrintXStatus() {
|
||||||
|
@Override
|
||||||
|
public void onSuccess() {
|
||||||
|
delayFunctionCall(ReprintReceiptFragment.this::navigateMainScreen);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void onFailure() {
|
||||||
|
updateUIPrintReceiptFailure(payDetail);
|
||||||
|
|
||||||
|
// checkPaperExists(payDetail);
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
|
|
||||||
@SuppressWarnings("ConstantConditions")
|
@SuppressWarnings("ConstantConditions")
|
||||||
private void navigateMainScreen() {
|
private void navigateMainScreen() {
|
||||||
|
|||||||
@ -174,7 +174,7 @@ public class SelectHostFragment extends DataBindingFragment implements DataBindi
|
|||||||
}
|
}
|
||||||
|
|
||||||
private void checkQRButtonVisibility() {
|
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 || sharedViewModel.getTransMenu().getValue() == TransMenu.LAST_SETTLEMENT) {
|
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.qrPayVisibility.setValue(8);
|
sharedViewModel.qrPayVisibility.setValue(8);
|
||||||
} else {
|
} else {
|
||||||
sharedViewModel.qrPayVisibility.setValue(0);
|
sharedViewModel.qrPayVisibility.setValue(0);
|
||||||
@ -272,7 +272,19 @@ public class SelectHostFragment extends DataBindingFragment implements DataBindi
|
|||||||
if (payDetails != null) {
|
if (payDetails != null) {
|
||||||
if (!payDetails.isEmpty()) {
|
if (!payDetails.isEmpty()) {
|
||||||
managementViewModel.payDetails.setValue(payDetails);
|
managementViewModel.payDetails.setValue(payDetails);
|
||||||
routeId = R.id.action_selectHostFragment_to_settlementTransactionFragment;
|
|
||||||
|
PayDetail payDetail = payDetails.get(payDetails.size() - 1);
|
||||||
|
|
||||||
|
if(sharedViewModel.hostType.getValue() == HostType.QR && payDetail.getTransactionType() == TransactionsType.MMQR_SETTLEMENT.value) {
|
||||||
|
routeId = R.id.action_selectHostFragment_to_QRSettlementTransactionFragment;
|
||||||
|
} else if(sharedViewModel.hostType.getValue() != HostType.MPU && payDetail.getTransactionType() == TransactionsType.SETTLEMENT.value) {
|
||||||
|
routeId = R.id.action_selectHostFragment_to_settlementTransactionFragment;
|
||||||
|
} else {
|
||||||
|
showSingleInfoDialog(getString(R.string.txt_no_trans_to_print));
|
||||||
|
routeId = R.id.action_selectHostFragment_to_nav_main;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
} else {
|
} else {
|
||||||
showSingleInfoDialog(getString(R.string.txt_no_trans_to_print));
|
showSingleInfoDialog(getString(R.string.txt_no_trans_to_print));
|
||||||
routeId = R.id.action_selectHostFragment_to_nav_main;
|
routeId = R.id.action_selectHostFragment_to_nav_main;
|
||||||
|
|||||||
@ -13,6 +13,7 @@ import com.utsmyanmar.baselib.fragment.DataBindingFragment;
|
|||||||
import com.utsmyanmar.baselib.network.model.e_receipt.EReceiptRequest;
|
import com.utsmyanmar.baselib.network.model.e_receipt.EReceiptRequest;
|
||||||
import com.utsmyanmar.baselib.util.DataBindingConfig;
|
import com.utsmyanmar.baselib.util.DataBindingConfig;
|
||||||
import com.utsmyanmar.paylibs.model.PayDetail;
|
import com.utsmyanmar.paylibs.model.PayDetail;
|
||||||
|
import com.utsmyanmar.paylibs.model.QRSettleData;
|
||||||
import com.utsmyanmar.paylibs.model.SettleData;
|
import com.utsmyanmar.paylibs.model.SettleData;
|
||||||
import com.utsmyanmar.paylibs.model.TradeData;
|
import com.utsmyanmar.paylibs.model.TradeData;
|
||||||
import com.utsmyanmar.paylibs.utils.LogUtil;
|
import com.utsmyanmar.paylibs.utils.LogUtil;
|
||||||
@ -205,43 +206,46 @@ public class QRSettlementTransactionFragment extends DataBindingFragment impleme
|
|||||||
private void observeQRLastSettlementTransactions() {
|
private void observeQRLastSettlementTransactions() {
|
||||||
List<PayDetail> payDetailList = managementViewModel.payDetails.getValue();
|
List<PayDetail> payDetailList = managementViewModel.payDetails.getValue();
|
||||||
if( payDetailList != null) {
|
if( payDetailList != null) {
|
||||||
qrTransactionsList.clear();
|
PayDetail payDetail = payDetailList.get(payDetailList.size() - 1);
|
||||||
qrTransListAll.clear();
|
|
||||||
|
int qrSaleCount = 0;
|
||||||
|
long qrSaleAmount = 0;
|
||||||
|
int qrRefundCount = 0;
|
||||||
|
long qrRefundAmount = 0;
|
||||||
|
|
||||||
count = 0;
|
count = 0;
|
||||||
totalAmount = 0;
|
totalAmount = 0;
|
||||||
|
|
||||||
try {
|
SettleData settleData = payDetail.getSettleDataObj();
|
||||||
for (PayDetail payDetail : payDetailList) {
|
qrSaleCount = settleData.getSaleCount();
|
||||||
// Filter for QR transactions only
|
qrSaleAmount = settleData.getSaleAmount();
|
||||||
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;
|
qrRefundAmount = settleData.getRefundAmount();
|
||||||
qrTransactionsList.add(payDetail);
|
qrRefundCount = settleData.getRefundCount();
|
||||||
count++;
|
|
||||||
if (isNeedMinusSign) {
|
|
||||||
totalAmount -= payDetail.getAmount();
|
|
||||||
} else {
|
|
||||||
totalAmount += payDetail.getAmount();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
} catch (IllegalStateException e) {
|
|
||||||
LogUtil.e(TAG,"QRSettlement : Database cursor error in last settlement - likely due to large data size:"+ e);
|
|
||||||
showEmptyDataView();
|
|
||||||
settlementViewModel.isNoData.setValue(true);
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (qrTransactionsList.isEmpty()) {
|
totalAmount = qrSaleAmount - qrRefundAmount;
|
||||||
showEmptyDataView();
|
count = qrSaleCount + qrRefundCount;
|
||||||
settlementViewModel.isNoData.setValue(true);
|
|
||||||
} else {
|
settlementViewModel.sale_count.setValue(qrSaleCount);
|
||||||
showDataView();
|
settlementViewModel.sale_amount.setValue(qrSaleAmount);
|
||||||
settlementViewModel.isNoData.setValue(false);
|
settlementViewModel.refund_count.setValue(qrRefundCount);
|
||||||
}
|
settlementViewModel.refund_amount.setValue(qrRefundAmount);
|
||||||
|
|
||||||
|
managementViewModel.totalAmountDR.setValue(totalAmount);
|
||||||
|
managementViewModel.trnxCountDR.setValue(String.valueOf(count));
|
||||||
|
|
||||||
|
sharedViewModel.setAmount(POSUtil.getInstance().getDecimalAmountSeparatorFormat(totalAmount));
|
||||||
|
sharedViewModel.payDetail.setValue(payDetail);
|
||||||
|
|
||||||
|
showDataView();
|
||||||
|
settlementViewModel.isNoData.setValue(false);
|
||||||
|
// if (qrTransactionsList.isEmpty()) {
|
||||||
|
// showEmptyDataView();
|
||||||
|
// settlementViewModel.isNoData.setValue(true);
|
||||||
|
// } else {
|
||||||
|
// showDataView();
|
||||||
|
// settlementViewModel.isNoData.setValue(false);
|
||||||
|
// }
|
||||||
|
|
||||||
} else {
|
} else {
|
||||||
showEmptyDataView();
|
showEmptyDataView();
|
||||||
@ -310,6 +314,7 @@ public class QRSettlementTransactionFragment extends DataBindingFragment impleme
|
|||||||
payDetail.setAmount(totalAmount);
|
payDetail.setAmount(totalAmount);
|
||||||
payDetail.setTradeAnswerCode("000");
|
payDetail.setTradeAnswerCode("000");
|
||||||
payDetail.setBatchNo(SystemParamsOperation.getInstance().getCurrentBatchNum());
|
payDetail.setBatchNo(SystemParamsOperation.getInstance().getCurrentBatchNum());
|
||||||
|
payDetail.setQrSettleData(QRSettleData.convertFromPayDetail(qrTransactionsList));
|
||||||
|
|
||||||
if(sharedViewModel.getTransMenu().getValue() != TransMenu.LAST_SETTLEMENT) {
|
if(sharedViewModel.getTransMenu().getValue() != TransMenu.LAST_SETTLEMENT) {
|
||||||
sharedViewModel.insertPayDetail(payDetail);
|
sharedViewModel.insertPayDetail(payDetail);
|
||||||
@ -331,7 +336,7 @@ public class QRSettlementTransactionFragment extends DataBindingFragment impleme
|
|||||||
}
|
}
|
||||||
private void updateData() {
|
private void updateData() {
|
||||||
// EReceiptRequest request = EReceiptUtil.getInstance().generateMPUReceipt(sharedViewModel.payDetail.getValue());
|
// EReceiptRequest request = EReceiptUtil.getInstance().generateMPUReceipt(sharedViewModel.payDetail.getValue());
|
||||||
EReceiptRequest request = EReceiptUtil.getInstance().generateQRSettlement(sharedViewModel.payDetail.getValue(), qrTransactionsList);
|
EReceiptRequest request = EReceiptUtil.getInstance().generateQRSettlement(sharedViewModel.payDetail.getValue(), QRSettleData.convertFromPayDetail(qrTransactionsList));
|
||||||
sharedViewModel.pushReceipt(request);
|
sharedViewModel.pushReceipt(request);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@ -8,6 +8,7 @@ import androidx.annotation.NonNull;
|
|||||||
import androidx.annotation.Nullable;
|
import androidx.annotation.Nullable;
|
||||||
import androidx.lifecycle.Observer;
|
import androidx.lifecycle.Observer;
|
||||||
|
|
||||||
|
import com.utsmm.kbz.ui.management.ManagementViewModel;
|
||||||
import com.utsmm.kbz.util.EReceiptUtil;
|
import com.utsmm.kbz.util.EReceiptUtil;
|
||||||
import com.utsmyanmar.baselib.fragment.DataBindingFragment;
|
import com.utsmyanmar.baselib.fragment.DataBindingFragment;
|
||||||
import com.utsmyanmar.baselib.network.model.e_receipt.EReceiptRequest;
|
import com.utsmyanmar.baselib.network.model.e_receipt.EReceiptRequest;
|
||||||
@ -39,6 +40,8 @@ public class SettlementTransactionFragment extends DataBindingFragment implement
|
|||||||
private SettlementViewModel settlementViewModel;
|
private SettlementViewModel settlementViewModel;
|
||||||
private SharedViewModel sharedViewModel;
|
private SharedViewModel sharedViewModel;
|
||||||
|
|
||||||
|
private ManagementViewModel managementViewModel;
|
||||||
|
|
||||||
private int routeId;
|
private int routeId;
|
||||||
|
|
||||||
int saleCount = 0;
|
int saleCount = 0;
|
||||||
@ -54,12 +57,14 @@ public class SettlementTransactionFragment extends DataBindingFragment implement
|
|||||||
protected void initViewModel() {
|
protected void initViewModel() {
|
||||||
settlementViewModel = getFragmentScopeViewModel(SettlementViewModel.class);
|
settlementViewModel = getFragmentScopeViewModel(SettlementViewModel.class);
|
||||||
sharedViewModel = getFragmentScopeViewModel(SharedViewModel.class);
|
sharedViewModel = getFragmentScopeViewModel(SharedViewModel.class);
|
||||||
|
managementViewModel = getFragmentScopeViewModel(ManagementViewModel.class);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
protected DataBindingConfig getDataBindingConfig() {
|
protected DataBindingConfig getDataBindingConfig() {
|
||||||
return new DataBindingConfig(R.layout.fragment_view_batch_screen, BR.settleViewModel,settlementViewModel)
|
return new DataBindingConfig(R.layout.fragment_view_batch_screen, BR.settleViewModel,settlementViewModel)
|
||||||
.addBindingParam(BR.sharedViewModel,sharedViewModel)
|
.addBindingParam(BR.sharedViewModel,sharedViewModel)
|
||||||
|
.addBindingParam(BR.managementViewModel,managementViewModel)
|
||||||
.addBindingParam(BR.click,new ClickEvent());
|
.addBindingParam(BR.click,new ClickEvent());
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -157,6 +162,9 @@ public class SettlementTransactionFragment extends DataBindingFragment implement
|
|||||||
setSettlementViewModelData(saleCount, saleAmount, preCount, preAmount, refundCount, refundAmount, caCount, caAmount);
|
setSettlementViewModelData(saleCount, saleAmount, preCount, preAmount, refundCount, refundAmount, caCount, caAmount);
|
||||||
settlementViewModel.setPayDetails(payDetails);
|
settlementViewModel.setPayDetails(payDetails);
|
||||||
|
|
||||||
|
managementViewModel.payDetail.setValue(payDetail);
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
} else {
|
} else {
|
||||||
|
|||||||
@ -6,6 +6,7 @@ import com.utsmm.kbz.util.tms.TMSUtil;
|
|||||||
import com.utsmyanmar.baselib.network.model.e_receipt.EReceiptRequest;
|
import com.utsmyanmar.baselib.network.model.e_receipt.EReceiptRequest;
|
||||||
import com.utsmyanmar.baselib.network.model.e_receipt.Transaction;
|
import com.utsmyanmar.baselib.network.model.e_receipt.Transaction;
|
||||||
import com.utsmyanmar.paylibs.model.PayDetail;
|
import com.utsmyanmar.paylibs.model.PayDetail;
|
||||||
|
import com.utsmyanmar.paylibs.model.QRSettleData;
|
||||||
import com.utsmyanmar.paylibs.model.SettleData;
|
import com.utsmyanmar.paylibs.model.SettleData;
|
||||||
import com.utsmyanmar.paylibs.system.BaseErrorCode;
|
import com.utsmyanmar.paylibs.system.BaseErrorCode;
|
||||||
import com.utsmyanmar.paylibs.utils.POSUtil;
|
import com.utsmyanmar.paylibs.utils.POSUtil;
|
||||||
@ -228,7 +229,7 @@ public class EReceiptUtil {
|
|||||||
return request;
|
return request;
|
||||||
}
|
}
|
||||||
|
|
||||||
public EReceiptRequest generateQRSettlement(PayDetail payDetail, List<PayDetail> transactions) {
|
public EReceiptRequest generateQRSettlement(PayDetail payDetail, List<QRSettleData> transactions) {
|
||||||
|
|
||||||
double realAmount = payDetail.getAmount() / 100.0;
|
double realAmount = payDetail.getAmount() / 100.0;
|
||||||
DecimalFormat df = new DecimalFormat("0.00");
|
DecimalFormat df = new DecimalFormat("0.00");
|
||||||
@ -278,25 +279,25 @@ public class EReceiptUtil {
|
|||||||
return request;
|
return request;
|
||||||
}
|
}
|
||||||
|
|
||||||
private static List<Transaction> buildTransactions(List<PayDetail> payDetails) {
|
private static List<Transaction> buildTransactions(List<QRSettleData> qrSettleData) {
|
||||||
List<Transaction> list = new ArrayList<>();
|
List<Transaction> list = new ArrayList<>();
|
||||||
|
|
||||||
|
|
||||||
for (PayDetail pay : payDetails) {
|
for (QRSettleData pay : qrSettleData) {
|
||||||
|
|
||||||
double realAmount = pay.getAmount() / 100.0;
|
double realAmount = pay.getAmount() / 100.0;
|
||||||
DecimalFormat df = new DecimalFormat("0.00");
|
DecimalFormat df = new DecimalFormat("0.00");
|
||||||
String amount = df.format(realAmount);
|
String amount = df.format(realAmount);
|
||||||
|
|
||||||
Transaction txn = new Transaction();
|
Transaction txn = new Transaction();
|
||||||
txn.setTran_id(pay.getQrTransId()); // or ref no
|
txn.setTran_id(pay.getTransId()); // or ref no
|
||||||
txn.setStatus(
|
txn.setStatus(
|
||||||
pay.getTransactionType() == TransactionsType.MMQR_REFUND.value
|
pay.getTransactionType() == TransactionsType.MMQR_REFUND.value
|
||||||
? "REFUND_SUCCESS"
|
? "REFUND_SUCCESS"
|
||||||
: "PAY_SUCCESS"
|
: "PAY_SUCCESS"
|
||||||
);
|
);
|
||||||
txn.setDate(pay.getTransDate()); // yyyyMMdd
|
txn.setDate(pay.getDate()); // yyyyMMdd
|
||||||
txn.setTime(pay.getTransTime()); // HHmmss
|
txn.setTime(pay.getTime()); // HHmmss
|
||||||
txn.setAmount(amount);
|
txn.setAmount(amount);
|
||||||
|
|
||||||
list.add(txn);
|
list.add(txn);
|
||||||
|
|||||||
@ -84,21 +84,11 @@
|
|||||||
|
|
||||||
</LinearLayout>
|
</LinearLayout>
|
||||||
|
|
||||||
<!-- Status Indicator -->
|
|
||||||
<TextView
|
|
||||||
android:layout_width="24dp"
|
|
||||||
android:layout_height="24dp"
|
|
||||||
android:text="✓"
|
|
||||||
android:textColor="@color/white"
|
|
||||||
android:textSize="16sp"
|
|
||||||
android:gravity="center"
|
|
||||||
android:alpha="0.8" />
|
|
||||||
|
|
||||||
</LinearLayout>
|
</LinearLayout>
|
||||||
|
|
||||||
</androidx.cardview.widget.CardView>
|
</androidx.cardview.widget.CardView>
|
||||||
|
|
||||||
<!-- Transaction Summary Area - EMPHASIZED FOR BETTER VISIBILITY -->
|
|
||||||
<TextView
|
<TextView
|
||||||
android:id="@+id/summaryTitle"
|
android:id="@+id/summaryTitle"
|
||||||
android:layout_width="wrap_content"
|
android:layout_width="wrap_content"
|
||||||
@ -212,11 +202,10 @@
|
|||||||
android:layout_width="wrap_content"
|
android:layout_width="wrap_content"
|
||||||
android:layout_height="wrap_content"
|
android:layout_height="wrap_content"
|
||||||
android:text="SETTLEMENT (REPRINT)"
|
android:text="SETTLEMENT (REPRINT)"
|
||||||
android:textColor="@color/white"
|
android:textColor="@color/black"
|
||||||
android:textSize="16sp"
|
android:textSize="16sp"
|
||||||
android:textStyle="bold"
|
android:textStyle="bold"
|
||||||
android:fontFamily="@font/rubik_medium"
|
android:fontFamily="@font/rubik_medium"
|
||||||
android:background="@color/colorPrimary"
|
|
||||||
android:paddingHorizontal="12dp"
|
android:paddingHorizontal="12dp"
|
||||||
android:paddingVertical="6dp" />
|
android:paddingVertical="6dp" />
|
||||||
|
|
||||||
@ -255,38 +244,6 @@
|
|||||||
|
|
||||||
</LinearLayout>
|
</LinearLayout>
|
||||||
|
|
||||||
<!-- Transaction ID Section -->
|
|
||||||
<LinearLayout
|
|
||||||
android:layout_width="match_parent"
|
|
||||||
android:layout_height="wrap_content"
|
|
||||||
android:orientation="horizontal"
|
|
||||||
android:gravity="center_vertical"
|
|
||||||
android:padding="16dp">
|
|
||||||
|
|
||||||
<TextView
|
|
||||||
android:layout_width="wrap_content"
|
|
||||||
android:layout_height="wrap_content"
|
|
||||||
android:text="Trans ID"
|
|
||||||
android:textColor="@android:color/darker_gray"
|
|
||||||
android:textSize="14sp"
|
|
||||||
android:fontFamily="@font/rubik_regular" />
|
|
||||||
|
|
||||||
<View
|
|
||||||
android:layout_width="0dp"
|
|
||||||
android:layout_height="1dp"
|
|
||||||
android:layout_weight="1" />
|
|
||||||
|
|
||||||
<TextView
|
|
||||||
android:layout_width="wrap_content"
|
|
||||||
android:layout_height="wrap_content"
|
|
||||||
android:text="000123"
|
|
||||||
android:textColor="@color/colorTextTitle"
|
|
||||||
android:textSize="14sp"
|
|
||||||
android:fontFamily="@font/rubik_medium"
|
|
||||||
android:fontFeatureSettings="mono"
|
|
||||||
tools:text="123456" />
|
|
||||||
|
|
||||||
</LinearLayout>
|
|
||||||
|
|
||||||
</LinearLayout>
|
</LinearLayout>
|
||||||
|
|
||||||
|
|||||||
@ -10,6 +10,9 @@
|
|||||||
<variable
|
<variable
|
||||||
name="sharedViewModel"
|
name="sharedViewModel"
|
||||||
type="com.utsmm.kbz.ui.core_viewmodel.SharedViewModel" />
|
type="com.utsmm.kbz.ui.core_viewmodel.SharedViewModel" />
|
||||||
|
<variable
|
||||||
|
name="managementViewModel"
|
||||||
|
type="com.utsmm.kbz.ui.management.ManagementViewModel" />
|
||||||
<variable
|
<variable
|
||||||
name="click"
|
name="click"
|
||||||
type="com.utsmm.kbz.ui.settlement.SettlementTransactionFragment.ClickEvent" />
|
type="com.utsmm.kbz.ui.settlement.SettlementTransactionFragment.ClickEvent" />
|
||||||
|
|||||||
@ -6,6 +6,7 @@ import androidx.room.RoomDatabase;
|
|||||||
import androidx.room.TypeConverters;
|
import androidx.room.TypeConverters;
|
||||||
|
|
||||||
import com.utsmyanmar.baselib.db.converter.CardSchemeConverter;
|
import com.utsmyanmar.baselib.db.converter.CardSchemeConverter;
|
||||||
|
import com.utsmyanmar.baselib.db.converter.QRSettleDataConverter;
|
||||||
import com.utsmyanmar.baselib.db.converter.SettleDataConverter;
|
import com.utsmyanmar.baselib.db.converter.SettleDataConverter;
|
||||||
import com.utsmyanmar.baselib.db.converter.TransCVMConverter;
|
import com.utsmyanmar.baselib.db.converter.TransCVMConverter;
|
||||||
import com.utsmyanmar.baselib.db.dao.BinDao;
|
import com.utsmyanmar.baselib.db.dao.BinDao;
|
||||||
@ -43,10 +44,10 @@ import com.utsmyanmar.paylibs.model.PayDetail;
|
|||||||
MPUCtlsEntity.class,
|
MPUCtlsEntity.class,
|
||||||
BinEntity.class
|
BinEntity.class
|
||||||
},
|
},
|
||||||
version = 11,
|
version = 12,
|
||||||
exportSchema = false
|
exportSchema = false
|
||||||
)
|
)
|
||||||
@TypeConverters({SettleDataConverter.class, TransCVMConverter.class, CardSchemeConverter.class})
|
@TypeConverters({SettleDataConverter.class, TransCVMConverter.class, CardSchemeConverter.class, QRSettleDataConverter.class})
|
||||||
public abstract class AppDatabase extends RoomDatabase {
|
public abstract class AppDatabase extends RoomDatabase {
|
||||||
|
|
||||||
public abstract PayDetailDao payDetailDao();
|
public abstract PayDetailDao payDetailDao();
|
||||||
|
|||||||
@ -0,0 +1,31 @@
|
|||||||
|
package com.utsmyanmar.baselib.db.converter;
|
||||||
|
|
||||||
|
import androidx.room.TypeConverter;
|
||||||
|
|
||||||
|
import com.google.gson.Gson;
|
||||||
|
import com.google.gson.reflect.TypeToken;
|
||||||
|
import com.utsmyanmar.paylibs.model.QRSettleData;
|
||||||
|
|
||||||
|
import java.lang.reflect.Type;
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
|
public class QRSettleDataConverter {
|
||||||
|
private static final Gson gson = new Gson();
|
||||||
|
|
||||||
|
@TypeConverter
|
||||||
|
public static List<QRSettleData> fromString(String value) {
|
||||||
|
if (value == null || value.isEmpty()) {
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
Type listType = new TypeToken<List<QRSettleData>>(){}.getType();
|
||||||
|
return gson.fromJson(value, listType);
|
||||||
|
}
|
||||||
|
|
||||||
|
@TypeConverter
|
||||||
|
public static String toString(List<QRSettleData> qrSettleDataList) {
|
||||||
|
if (qrSettleDataList == null) {
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
return gson.toJson(qrSettleDataList);
|
||||||
|
}
|
||||||
|
}
|
||||||
@ -124,7 +124,7 @@ public interface PayDetailDao {
|
|||||||
@Query(("SELECT * FROM paydetail WHERE transactionType = 3 AND voucherNo IN(:voucherNo)"))
|
@Query(("SELECT * FROM paydetail WHERE transactionType = 3 AND voucherNo IN(:voucherNo)"))
|
||||||
LiveData<PayDetail> checkLastSettlement(String voucherNo);
|
LiveData<PayDetail> checkLastSettlement(String voucherNo);
|
||||||
|
|
||||||
@Query("SELECT * FROM paydetail WHERE transactionType = 3 AND voucherNo <= :voucherNo")
|
@Query("SELECT * FROM paydetail WHERE transactionType = 3 OR transactionType = 35 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")
|
@Query("SELECT * FROM paydetail WHERE transactionType = 35 AND voucherNo <= :voucherNo")
|
||||||
|
|||||||
@ -307,6 +307,16 @@ public class DatabaseModule {
|
|||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
|
static final Migration MIGRATION_11_12 = new Migration(11, 12) {
|
||||||
|
@Override
|
||||||
|
public void migrate(SupportSQLiteDatabase database) {
|
||||||
|
|
||||||
|
database.execSQL("ALTER TABLE paydetail "
|
||||||
|
+ " ADD COLUMN qrSettleData TEXT");
|
||||||
|
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
|
|
||||||
@Provides
|
@Provides
|
||||||
@Singleton
|
@Singleton
|
||||||
@ -317,6 +327,7 @@ public class DatabaseModule {
|
|||||||
.addMigrations(MIGRATION_8_9)
|
.addMigrations(MIGRATION_8_9)
|
||||||
.addMigrations(MIGRATION_9_10)
|
.addMigrations(MIGRATION_9_10)
|
||||||
.addMigrations(MIGRATION_10_11)
|
.addMigrations(MIGRATION_10_11)
|
||||||
|
.addMigrations(MIGRATION_11_12)
|
||||||
.allowMainThreadQueries()
|
.allowMainThreadQueries()
|
||||||
.addCallback(new RoomDatabase.Callback() {
|
.addCallback(new RoomDatabase.Callback() {
|
||||||
@Override
|
@Override
|
||||||
|
|||||||
@ -10,6 +10,7 @@ import androidx.room.PrimaryKey;
|
|||||||
import com.utsmyanmar.paylibs.model.enums.TransCVM;
|
import com.utsmyanmar.paylibs.model.enums.TransCVM;
|
||||||
|
|
||||||
import java.io.Serializable;
|
import java.io.Serializable;
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
@SuppressWarnings("serial")
|
@SuppressWarnings("serial")
|
||||||
@Entity(tableName = "paydetail")
|
@Entity(tableName = "paydetail")
|
||||||
@ -161,6 +162,7 @@ public class PayDetail implements Serializable {
|
|||||||
public String transId = "";
|
public String transId = "";
|
||||||
public SettleData settleDataObj;
|
public SettleData settleDataObj;
|
||||||
public TransCVM transCVM;
|
public TransCVM transCVM;
|
||||||
|
public List<QRSettleData> qrSettleData;
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
@ -185,7 +187,7 @@ public class PayDetail implements Serializable {
|
|||||||
boolean isPrinted, boolean eSignIsUploaded, boolean isFreePWD, boolean isFreeSign, String tempKSN, String tempMerchantNo,
|
boolean isPrinted, boolean eSignIsUploaded, boolean isFreePWD, boolean isFreeSign, String tempKSN, String tempMerchantNo,
|
||||||
String tempMerchantName, String tempTerminalNo, long transNum, String customOrderNo, String approvalCode, boolean isSettle,
|
String tempMerchantName, String tempTerminalNo, long transNum, String customOrderNo, String approvalCode, boolean isSettle,
|
||||||
String settleData, String settleList, String otherCardNo, String tradeDateAndTime, String tradeDateTime, String hostName,
|
String settleData, String settleList, String otherCardNo, String tradeDateAndTime, String tradeDateTime, String hostName,
|
||||||
String transDate, String transTime, String invoiceNo, String transId, String qrReferNo, String customerMobile, SettleData settleDataObj,boolean isSettlementEnabled,TransCVM transCVM) {
|
String transDate, String transTime, String invoiceNo, String transId, String qrReferNo, String customerMobile, SettleData settleDataObj,boolean isSettlementEnabled,TransCVM transCVM,List<QRSettleData> qrSettleData) {
|
||||||
this.PID = PID;
|
this.PID = PID;
|
||||||
this.sendBag = sendBag;
|
this.sendBag = sendBag;
|
||||||
this.receiverBag = receiverBag;
|
this.receiverBag = receiverBag;
|
||||||
@ -299,6 +301,7 @@ public class PayDetail implements Serializable {
|
|||||||
this.customerMobile = customerMobile;
|
this.customerMobile = customerMobile;
|
||||||
this.settleDataObj = settleDataObj;
|
this.settleDataObj = settleDataObj;
|
||||||
this.isSettlementEnabled = isSettlementEnabled;
|
this.isSettlementEnabled = isSettlementEnabled;
|
||||||
|
this.qrSettleData = qrSettleData;
|
||||||
}
|
}
|
||||||
|
|
||||||
public boolean isSettle() {
|
public boolean isSettle() {
|
||||||
@ -1363,4 +1366,12 @@ public class PayDetail implements Serializable {
|
|||||||
this.currency = currency;
|
this.currency = currency;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public List<QRSettleData> getQrSettleData() {
|
||||||
|
return qrSettleData;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setQrSettleData(List<QRSettleData> qrSettleData) {
|
||||||
|
this.qrSettleData = qrSettleData;
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@ -0,0 +1,91 @@
|
|||||||
|
package com.utsmyanmar.paylibs.model;
|
||||||
|
|
||||||
|
import java.util.ArrayList;
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
|
public class QRSettleData {
|
||||||
|
|
||||||
|
private String transId;
|
||||||
|
private String date;
|
||||||
|
private String time;
|
||||||
|
private String status;
|
||||||
|
|
||||||
|
private long amount;
|
||||||
|
|
||||||
|
private int transactionType;
|
||||||
|
|
||||||
|
|
||||||
|
public QRSettleData() {}
|
||||||
|
public QRSettleData(String transId, String date, String time, String status, long amount,int transactionType) {
|
||||||
|
this.transId = transId;
|
||||||
|
this.date = date;
|
||||||
|
this.time = time;
|
||||||
|
this.status = status;
|
||||||
|
this.amount = amount;
|
||||||
|
this.transactionType = transactionType;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setTransId(String transId) {
|
||||||
|
this.transId = transId;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setDate(String date) {
|
||||||
|
this.date = date;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setTime(String time) {
|
||||||
|
this.time = time;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setStatus(String status) {
|
||||||
|
this.status = status;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setAmount(long amount) {
|
||||||
|
this.amount = amount;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setTransactionType(int transactionType) {
|
||||||
|
this.transactionType = transactionType;
|
||||||
|
}
|
||||||
|
|
||||||
|
public int getTransactionType() {
|
||||||
|
return transactionType;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
public String getTransId() {
|
||||||
|
return transId;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getDate() {
|
||||||
|
return date;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getTime() {
|
||||||
|
return time;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getStatus() {
|
||||||
|
return status;
|
||||||
|
}
|
||||||
|
|
||||||
|
public long getAmount() {
|
||||||
|
return amount;
|
||||||
|
}
|
||||||
|
|
||||||
|
public static List<QRSettleData> convertFromPayDetail(List<PayDetail> payDetails) {
|
||||||
|
List<QRSettleData> qrSettleDataList = new ArrayList<>();
|
||||||
|
for (PayDetail pay : payDetails) {
|
||||||
|
QRSettleData qrSettleData = new QRSettleData();
|
||||||
|
qrSettleData.setAmount(pay.getAmount());
|
||||||
|
qrSettleData.setTransId(pay.getQrTransId());
|
||||||
|
qrSettleData.setStatus(pay.getTC());
|
||||||
|
qrSettleData.setDate(pay.getTransDate());
|
||||||
|
qrSettleData.setTime(pay.getTransTime());
|
||||||
|
qrSettleData.setTransactionType(pay.getTransactionType());
|
||||||
|
qrSettleDataList.add(qrSettleData);
|
||||||
|
}
|
||||||
|
return qrSettleDataList;
|
||||||
|
}
|
||||||
|
}
|
||||||
@ -27,6 +27,7 @@ import com.utsmyanmar.paylibs.PayLibsUtils;
|
|||||||
import com.utsmyanmar.paylibs.R;
|
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.QRSettleData;
|
||||||
import com.utsmyanmar.paylibs.model.SettleData;
|
import com.utsmyanmar.paylibs.model.SettleData;
|
||||||
import com.utsmyanmar.paylibs.print.PrintUtils;
|
import com.utsmyanmar.paylibs.print.PrintUtils;
|
||||||
import com.utsmyanmar.paylibs.system.BaseErrorCode;
|
import com.utsmyanmar.paylibs.system.BaseErrorCode;
|
||||||
@ -732,19 +733,24 @@ public abstract class BaseXPrint {
|
|||||||
emptyLine(2);
|
emptyLine(2);
|
||||||
}
|
}
|
||||||
|
|
||||||
protected void printQRSettlementTransDetail(List<PayDetail> lists) {
|
protected void printQRSettlementTransDetail(List<QRSettleData> lists) {
|
||||||
|
|
||||||
|
|
||||||
long totalAmount = 0;
|
long totalAmount = 0;
|
||||||
long refundTotal = 0;
|
long refundTotal = 0;
|
||||||
|
|
||||||
for (PayDetail pay : lists) {
|
for (QRSettleData pay : lists) {
|
||||||
|
|
||||||
printString("Trans Id:" + pay.getQrTransId());
|
// printString("Trans Id:" + pay.getQrTransId());
|
||||||
printString("Status :" + pay.getTC());
|
// printString("Status :" + pay.getTC());
|
||||||
// printString("Date : " + PrintUtils.getInstance().formatTimestamp(Long.parseLong(pay.getTradeDateAndTime())));
|
//// printString("Date : " + PrintUtils.getInstance().formatTimestamp(Long.parseLong(pay.getTradeDateAndTime())));
|
||||||
printString("Date :" + pay.getTransDate());
|
// printString("Date :" + pay.getTransDate());
|
||||||
printString("Time :" + pay.getTransTime());
|
// printString("Time :" + pay.getTransTime());
|
||||||
|
|
||||||
|
printString("Trans Id:" + pay.getTransId());
|
||||||
|
printString("Status :" + pay.getStatus());
|
||||||
|
printString("Date :" + pay.getDate());
|
||||||
|
printString("Time :" + pay.getTime());
|
||||||
|
|
||||||
printString("Amount :" + "MMK " + PrintUtils.getInstance().getSeparatorOnlyNumberFormat(pay.getAmount()));
|
printString("Amount :" + "MMK " + PrintUtils.getInstance().getSeparatorOnlyNumberFormat(pay.getAmount()));
|
||||||
|
|
||||||
|
|||||||
@ -3,6 +3,7 @@ package com.utsmyanmar.paylibs.print.printx;
|
|||||||
import android.graphics.Bitmap;
|
import android.graphics.Bitmap;
|
||||||
|
|
||||||
import com.utsmyanmar.paylibs.model.PayDetail;
|
import com.utsmyanmar.paylibs.model.PayDetail;
|
||||||
|
import com.utsmyanmar.paylibs.model.QRSettleData;
|
||||||
import com.utsmyanmar.paylibs.utils.enums.HostType;
|
import com.utsmyanmar.paylibs.utils.enums.HostType;
|
||||||
|
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
@ -21,7 +22,7 @@ public interface PrintX {
|
|||||||
|
|
||||||
void printSmileSettlementReport(PayDetail payDetail,PrintXStatus printXStatus);
|
void printSmileSettlementReport(PayDetail payDetail,PrintXStatus printXStatus);
|
||||||
|
|
||||||
void printQRSettlementReport(PayDetail payDetail,List<PayDetail> list,PrintXStatus printXStatus);
|
void printQRSettlementReport(PayDetail payDetail, List<QRSettleData> list, PrintXStatus printXStatus);
|
||||||
|
|
||||||
void printDetailReport(PayDetail payDetail, List<PayDetail> lists, HostType hostType,PrintXStatus printXStatus);
|
void printDetailReport(PayDetail payDetail, List<PayDetail> lists, HostType hostType,PrintXStatus printXStatus);
|
||||||
|
|
||||||
|
|||||||
@ -14,6 +14,7 @@ import com.utsmyanmar.paylibs.isobuilder.builderx.ISOMsgX;
|
|||||||
import com.utsmyanmar.paylibs.isobuilder.builderx.ISOVersion;
|
import com.utsmyanmar.paylibs.isobuilder.builderx.ISOVersion;
|
||||||
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.QRSettleData;
|
||||||
import com.utsmyanmar.paylibs.print.PrintUtils;
|
import com.utsmyanmar.paylibs.print.PrintUtils;
|
||||||
import com.utsmyanmar.paylibs.utils.POSUtil;
|
import com.utsmyanmar.paylibs.utils.POSUtil;
|
||||||
import com.utsmyanmar.paylibs.utils.core_utils.ByteUtil;
|
import com.utsmyanmar.paylibs.utils.core_utils.ByteUtil;
|
||||||
@ -203,7 +204,7 @@ public class PrintXImpl extends BaseXPrint implements PrintX {
|
|||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void printQRSettlementReport(PayDetail payDetail, List<PayDetail> list, PrintXStatus printXStatus) {
|
public void printQRSettlementReport(PayDetail payDetail, List<QRSettleData> list, PrintXStatus printXStatus) {
|
||||||
this.callbackStatus = printXStatus;
|
this.callbackStatus = printXStatus;
|
||||||
|
|
||||||
try {
|
try {
|
||||||
|
|||||||
@ -3,6 +3,7 @@ package com.utsmyanmar.paylibs.print.printx;
|
|||||||
import android.graphics.Bitmap;
|
import android.graphics.Bitmap;
|
||||||
|
|
||||||
import com.utsmyanmar.paylibs.model.PayDetail;
|
import com.utsmyanmar.paylibs.model.PayDetail;
|
||||||
|
import com.utsmyanmar.paylibs.model.QRSettleData;
|
||||||
import com.utsmyanmar.paylibs.utils.enums.HostType;
|
import com.utsmyanmar.paylibs.utils.enums.HostType;
|
||||||
|
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
@ -35,7 +36,7 @@ public class PrintXReceipt {
|
|||||||
printX.printSmileSettlementReport(payDetail,printXStatus);
|
printX.printSmileSettlementReport(payDetail,printXStatus);
|
||||||
}
|
}
|
||||||
|
|
||||||
public void printQRSettlementReport(PayDetail payDetail,List<PayDetail> lists,PrintXStatus printXStatus) {
|
public void printQRSettlementReport(PayDetail payDetail, List<QRSettleData> lists, PrintXStatus printXStatus) {
|
||||||
printX.printQRSettlementReport(payDetail,lists,printXStatus);
|
printX.printQRSettlementReport(payDetail,lists,printXStatus);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user