QR Settlement is optimized and History was also resolved
This commit is contained in:
parent
ee037a1101
commit
c96d68ff2f
File diff suppressed because one or more lines are too long
@ -22,6 +22,7 @@ import com.denzcoskun.imageslider.constants.ScaleTypes;
|
|||||||
import com.denzcoskun.imageslider.models.SlideModel;
|
import com.denzcoskun.imageslider.models.SlideModel;
|
||||||
import com.pos.connection.bridge.binder.ECRConstant;
|
import com.pos.connection.bridge.binder.ECRConstant;
|
||||||
|
|
||||||
|
import com.utsmm.kbz.util.MockData;
|
||||||
import com.utsmyanmar.baselib.emv.EmvParamOperation;
|
import com.utsmyanmar.baselib.emv.EmvParamOperation;
|
||||||
import com.utsmyanmar.baselib.fragment.DataBindingFragment;
|
import com.utsmyanmar.baselib.fragment.DataBindingFragment;
|
||||||
|
|
||||||
@ -35,6 +36,7 @@ import com.utsmyanmar.ecr.data.ResultOf;
|
|||||||
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.TradeData;
|
||||||
import com.utsmyanmar.paylibs.print.PrintHelper;
|
import com.utsmyanmar.paylibs.print.PrintHelper;
|
||||||
import com.utsmyanmar.paylibs.print.printx.PrintXReceipt;
|
import com.utsmyanmar.paylibs.print.printx.PrintXReceipt;
|
||||||
import com.utsmyanmar.paylibs.utils.POSUtil;
|
import com.utsmyanmar.paylibs.utils.POSUtil;
|
||||||
@ -75,6 +77,7 @@ import javax.inject.Inject;
|
|||||||
import dagger.hilt.android.AndroidEntryPoint;
|
import dagger.hilt.android.AndroidEntryPoint;
|
||||||
|
|
||||||
import com.utsmyanmar.paylibs.utils.LogUtil;
|
import com.utsmyanmar.paylibs.utils.LogUtil;
|
||||||
|
import com.utsmyanmar.paylibs.utils.params.Params;
|
||||||
|
|
||||||
@AndroidEntryPoint
|
@AndroidEntryPoint
|
||||||
public class MainFragment extends DataBindingFragment {
|
public class MainFragment extends DataBindingFragment {
|
||||||
@ -123,9 +126,9 @@ public class MainFragment extends DataBindingFragment {
|
|||||||
setNavBarIconWithTitle(getResourceString(R.string.menu_dashboard));
|
setNavBarIconWithTitle(getResourceString(R.string.menu_dashboard));
|
||||||
|
|
||||||
// logcat is resetting cuz of this setup , because it is using serial port
|
// logcat is resetting cuz of this setup , because it is using serial port
|
||||||
if(SystemParamsOperation.getInstance().getECRStatus()){
|
// if(SystemParamsOperation.getInstance().getECRStatus()){
|
||||||
// setUpECR();
|
// setUpECR();
|
||||||
}
|
// }
|
||||||
|
|
||||||
sharedViewModel.isEcrFinished.postValue(true);
|
sharedViewModel.isEcrFinished.postValue(true);
|
||||||
sharedViewModel.isEcr.postValue(false);
|
sharedViewModel.isEcr.postValue(false);
|
||||||
@ -210,6 +213,8 @@ public class MainFragment extends DataBindingFragment {
|
|||||||
}
|
}
|
||||||
sharedViewModel.setManualEntryStatus(SystemParamsOperation.getInstance().getManualEntryStatus());
|
sharedViewModel.setManualEntryStatus(SystemParamsOperation.getInstance().getManualEntryStatus());
|
||||||
|
|
||||||
|
|
||||||
|
// generateMockQR();
|
||||||
}
|
}
|
||||||
|
|
||||||
/*
|
/*
|
||||||
@ -796,10 +801,10 @@ public class MainFragment extends DataBindingFragment {
|
|||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// private void generateMockPreAuth() {
|
// private void generateMockQR() {
|
||||||
// String transDate = "01/03/24";
|
// String transDate = "23/12/25";
|
||||||
// String transTime = "12:27:30";
|
// String transTime = "12:06:30";
|
||||||
// TradeData tradeData = MockData.getInstance().generateMockDataWithTime(TransactionsType.PRE_AUTH_SALE, AidlConstantsV2.CardType.IC.getValue(),transDate,transTime);
|
// TradeData tradeData = MockData.getInstance().generateMockDataWithTime(TransactionsType.MMQR, 1,transDate,transTime);
|
||||||
// PayDetail payDetail = tradeData.getPayDetail();
|
// PayDetail payDetail = tradeData.getPayDetail();
|
||||||
// sharedViewModel.insertPayDetail(payDetail);
|
// sharedViewModel.insertPayDetail(payDetail);
|
||||||
// LogUtil.d(TAG,"------------------- Inserted Mocked Data ------------------");
|
// LogUtil.d(TAG,"------------------- Inserted Mocked Data ------------------");
|
||||||
|
|||||||
@ -269,6 +269,8 @@ public class CardWaitingFragment extends DataBindingFragment implements DataBind
|
|||||||
cardReadViewModel.cardTypeData.postValue(cardType.value);
|
cardReadViewModel.cardTypeData.postValue(cardType.value);
|
||||||
cardReadViewModel.setCardTransactionType(CardTransactionType.EMV);
|
cardReadViewModel.setCardTransactionType(CardTransactionType.EMV);
|
||||||
}
|
}
|
||||||
|
// cardReadViewModel.cardTypeData.postValue(cardType.value);
|
||||||
|
// cardReadViewModel.setCardTransactionType(CardTransactionType.EMV);
|
||||||
}
|
}
|
||||||
delayFunctionCall(()->{
|
delayFunctionCall(()->{
|
||||||
routeId = R.id.action_cardWaitingFragment_to_processingCardFragment;
|
routeId = R.id.action_cardWaitingFragment_to_processingCardFragment;
|
||||||
|
|||||||
@ -163,17 +163,17 @@ public class TransactionResultFragment extends DataBindingFragment implements Da
|
|||||||
|
|
||||||
TransactionsType transactionType = sharedViewModel.transactionsType.getValue();
|
TransactionsType transactionType = sharedViewModel.transactionsType.getValue();
|
||||||
|
|
||||||
if (isNonApprovedTrade(payDetail) && isNonWavepayTransaction(transactionType)) {
|
if (isNonApprovedTrade(payDetail) && isNonQRPayTransaction(transactionType)) {
|
||||||
startPrintProcess(false);
|
startPrintProcess(false);
|
||||||
isCardInside();
|
isCardInside();
|
||||||
} else if (transactionType == TransactionsType.SETTLEMENT || transactionType == TransactionsType.MMQR_SETTLEMENT) {
|
} else if (transactionType == TransactionsType.SETTLEMENT || transactionType == TransactionsType.MMQR_SETTLEMENT) {
|
||||||
handleSettlementTransaction(siriusReq);
|
handleSettlementTransaction(siriusReq);
|
||||||
} else if (isWavePayNonSuccessTransaction(transactionType, payDetail)) {
|
} else if (isQRPayNonSuccessTransaction(transactionType, payDetail)) {
|
||||||
// startPrintProcess(false);
|
// startPrintProcess(false);
|
||||||
showDeclineDialog("QR Payment Failed!");
|
showDeclineDialog("QR Payment Failed!");
|
||||||
navigateToMainScreen();
|
navigateToMainScreen();
|
||||||
} else if (isWavePaySuccessTransaction(transactionType, payDetail)) {
|
} else if (isQRPaySuccessTransaction(transactionType, payDetail)) {
|
||||||
handleWavePaySuccessTransaction(payDetail, siriusReq);
|
handleQRPaySuccessTransaction(payDetail, siriusReq);
|
||||||
} else {
|
} else {
|
||||||
handleDefaultTransaction(payDetail, siriusReq);
|
handleDefaultTransaction(payDetail, siriusReq);
|
||||||
}
|
}
|
||||||
@ -187,19 +187,19 @@ public class TransactionResultFragment extends DataBindingFragment implements Da
|
|||||||
!payDetail.getTradeAnswerCode().equals(Constant.ANSWER_CODE_ACCEPT);
|
!payDetail.getTradeAnswerCode().equals(Constant.ANSWER_CODE_ACCEPT);
|
||||||
}
|
}
|
||||||
|
|
||||||
private boolean isNonWavepayTransaction(TransactionsType transactionType) {
|
private boolean isNonQRPayTransaction(TransactionsType transactionType) {
|
||||||
return transactionType != TransactionsType.MMQR &&
|
return transactionType != TransactionsType.MMQR &&
|
||||||
transactionType != TransactionsType.MMQR_INQUIRY_STATUS &&
|
transactionType != TransactionsType.MMQR_INQUIRY_STATUS &&
|
||||||
transactionType != TransactionsType.MMQR_REFUND;
|
transactionType != TransactionsType.MMQR_REFUND;
|
||||||
}
|
}
|
||||||
|
|
||||||
private boolean isWavePayNonSuccessTransaction(TransactionsType transactionType, PayDetail payDetail) {
|
private boolean isQRPayNonSuccessTransaction(TransactionsType transactionType, PayDetail payDetail) {
|
||||||
return (transactionType == TransactionsType.MMQR && payDetail.getQrTransStatus() != 1) ||
|
return (transactionType == TransactionsType.MMQR && payDetail.getQrTransStatus() != 1) ||
|
||||||
(transactionType == TransactionsType.MMQR_INQUIRY_STATUS && payDetail.getQrTransStatus() != 1) ||
|
(transactionType == TransactionsType.MMQR_INQUIRY_STATUS && payDetail.getQrTransStatus() != 1) ||
|
||||||
(transactionType == TransactionsType.MMQR_REFUND && payDetail.getQrTransStatus() != 1);
|
(transactionType == TransactionsType.MMQR_REFUND && payDetail.getQrTransStatus() != 1);
|
||||||
}
|
}
|
||||||
|
|
||||||
private boolean isWavePaySuccessTransaction(TransactionsType transactionType, PayDetail payDetail) {
|
private boolean isQRPaySuccessTransaction(TransactionsType transactionType, PayDetail payDetail) {
|
||||||
|
|
||||||
return (transactionType == TransactionsType.MMQR || transactionType == TransactionsType.MMQR_REFUND) &&
|
return (transactionType == TransactionsType.MMQR || transactionType == TransactionsType.MMQR_REFUND) &&
|
||||||
payDetail.getQrTransStatus() == 1;
|
payDetail.getQrTransStatus() == 1;
|
||||||
@ -212,7 +212,7 @@ public class TransactionResultFragment extends DataBindingFragment implements Da
|
|||||||
navigateToMainScreen();
|
navigateToMainScreen();
|
||||||
}
|
}
|
||||||
|
|
||||||
private void handleWavePaySuccessTransaction(PayDetail payDetail, SiriusRequest siriusReq) {
|
private void handleQRPaySuccessTransaction(PayDetail payDetail, SiriusRequest siriusReq) {
|
||||||
SystemParamsOperation.getInstance().setLastSuccessTrnx(payDetail.getVoucherNo());
|
SystemParamsOperation.getInstance().setLastSuccessTrnx(payDetail.getVoucherNo());
|
||||||
downloadParameters(siriusReq, TMSUpdate.CHECK);
|
downloadParameters(siriusReq, TMSUpdate.CHECK);
|
||||||
navigateToPrintScreen();
|
navigateToPrintScreen();
|
||||||
|
|||||||
@ -296,8 +296,8 @@ public class ReprintAnyTransactionFragment extends DataBindingFragment {
|
|||||||
// LogUtil.d(TAG,"Transaction settlement config : "+pay.isSettlementEnabled());
|
// LogUtil.d(TAG,"Transaction settlement config : "+pay.isSettlementEnabled());
|
||||||
// LogUtil.d(TAG,"Transaction batch : "+pay.getBatchNo());
|
// LogUtil.d(TAG,"Transaction batch : "+pay.getBatchNo());
|
||||||
// LogUtil.d(TAG,"Current batch : "+SystemParamsOperation.getInstance().getCurrentBatchNum());
|
// LogUtil.d(TAG,"Current batch : "+SystemParamsOperation.getInstance().getCurrentBatchNum());
|
||||||
//
|
|
||||||
// LogUtil.d(TAG,"----------------------------------------------------------");
|
LogUtil.d(TAG,"----------------------------------------------------------");
|
||||||
|
|
||||||
if(sharedViewModel.transactionsType.getValue() != null && sharedViewModel.transactionsType.getValue() == TransactionsType.MMQR_HISTORY) {
|
if(sharedViewModel.transactionsType.getValue() != null && sharedViewModel.transactionsType.getValue() == TransactionsType.MMQR_HISTORY) {
|
||||||
// Wave Inquiry Status::
|
// Wave Inquiry Status::
|
||||||
|
|||||||
@ -15,8 +15,10 @@ import com.utsmyanmar.baselib.util.DataBindingConfig;
|
|||||||
import com.utsmyanmar.paylibs.model.PayDetail;
|
import com.utsmyanmar.paylibs.model.PayDetail;
|
||||||
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.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.core_utils.SystemParamsSettings;
|
||||||
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.enums.TransMenu;
|
||||||
import com.utsmyanmar.paylibs.utils.iso_utils.TransactionsType;
|
import com.utsmyanmar.paylibs.utils.iso_utils.TransactionsType;
|
||||||
@ -33,16 +35,22 @@ import java.util.List;
|
|||||||
|
|
||||||
public class QRSettlementTransactionFragment extends DataBindingFragment implements DataBindingFragment.BackPressCallback {
|
public class QRSettlementTransactionFragment extends DataBindingFragment implements DataBindingFragment.BackPressCallback {
|
||||||
|
|
||||||
|
private static final String TAG = QRSettlementTransactionFragment.class.getSimpleName();
|
||||||
private SharedViewModel sharedViewModel;
|
private SharedViewModel sharedViewModel;
|
||||||
private ManagementViewModel managementViewModel;
|
private ManagementViewModel managementViewModel;
|
||||||
private SettlementViewModel settlementViewModel;
|
private SettlementViewModel settlementViewModel;
|
||||||
|
|
||||||
ArrayList<PayDetail> qrTransactionsList = new ArrayList<>();
|
ArrayList<PayDetail> qrTransactionsList = new ArrayList<>();
|
||||||
|
ArrayList<PayDetail> qrTransListAll = new ArrayList<>();
|
||||||
|
|
||||||
|
SettleData settleData;
|
||||||
|
|
||||||
private int routeId;
|
private int routeId;
|
||||||
private int count = 0;
|
private int count = 0;
|
||||||
private long totalAmount = 0;
|
private long totalAmount = 0;
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
protected void initViewModel() {
|
protected void initViewModel() {
|
||||||
|
|
||||||
@ -105,6 +113,7 @@ public class QRSettlementTransactionFragment extends DataBindingFragment impleme
|
|||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@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);
|
||||||
@ -143,6 +152,7 @@ public class QRSettlementTransactionFragment extends DataBindingFragment impleme
|
|||||||
managementViewModel.getTransactionHistory().observe(getViewLifecycleOwner(), payDetailList -> {
|
managementViewModel.getTransactionHistory().observe(getViewLifecycleOwner(), payDetailList -> {
|
||||||
if (payDetailList != null) {
|
if (payDetailList != null) {
|
||||||
qrTransactionsList.clear();
|
qrTransactionsList.clear();
|
||||||
|
qrTransListAll.clear();
|
||||||
count = 0;
|
count = 0;
|
||||||
totalAmount = 0;
|
totalAmount = 0;
|
||||||
|
|
||||||
@ -151,8 +161,7 @@ public class QRSettlementTransactionFragment extends DataBindingFragment impleme
|
|||||||
// Filter for QR transactions only
|
// Filter for QR transactions only
|
||||||
if ((payDetail.getTransactionType() == TransactionsType.MMQR.value
|
if ((payDetail.getTransactionType() == TransactionsType.MMQR.value
|
||||||
|| payDetail.getTransactionType() == TransactionsType.MMQR_REFUND.value)
|
|| payDetail.getTransactionType() == TransactionsType.MMQR_REFUND.value)
|
||||||
&& payDetail.getQrTransStatus() == 1
|
&& payDetail.getQrTransStatus() == 1) {
|
||||||
&& POSUtil.getInstance().getYesterdayDate().compareTo(POSUtil.getInstance().getDateByString(payDetail.transDate)) < 1) {
|
|
||||||
|
|
||||||
boolean isNeedMinusSign = payDetail.getTransactionType() == TransactionsType.MMQR_REFUND.value;
|
boolean isNeedMinusSign = payDetail.getTransactionType() == TransactionsType.MMQR_REFUND.value;
|
||||||
qrTransactionsList.add(payDetail);
|
qrTransactionsList.add(payDetail);
|
||||||
@ -163,10 +172,13 @@ public class QRSettlementTransactionFragment extends DataBindingFragment impleme
|
|||||||
totalAmount += payDetail.getAmount();
|
totalAmount += payDetail.getAmount();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
else if(payDetail.getTransactionType() == TransactionsType.MMQR.value || payDetail.getTransactionType() == TransactionsType.MMQR_REFUND.value) {
|
||||||
|
qrTransListAll.add(payDetail);
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
} catch (IllegalStateException e) {
|
} catch (IllegalStateException e) {
|
||||||
// Handle cursor window size exceeded error
|
LogUtil.e(TAG,"QRSettlement : Database cursor error - likely due to large data size:"+ e);
|
||||||
android.util.Log.e("QRSettlement", "Database cursor error - likely due to large data size", e);
|
|
||||||
showEmptyDataView();
|
showEmptyDataView();
|
||||||
settlementViewModel.isNoData.setValue(true);
|
settlementViewModel.isNoData.setValue(true);
|
||||||
return;
|
return;
|
||||||
@ -194,6 +206,7 @@ public class QRSettlementTransactionFragment extends DataBindingFragment impleme
|
|||||||
List<PayDetail> payDetailList = managementViewModel.payDetails.getValue();
|
List<PayDetail> payDetailList = managementViewModel.payDetails.getValue();
|
||||||
if( payDetailList != null) {
|
if( payDetailList != null) {
|
||||||
qrTransactionsList.clear();
|
qrTransactionsList.clear();
|
||||||
|
qrTransListAll.clear();
|
||||||
count = 0;
|
count = 0;
|
||||||
totalAmount = 0;
|
totalAmount = 0;
|
||||||
|
|
||||||
@ -216,8 +229,7 @@ public class QRSettlementTransactionFragment extends DataBindingFragment impleme
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
} catch (IllegalStateException e) {
|
} catch (IllegalStateException e) {
|
||||||
// Handle cursor window size exceeded error
|
LogUtil.e(TAG,"QRSettlement : Database cursor error in last settlement - likely due to large data size:"+ e);
|
||||||
android.util.Log.e("QRSettlement", "Database cursor error in last settlement - likely due to large data size", e);
|
|
||||||
showEmptyDataView();
|
showEmptyDataView();
|
||||||
settlementViewModel.isNoData.setValue(true);
|
settlementViewModel.isNoData.setValue(true);
|
||||||
return;
|
return;
|
||||||
@ -248,7 +260,8 @@ public class QRSettlementTransactionFragment extends DataBindingFragment impleme
|
|||||||
int qrRefundCount = 0;
|
int qrRefundCount = 0;
|
||||||
long qrRefundAmount = 0;
|
long qrRefundAmount = 0;
|
||||||
|
|
||||||
long totalAmount = 0;
|
totalAmount = 0;
|
||||||
|
|
||||||
|
|
||||||
for (PayDetail payDetail : qrTransactionsList) {
|
for (PayDetail payDetail : qrTransactionsList) {
|
||||||
if (payDetail.getTransactionType() == TransactionsType.MMQR.value) {
|
if (payDetail.getTransactionType() == TransactionsType.MMQR.value) {
|
||||||
@ -272,24 +285,8 @@ public class QRSettlementTransactionFragment extends DataBindingFragment impleme
|
|||||||
managementViewModel.trnxCountDR.setValue(String.valueOf(count));
|
managementViewModel.trnxCountDR.setValue(String.valueOf(count));
|
||||||
|
|
||||||
// Create settlement data for transaction result
|
// Create settlement data for transaction result
|
||||||
SettleData settleData = new SettleData(qrSaleCount, qrSaleAmount, 0, 0L, qrRefundCount, qrRefundAmount, 0, 0L);
|
settleData = new SettleData(qrSaleCount, qrSaleAmount, 0, 0L, qrRefundCount, qrRefundAmount, 0, 0L);
|
||||||
TradeData tradeData = Params.newTrade(false);
|
|
||||||
PayDetail payDetail = tradeData.getPayDetail();
|
|
||||||
payDetail.setSettleDataObj(settleData);
|
|
||||||
payDetail.setTransactionType(TransactionsType.MMQR_SETTLEMENT.value);
|
|
||||||
payDetail.setTransType(TransactionsType.MMQR_SETTLEMENT.name);
|
|
||||||
payDetail.setAmount(totalAmount);
|
|
||||||
payDetail.setTradeAnswerCode("000");
|
|
||||||
|
|
||||||
if(sharedViewModel.getTransMenu().getValue() != TransMenu.LAST_SETTLEMENT) {
|
|
||||||
sharedViewModel.insertPayDetail(payDetail);
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
sharedViewModel.setAmount(POSUtil.getInstance().getDecimalAmountSeparatorFormat(totalAmount));
|
|
||||||
|
|
||||||
sharedViewModel.payDetails.setValue(qrTransactionsList);
|
|
||||||
sharedViewModel.payDetail.setValue(payDetail);
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -307,6 +304,34 @@ public class QRSettlementTransactionFragment extends DataBindingFragment impleme
|
|||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private void processData() {
|
||||||
|
TradeData tradeData = Params.newTrade(false);
|
||||||
|
PayDetail payDetail = tradeData.getPayDetail();
|
||||||
|
payDetail.setSettleDataObj(settleData);
|
||||||
|
payDetail.setTransactionType(TransactionsType.MMQR_SETTLEMENT.value);
|
||||||
|
payDetail.setTransType(TransactionsType.MMQR_SETTLEMENT.name);
|
||||||
|
payDetail.setAmount(totalAmount);
|
||||||
|
payDetail.setTradeAnswerCode("000");
|
||||||
|
payDetail.setBatchNo(SystemParamsOperation.getInstance().getCurrentBatchNum());
|
||||||
|
|
||||||
|
if(sharedViewModel.getTransMenu().getValue() != TransMenu.LAST_SETTLEMENT) {
|
||||||
|
sharedViewModel.insertPayDetail(payDetail);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
sharedViewModel.setAmount(POSUtil.getInstance().getDecimalAmountSeparatorFormat(totalAmount));
|
||||||
|
|
||||||
|
sharedViewModel.payDetails.setValue(qrTransactionsList);
|
||||||
|
sharedViewModel.payDetail.setValue(payDetail);
|
||||||
|
|
||||||
|
for (PayDetail pay : qrTransactionsList) {
|
||||||
|
settlementViewModel.deletePayDetail(pay);
|
||||||
|
}
|
||||||
|
|
||||||
|
for (PayDetail pay : qrTransListAll) {
|
||||||
|
settlementViewModel.deletePayDetail(pay);
|
||||||
|
}
|
||||||
|
}
|
||||||
private void updateData() {
|
private void updateData() {
|
||||||
EReceiptRequest request = EReceiptUtil.getInstance().generateMPUReceipt(sharedViewModel.payDetail.getValue());
|
EReceiptRequest request = EReceiptUtil.getInstance().generateMPUReceipt(sharedViewModel.payDetail.getValue());
|
||||||
sharedViewModel.pushReceipt(request);
|
sharedViewModel.pushReceipt(request);
|
||||||
@ -343,11 +368,9 @@ public class QRSettlementTransactionFragment extends DataBindingFragment impleme
|
|||||||
if(sharedViewModel.getTransMenu().getValue() == TransMenu.SETTLEMENT) {
|
if(sharedViewModel.getTransMenu().getValue() == TransMenu.SETTLEMENT) {
|
||||||
if (!qrTransactionsList.isEmpty()) {
|
if (!qrTransactionsList.isEmpty()) {
|
||||||
|
|
||||||
for (PayDetail payDetail : qrTransactionsList) {
|
SystemParamsOperation.getInstance().getIncrementBatchNo();
|
||||||
settlementViewModel.deletePayDetail(payDetail);
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
|
processData();
|
||||||
|
|
||||||
updateData();
|
updateData();
|
||||||
navigateToResult();
|
navigateToResult();
|
||||||
|
|||||||
@ -7,6 +7,7 @@ import com.utsmyanmar.paylibs.model.ICCardInfo;
|
|||||||
import com.utsmyanmar.paylibs.model.MAGCardInfo;
|
import com.utsmyanmar.paylibs.model.MAGCardInfo;
|
||||||
import com.utsmyanmar.paylibs.model.PayDetail;
|
import com.utsmyanmar.paylibs.model.PayDetail;
|
||||||
import com.utsmyanmar.paylibs.model.TradeData;
|
import com.utsmyanmar.paylibs.model.TradeData;
|
||||||
|
import com.utsmyanmar.paylibs.model.enums.TransCVM;
|
||||||
import com.utsmyanmar.paylibs.system.SystemDateTime;
|
import com.utsmyanmar.paylibs.system.SystemDateTime;
|
||||||
import com.utsmyanmar.paylibs.utils.core_utils.SystemParamsOperation;
|
import com.utsmyanmar.paylibs.utils.core_utils.SystemParamsOperation;
|
||||||
import com.utsmyanmar.paylibs.utils.iso_utils.TransactionsType;
|
import com.utsmyanmar.paylibs.utils.iso_utils.TransactionsType;
|
||||||
@ -151,6 +152,7 @@ public class MockData {
|
|||||||
|
|
||||||
payDetail.setOriginalTransDate(SystemDateTime.getMMDD()+SystemDateTime.getYYYY());
|
payDetail.setOriginalTransDate(SystemDateTime.getMMDD()+SystemDateTime.getYYYY());
|
||||||
|
|
||||||
|
payDetail.setTransCVM(TransCVM.NO_CVM);
|
||||||
if(transType == TransactionsType.MMQR) {
|
if(transType == TransactionsType.MMQR) {
|
||||||
payDetail.setCardType(cardInputType);
|
payDetail.setCardType(cardInputType);
|
||||||
payDetail.setTransType(transType.name);
|
payDetail.setTransType(transType.name);
|
||||||
@ -158,7 +160,13 @@ public class MockData {
|
|||||||
payDetail.setCardHolderName(mockCardData.getCardHolderName());
|
payDetail.setCardHolderName(mockCardData.getCardHolderName());
|
||||||
payDetail.setAccountType(mockCardData.getCardScheme());
|
payDetail.setAccountType(mockCardData.getCardScheme());
|
||||||
payDetail.setCustomerMobile(mockCardData.getPhoneNo());
|
payDetail.setCustomerMobile(mockCardData.getPhoneNo());
|
||||||
|
payDetail.setCustomerMobile("kbzpay");
|
||||||
|
payDetail.setOriginalTransDate("2024-09-16 15:57:10");
|
||||||
|
payDetail.setQrTransId("12345678");
|
||||||
|
payDetail.setQrTransStatus(1);
|
||||||
|
payDetail.setQrReferNo("123456789012");
|
||||||
|
payDetail.setReferNo("123456789012");
|
||||||
|
payDetail.setApprovalCode("12345678");
|
||||||
} else {
|
} else {
|
||||||
|
|
||||||
payDetail.setCardType(cardInputType);
|
payDetail.setCardType(cardInputType);
|
||||||
@ -197,7 +205,7 @@ public class MockData {
|
|||||||
// payDetail.setTransDate(strTransDate);
|
// payDetail.setTransDate(strTransDate);
|
||||||
// payDetail.setTransTime(strTransTime);
|
// payDetail.setTransTime(strTransTime);
|
||||||
|
|
||||||
payDetail.setAmount(10000);
|
payDetail.setAmount(100000);
|
||||||
payDetail.setTransactionType(transType.value);
|
payDetail.setTransactionType(transType.value);
|
||||||
|
|
||||||
tradeData.setPayDetail(payDetail);
|
tradeData.setPayDetail(payDetail);
|
||||||
|
|||||||
@ -29,6 +29,7 @@ import com.utsmyanmar.checkxread.sdk.SunmiSDK;
|
|||||||
import com.utsmyanmar.paylibs.PayLibNex;
|
import com.utsmyanmar.paylibs.PayLibNex;
|
||||||
import com.utsmyanmar.paylibs.PayLibsUtils;
|
import com.utsmyanmar.paylibs.PayLibsUtils;
|
||||||
import com.utsmyanmar.paylibs.network.ISOSocket;
|
import com.utsmyanmar.paylibs.network.ISOSocket;
|
||||||
|
import com.utsmyanmar.paylibs.utils.LogUtil;
|
||||||
import com.utsmyanmar.paylibs.utils.core_utils.SystemParamsOperation;
|
import com.utsmyanmar.paylibs.utils.core_utils.SystemParamsOperation;
|
||||||
|
|
||||||
|
|
||||||
@ -101,21 +102,21 @@ public class BaseApplication extends Application {
|
|||||||
TerminalKeyUtil.initNexKey();
|
TerminalKeyUtil.initNexKey();
|
||||||
emvParamOperation.loadAidRids();
|
emvParamOperation.loadAidRids();
|
||||||
} catch (UnsatisfiedLinkError e) {
|
} catch (UnsatisfiedLinkError e) {
|
||||||
android.util.Log.e("BaseApplication", "Failed to initialize NexGo SDK due to missing native library: " + e.getMessage());
|
LogUtil.e("BaseApplication", "Failed to initialize NexGo SDK due to missing native library: " + e.getMessage());
|
||||||
|
|
||||||
} catch (Exception e) {
|
} catch (Exception e) {
|
||||||
android.util.Log.e("BaseApplication", "Failed to initialize NexGo SDK: " + e.getMessage());
|
LogUtil.e("BaseApplication", "Failed to initialize NexGo SDK: " + e.getMessage());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private void initFallbackMode() {
|
private void initFallbackMode() {
|
||||||
android.util.Log.w("BaseApplication", "Running in fallback mode without NexGo SDK");
|
LogUtil.w("BaseApplication", "Running in fallback mode without NexGo SDK");
|
||||||
try {
|
try {
|
||||||
if (emvParamOperation != null) {
|
if (emvParamOperation != null) {
|
||||||
emvParamOperation.loadAidRids();
|
emvParamOperation.loadAidRids();
|
||||||
}
|
}
|
||||||
} catch (Exception e) {
|
} catch (Exception e) {
|
||||||
android.util.Log.e("BaseApplication", "Failed to load EMV parameters in fallback mode: " + e.getMessage());
|
LogUtil.e("BaseApplication", "Failed to load EMV parameters in fallback mode: " + e.getMessage());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@ -36,6 +36,7 @@ import com.nexgo.oaf.apiv3.emv.EmvTransConfigurationEntity;
|
|||||||
import com.nexgo.oaf.apiv3.emv.OnEmvProcessListener2;
|
import com.nexgo.oaf.apiv3.emv.OnEmvProcessListener2;
|
||||||
import com.nexgo.oaf.apiv3.emv.PromptEnum;
|
import com.nexgo.oaf.apiv3.emv.PromptEnum;
|
||||||
import com.nexgo.oaf.apiv3.emv.UnionPayTransDataEntity;
|
import com.nexgo.oaf.apiv3.emv.UnionPayTransDataEntity;
|
||||||
|
import com.nexgo.oaf.apiv3.emv.VisaTransDataEntity;
|
||||||
import com.sunmi.pay.hardware.aidl.bean.CardInfo;
|
import com.sunmi.pay.hardware.aidl.bean.CardInfo;
|
||||||
import com.sunmi.pay.hardware.aidlv2.bean.EMVCandidateV2;
|
import com.sunmi.pay.hardware.aidlv2.bean.EMVCandidateV2;
|
||||||
import com.sunmi.pay.hardware.aidlv2.bean.PinPadDataV2;
|
import com.sunmi.pay.hardware.aidlv2.bean.PinPadDataV2;
|
||||||
@ -244,6 +245,7 @@ public abstract class EmvBaseViewModel extends BaseViewModel {
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
//for UPI
|
//for UPI
|
||||||
UnionPayTransDataEntity unionPayTransDataEntity = new UnionPayTransDataEntity();
|
UnionPayTransDataEntity unionPayTransDataEntity = new UnionPayTransDataEntity();
|
||||||
unionPayTransDataEntity.setQpbocForGlobal(true);
|
unionPayTransDataEntity.setQpbocForGlobal(true);
|
||||||
|
|||||||
@ -27,7 +27,11 @@ object ECRHelper {
|
|||||||
var onECRReceive: (bytes: ByteArray) -> Unit = { }
|
var onECRReceive: (bytes: ByteArray) -> Unit = { }
|
||||||
|
|
||||||
fun connect(bundle: Bundle) {
|
fun connect(bundle: Bundle) {
|
||||||
call { anyExecute(ecrService) { connect(bundle, ecrConnection) } }
|
call {
|
||||||
|
anyExecute(ecrService) {
|
||||||
|
connect(bundle, ecrConnection)
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
fun disconnect() {
|
fun disconnect() {
|
||||||
|
|||||||
@ -931,6 +931,12 @@ public abstract class BaseXPrint {
|
|||||||
|
|
||||||
LogUtil.d(TAG, "Start printing :" + retCode);
|
LogUtil.d(TAG, "Start printing :" + retCode);
|
||||||
|
|
||||||
|
if (retCode == 0) {
|
||||||
|
callbackStatus.onSuccess();
|
||||||
|
} else {
|
||||||
|
callbackStatus.onFailure();
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user