seperated QR and Card Latest Transaction Records

This commit is contained in:
MooN 2026-02-09 21:53:41 +06:30
parent e873606e4c
commit 7b8728da8f
3 changed files with 72 additions and 33 deletions

View File

@ -27,6 +27,8 @@ import java.util.List;
import com.utsmyanmar.paylibs.utils.LogUtil; import com.utsmyanmar.paylibs.utils.LogUtil;
import com.utsmyanmar.paylibs.utils.enums.HostType; import com.utsmyanmar.paylibs.utils.enums.HostType;
import com.utsmyanmar.paylibs.utils.iso_utils.TransactionsType;
import com.utsmyanmar.paylibs.utils.POSUtil;
public class ReprintReceiptFragment extends DataBindingFragment { public class ReprintReceiptFragment extends DataBindingFragment {
@ -150,6 +152,8 @@ public class ReprintReceiptFragment extends DataBindingFragment {
navigateMainScreen(); navigateMainScreen();
return; return;
} }
sharedViewModel.totalAmount.postValue(payDetail.getAmount());
sharedViewModel.setAmount(POSUtil.getInstance().getDecimalAmountSeparatorFormat(payDetail.getAmount()));
String transType = payDetail.getTransType(); String transType = payDetail.getTransType();
if (transType == null) { if (transType == null) {
transType = ""; transType = "";
@ -177,7 +181,7 @@ public class ReprintReceiptFragment extends DataBindingFragment {
private void printReceipt(PayDetail payDetail) { private void printReceipt(PayDetail payDetail) {
if(sharedViewModel.hostType.getValue() == HostType.QR) { if (payDetail.getTransactionType() == TransactionsType.MMQR_SETTLEMENT.value) {
PrintXReceipt.getInstance().printQRSettlementReport(payDetail, payDetail.getQrSettleData(), printXStatus); PrintXReceipt.getInstance().printQRSettlementReport(payDetail, payDetail.getQrSettleData(), printXStatus);

View File

@ -265,38 +265,59 @@ public class SelectHostFragment extends DataBindingFragment implements DataBindi
}); });
} }
private PayDetail findLastByType(List<PayDetail> payDetails, int transactionType) {
if (payDetails == null) {
return null;
}
for (int i = payDetails.size() - 1; i >= 0; i--) {
PayDetail payDetail = payDetails.get(i);
if (payDetail != null && payDetail.getTransactionType() == transactionType) {
return payDetail;
}
}
return null;
}
private void observeLastSettlement() { private void observeLastSettlement() {
managementViewModel.getLastSettlement(SystemParamsOperation.getInstance().getCurrentSerialNum()).observe(getViewLifecycleOwner(), new Observer<List<PayDetail>>() { HostType hostType = sharedViewModel.hostType.getValue();
@Override if (hostType == HostType.QR) {
public void onChanged(List<PayDetail> payDetails) { managementViewModel.getLastSettlementQR(SystemParamsOperation.getInstance().getCurrentSerialNum())
if (payDetails != null) { .observe(getViewLifecycleOwner(), payDetails -> handleLastSettlement(payDetails, HostType.QR));
if (!payDetails.isEmpty()) { } else {
managementViewModel.payDetails.setValue(payDetails); managementViewModel.getLastSettlement(SystemParamsOperation.getInstance().getCurrentSerialNum())
.observe(getViewLifecycleOwner(), payDetails -> handleLastSettlement(payDetails, hostType));
}
}
PayDetail payDetail = payDetails.get(payDetails.size() - 1); private void handleLastSettlement(List<PayDetail> payDetails, HostType hostType) {
if (payDetails == null || payDetails.isEmpty()) {
showSingleInfoDialog(getString(R.string.txt_no_trans_to_print));
routeId = R.id.action_selectHostFragment_to_nav_main;
safeNavigateToRouteId();
return;
}
if(sharedViewModel.hostType.getValue() == HostType.QR && payDetail.getTransactionType() == TransactionsType.MMQR_SETTLEMENT.value) { PayDetail payDetail;
if (hostType == HostType.QR) {
payDetail = findLastByType(payDetails, TransactionsType.MMQR_SETTLEMENT.value);
if (payDetail != null) {
managementViewModel.payDetails.setValue(java.util.Collections.singletonList(payDetail));
routeId = R.id.action_selectHostFragment_to_QRSettlementTransactionFragment; routeId = R.id.action_selectHostFragment_to_QRSettlementTransactionFragment;
} else if(sharedViewModel.hostType.getValue() != HostType.MPU && payDetail.getTransactionType() == TransactionsType.SETTLEMENT.value) { } else {
showSingleInfoDialog(getString(R.string.txt_no_trans_to_print));
routeId = R.id.action_selectHostFragment_to_nav_main;
}
} else {
payDetail = findLastByType(payDetails, TransactionsType.SETTLEMENT.value);
if (payDetail != null) {
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));
routeId = R.id.action_selectHostFragment_to_nav_main; routeId = R.id.action_selectHostFragment_to_nav_main;
} }
}
} else {
showSingleInfoDialog(getString(R.string.txt_no_trans_to_print));
routeId = R.id.action_selectHostFragment_to_nav_main;
}
safeNavigateToRouteId(); safeNavigateToRouteId();
} else {
showSingleInfoDialog(getString(R.string.txt_no_trans_to_print));
routeId = R.id.action_selectHostFragment_to_nav_main;
safeNavigateToRouteId();
}
}
});
} }

View File

@ -142,7 +142,20 @@ public class SettlementTransactionFragment extends DataBindingFragment implement
settlementViewModel.getLastSettlement(SystemParamsOperation.getInstance().getCurrentSerialNum()).observe(getViewLifecycleOwner(), payDetails -> { settlementViewModel.getLastSettlement(SystemParamsOperation.getInstance().getCurrentSerialNum()).observe(getViewLifecycleOwner(), payDetails -> {
if (payDetails != null) { if (payDetails != null) {
if (!payDetails.isEmpty()) { if (!payDetails.isEmpty()) {
PayDetail payDetail = payDetails.get(payDetails.size() - 1); PayDetail payDetail = null;
for (int i = payDetails.size() - 1; i >= 0; i--) {
PayDetail candidate = payDetails.get(i);
if (candidate != null && candidate.getTransactionType() == TransactionsType.SETTLEMENT.value) {
payDetail = candidate;
break;
}
}
if (payDetail == null) {
settlementViewModel.isNoData.setValue(true);
setSettlementViewModelData(0, 0, 0, 0, 0, 0, 0, 0);
return;
}
saleCount = payDetail.getSettleDataObj().getSaleCount(); saleCount = payDetail.getSettleDataObj().getSaleCount();
@ -164,6 +177,7 @@ public class SettlementTransactionFragment extends DataBindingFragment implement
settlementViewModel.setPayDetails(payDetails); settlementViewModel.setPayDetails(payDetails);
managementViewModel.payDetail.setValue(payDetail); managementViewModel.payDetail.setValue(payDetail);
sharedViewModel.payDetail.setValue(payDetail);
} }