From 91207f105186dd2de77941254a967f9feef2420e Mon Sep 17 00:00:00 2001 From: moon <56061215+MgKyawLay@users.noreply.github.com> Date: Wed, 2 Sep 2026 22:50:26 +0630 Subject: [PATCH] previous qr showing in settlement fixed --- CHANGELOG.md | 5 ++++- app/build.gradle | 4 ++-- .../ui/management/ManagementViewModel.java | 4 ++++ .../QRSettlementTransactionFragment.java | 7 ++++--- .../SettlementTransactionFragment.java | 12 ++++++++--- .../ui/settlement/SettlementViewModel.java | 8 ++++++++ .../res/layout/fragment_view_batch_screen.xml | 20 ++++++++++++++++--- .../utsmyanmar/baselib/TerminalKeyUtil.java | 2 +- .../baselib/db/dao/PayDetailDao.java | 11 ++++++++++ .../utsmyanmar/baselib/repo/Repository.java | 14 +++++++++++++ 10 files changed, 74 insertions(+), 13 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 69e7b76..f514dfb 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -101,4 +101,7 @@ card - settlement ui is changed - fix for invoice number and trance number place mismatch in reprint any transaction screen - secondary host show Tid Mid -- settlement fixed for duel currency \ No newline at end of file +- settlement fixed for duel currency + + +## [2.43] diff --git a/app/build.gradle b/app/build.gradle index bb22d77..179e212 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -39,8 +39,8 @@ android { applicationId "com.utsmm.kbz.uat" versionNameSuffix "-uat" resValue "string", "app_name", "KBZ-UAT" - versionCode 47 - versionName "2.42" + versionCode 48 + versionName "2.43" } prod { diff --git a/app/src/main/java/com/utsmm/kbz/ui/management/ManagementViewModel.java b/app/src/main/java/com/utsmm/kbz/ui/management/ManagementViewModel.java index 843e26d..4c9e48a 100644 --- a/app/src/main/java/com/utsmm/kbz/ui/management/ManagementViewModel.java +++ b/app/src/main/java/com/utsmm/kbz/ui/management/ManagementViewModel.java @@ -72,6 +72,10 @@ public class ManagementViewModel extends ViewModel { return repository.getTransactionHistory(); } + public LiveData> getUnsettledQRTransactions(){ + return repository.getUnsettledQRTransactions(); + } + public LiveData> getLastSettlement(String voucherNo){ return repository.getLastSettlement(voucherNo); } diff --git a/app/src/main/java/com/utsmm/kbz/ui/settlement/QRSettlementTransactionFragment.java b/app/src/main/java/com/utsmm/kbz/ui/settlement/QRSettlementTransactionFragment.java index 04d4772..e800329 100644 --- a/app/src/main/java/com/utsmm/kbz/ui/settlement/QRSettlementTransactionFragment.java +++ b/app/src/main/java/com/utsmm/kbz/ui/settlement/QRSettlementTransactionFragment.java @@ -158,7 +158,7 @@ public class QRSettlementTransactionFragment extends DataBindingFragment impleme } private void observeQRTransactions() { - managementViewModel.getTransactionHistory().observe(getViewLifecycleOwner(), payDetailList -> { + managementViewModel.getUnsettledQRTransactions().observe(getViewLifecycleOwner(), payDetailList -> { if (payDetailList != null) { qrTransactionsList.clear(); qrTransListAll.clear(); @@ -314,6 +314,7 @@ public class QRSettlementTransactionFragment extends DataBindingFragment impleme } private void processData() { + settlementViewModel.markAllUnsettledQRTransactionsSettled(); TradeData tradeData = Params.newTrade(false); PayDetail payDetail = tradeData.getPayDetail(); payDetail.setSettleDataObj(settleData); @@ -335,11 +336,11 @@ public class QRSettlementTransactionFragment extends DataBindingFragment impleme sharedViewModel.payDetail.setValue(payDetail); for (PayDetail pay : qrTransactionsList) { - settlementViewModel.deletePayDetail(pay); + settlementViewModel.markQRTransactionSettled(pay); } for (PayDetail pay : qrTransListAll) { - settlementViewModel.deletePayDetail(pay); + settlementViewModel.markQRTransactionSettled(pay); } } private void updateData() { diff --git a/app/src/main/java/com/utsmm/kbz/ui/settlement/SettlementTransactionFragment.java b/app/src/main/java/com/utsmm/kbz/ui/settlement/SettlementTransactionFragment.java index 63263ee..55f6ffb 100644 --- a/app/src/main/java/com/utsmm/kbz/ui/settlement/SettlementTransactionFragment.java +++ b/app/src/main/java/com/utsmm/kbz/ui/settlement/SettlementTransactionFragment.java @@ -308,7 +308,7 @@ public class SettlementTransactionFragment extends DataBindingFragment implement } }); - managementViewModel.getTransactionHistory().observe(getViewLifecycleOwner(), payDetailList -> { + managementViewModel.getUnsettledQRTransactions().observe(getViewLifecycleOwner(), payDetailList -> { if (payDetailList != null) { qrTransactionsList.clear(); qrTransListAll.clear(); @@ -350,6 +350,11 @@ public class SettlementTransactionFragment extends DataBindingFragment implement settlementViewModel.qr_refund_count.setValue(qrRefundCount); settlementViewModel.qr_refund_amount.setValue(qrRefundAmount); settlementViewModel.qr_section_visibility.setValue(qrCount > 0 ? 0 : 8); + if (qrCount > 0) { + settlementViewModel.isNoData.setValue(false); + } else if (cardTransactionsList.isEmpty() && settlementViewModel.deleteTrans.isEmpty()) { + settlementViewModel.isNoData.setValue(true); + } } }); @@ -774,6 +779,7 @@ public class SettlementTransactionFragment extends DataBindingFragment implement } private void settleQr() { + settlementViewModel.markAllUnsettledQRTransactionsSettled(); if (qrTransactionsList.isEmpty()) { return; } @@ -796,10 +802,10 @@ public class SettlementTransactionFragment extends DataBindingFragment implement sharedViewModel.payDetails.setValue(new ArrayList<>(qrTransactionsList)); for (PayDetail pay : qrTransactionsList) { - settlementViewModel.deletePayDetail(pay); + settlementViewModel.markQRTransactionSettled(pay); } for (PayDetail pay : qrTransListAll) { - settlementViewModel.deletePayDetail(pay); + settlementViewModel.markQRTransactionSettled(pay); } } diff --git a/app/src/main/java/com/utsmm/kbz/ui/settlement/SettlementViewModel.java b/app/src/main/java/com/utsmm/kbz/ui/settlement/SettlementViewModel.java index 246b020..496ac77 100644 --- a/app/src/main/java/com/utsmm/kbz/ui/settlement/SettlementViewModel.java +++ b/app/src/main/java/com/utsmm/kbz/ui/settlement/SettlementViewModel.java @@ -300,6 +300,14 @@ public class SettlementViewModel extends ViewModel { repository.deletePayDetail(payDetail); } + public void markQRTransactionSettled(PayDetail payDetail){ + repository.markQRTransactionSettled(payDetail); + } + + public void markAllUnsettledQRTransactionsSettled(){ + repository.markAllUnsettledQRTransactionsSettled(); + } + private void updateDB() { if(payDetails != null && payDetails.size() > 0) { diff --git a/app/src/main/res/layout/fragment_view_batch_screen.xml b/app/src/main/res/layout/fragment_view_batch_screen.xml index 38ef7af..a172705 100644 --- a/app/src/main/res/layout/fragment_view_batch_screen.xml +++ b/app/src/main/res/layout/fragment_view_batch_screen.xml @@ -4,6 +4,8 @@ xmlns:tools="http://schemas.android.com/tools"> + + + android:orientation="horizontal" + android:visibility="@{settleViewModel.isNoData ? View.GONE : View.VISIBLE}"> + android:background="@color/colorLightGray" + android:visibility="@{settleViewModel.isNoData ? View.GONE : View.VISIBLE}" /> + + diff --git a/baselib/src/main/java/com/utsmyanmar/baselib/TerminalKeyUtil.java b/baselib/src/main/java/com/utsmyanmar/baselib/TerminalKeyUtil.java index 435168c..e38ca3d 100644 --- a/baselib/src/main/java/com/utsmyanmar/baselib/TerminalKeyUtil.java +++ b/baselib/src/main/java/com/utsmyanmar/baselib/TerminalKeyUtil.java @@ -24,7 +24,7 @@ public final class TerminalKeyUtil { // private static final byte[] main_key_data = ByteUtil.hexStr2Bytes("B4D74774CC846CAFF6D1AAAC2EB79CFF".toUpperCase()); // KBZ UAT // private static final byte[] main_key_usd_data = ByteUtil.hexStr2Bytes("3f4bcac6cc559ab12bbbc5a51118f3f5".toUpperCase()); // KBZ UAT - private static final byte[] main_key_data = ByteUtil.hexStr2Bytes("b4d74774cc846caff6d1aaac2eb79cff".toUpperCase()); + private static final byte[] main_key_data = ByteUtil.hexStr2Bytes("3F4BCAC6CC559AB12BBBC5A51118F3F5".toUpperCase()); // private static final byte[] main_key_data = ByteUtil.hexStr2Bytes("e121249099a677e8b7d4f6a9d49fe8d1".toUpperCase()); // MPU private static final byte[] work_key_data = new byte[16]; public static void initNexKey() { diff --git a/baselib/src/main/java/com/utsmyanmar/baselib/db/dao/PayDetailDao.java b/baselib/src/main/java/com/utsmyanmar/baselib/db/dao/PayDetailDao.java index ed0b93f..0d76e01 100644 --- a/baselib/src/main/java/com/utsmyanmar/baselib/db/dao/PayDetailDao.java +++ b/baselib/src/main/java/com/utsmyanmar/baselib/db/dao/PayDetailDao.java @@ -105,6 +105,17 @@ public interface PayDetailDao { LiveData> getAllReversalTransactionsLive(); // @Query("SELECT * FROM paydetail WHERE transactionType != 10 ORDER BY PID DESC") + @Query("SELECT * FROM paydetail WHERE isSettle = 0 " + + "AND transactionType IN (20, 34) ORDER BY PID DESC") + LiveData> getUnsettledQRTransactions(); + + @Query("UPDATE paydetail SET isSettle = 1 WHERE PID = :pid") + void markQRTransactionSettled(Long pid); + + @Query("UPDATE paydetail SET isSettle = 1 " + + "WHERE isSettle = 0 AND transactionType IN (20, 34)") + void markAllUnsettledQRTransactionsSettled(); + @Query("SELECT * FROM paydetail ORDER BY PID DESC") LiveData> getTransactionHistory(); diff --git a/baselib/src/main/java/com/utsmyanmar/baselib/repo/Repository.java b/baselib/src/main/java/com/utsmyanmar/baselib/repo/Repository.java index a39489a..99a61e7 100644 --- a/baselib/src/main/java/com/utsmyanmar/baselib/repo/Repository.java +++ b/baselib/src/main/java/com/utsmyanmar/baselib/repo/Repository.java @@ -255,6 +255,10 @@ public class Repository { public LiveData> getTransactionHistory(){ return payDetailDao.getTransactionHistory();} + public LiveData> getUnsettledQRTransactions(){ + return payDetailDao.getUnsettledQRTransactions(); + } + public LiveData> getLastSettlement(String voucherNo) { return payDetailDao.getLastSettlement(voucherNo);} public LiveData> getLastSettlementQR(String voucherNo) { return payDetailDao.getLastSettlementQR(voucherNo);} @@ -365,6 +369,16 @@ public class Repository { payDetailDao.deletePayDetail(payDetail); } + public void markQRTransactionSettled(PayDetail payDetail) { + if (payDetail != null && payDetail.getPID() != null) { + payDetailDao.markQRTransactionSettled(payDetail.getPID()); + } + } + + public void markAllUnsettledQRTransactionsSettled() { + payDetailDao.markAllUnsettledQRTransactionsSettled(); + } + public LiveData> getAllTrans() { return payDetailDao.getAllTrans(); } public LiveData> getAllQRHistory(){ return payDetailDao.getAllQRHistory();}