From cb96ccb7ca92db17fbc7694b05e2d927b3d1c7aa Mon Sep 17 00:00:00 2001 From: moon <56061215+MgKyawLay@users.noreply.github.com> Date: Wed, 1 Apr 2026 13:49:47 +0630 Subject: [PATCH] Update TransactionSummaryFragment.java --- .../TransactionSummaryFragment.java | 46 ++++++++++--------- 1 file changed, 25 insertions(+), 21 deletions(-) diff --git a/app/src/main/java/com/utsmm/kbz/ui/management/TransactionSummaryFragment.java b/app/src/main/java/com/utsmm/kbz/ui/management/TransactionSummaryFragment.java index 3ba9106..3fc4a4e 100644 --- a/app/src/main/java/com/utsmm/kbz/ui/management/TransactionSummaryFragment.java +++ b/app/src/main/java/com/utsmm/kbz/ui/management/TransactionSummaryFragment.java @@ -226,10 +226,15 @@ public class TransactionSummaryFragment extends DataBindingFragment { } } - private SettleData processTransactionData(List payDetailList, SimpleDateFormat formatter, - Date yesterday, Date start, Date end) { + private SettleData processTransactionData(List payDetailList, + SimpleDateFormat formatter, + Date yesterday, + Date start, + Date end) { try { - // Create a local helper class for readable mutability + // ✅ IMPORTANT: clear old data + filteredLists.clear(); + class Counter { int count = 0; long amount = 0L; @@ -252,37 +257,32 @@ public class TransactionSummaryFragment extends DataBindingFragment { Counter preAuthCompVoid = new Counter(); Counter refund = new Counter(); + // ✅ Use ONE consistent format SimpleDateFormat sdf = new SimpleDateFormat("dd/MM/yy HH:mm", Locale.getDefault()); - + for (PayDetail pay : payDetailList) { try { - Date transDate = formatter.parse(pay.getTransDate()); - if ((transDate.after(start) || transDate.equals(start)) && - (transDate.before(end) || transDate.equals(end))) { - filteredLists.add(pay); - } - } catch (ParseException e) { - LogUtil.e(TAG, "Error parsing transaction date: " + e.getMessage()); - } - } - - LogUtil.d(TAG, "Filtered transactions count: " + filteredLists.size()); - - // Process filtered transactions - for (PayDetail pay : filteredLists) { - try { + // ✅ Combine date + time correctly Date currentDate = sdf.parse(pay.transDate + " " + pay.transTime); - if ((currentDate.after(start) || currentDate.equals(start)) && - (currentDate.before(end) || currentDate.equals(end))) { + if (currentDate == null) continue; + + // ✅ Correct inclusive range check + if (!currentDate.before(start) && !currentDate.after(end)) { + + // ✅ Keep filtered list for printing + filteredLists.add(pay); if (sharedViewModel.hostType.getValue() == HostType.QR) { + if (pay.getTransactionType() == TransactionsType.MMQR.value && pay.getQrTransStatus() == 1) { wave.inc(pay.amount); } else if (pay.getTransactionType() == TransactionsType.MMQR_REFUND.value && pay.getQrTransStatus() == 1) { waveRefund.inc(pay.amount); } + } else if (sharedViewModel.hostType.getValue() == HostType.MPU) { + if (pay.getTransactionType() == TransactionsType.VOID.value) { voidTran.inc(pay.amount); } else if (pay.getTransactionType() == TransactionsType.SALE.value) { @@ -302,11 +302,14 @@ public class TransactionSummaryFragment extends DataBindingFragment { } } } + } catch (ParseException e) { LogUtil.e(TAG, "Error parsing transaction datetime: " + e.getMessage()); } } + LogUtil.d(TAG, "Filtered transactions count: " + filteredLists.size()); + return new SettleData( sale.count, sale.amount, wave.count, wave.amount, @@ -319,6 +322,7 @@ public class TransactionSummaryFragment extends DataBindingFragment { refund.count, refund.amount, waveRefund.count, waveRefund.amount ); + } catch (Exception e) { LogUtil.e(TAG, "Error processing transaction data: " + e.getMessage()); return null;