From 1cdf045d99c02824e8834d98eff1138a53149b0f Mon Sep 17 00:00:00 2001 From: moon <56061215+MgKyawLay@users.noreply.github.com> Date: Tue, 28 Jul 2026 13:27:42 +0630 Subject: [PATCH] view batch ui change --- .../SettlementTransactionFragment.java | 49 ++ .../ui/settlement/SettlementViewModel.java | 52 +++ .../res/layout/fragment_view_batch_screen.xml | 417 +++++++++++++----- 3 files changed, 401 insertions(+), 117 deletions(-) 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 5772f02..3ae6e29 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 @@ -412,6 +412,24 @@ public class SettlementTransactionFragment extends DataBindingFragment implement mmkBucket.voidCount, mmkBucket.voidAmount, usdBucket.voidCount, usdBucket.voidAmount)); + // Update MMK separate fields + settlementViewModel.mmk_sale_count.setValue(mmkBucket.saleCount + canceledMmkCount); + settlementViewModel.mmk_sale_amount.setValue(mmkBucket.saleAmount + canceledMmkAmount); + settlementViewModel.mmk_void_count.setValue(mmkBucket.voidCount); + settlementViewModel.mmk_void_amount.setValue(mmkBucket.voidAmount); + + // Update USD separate fields + settlementViewModel.usd_sale_count.setValue(usdBucket.saleCount + canceledUsdCount); + settlementViewModel.usd_sale_amount.setValue(usdBucket.saleAmount + canceledUsdAmount); + settlementViewModel.usd_void_count.setValue(usdBucket.voidCount); + settlementViewModel.usd_void_amount.setValue(usdBucket.voidAmount); + + // Update section visibility + boolean hasMmkTransactions = (mmkBucket.saleCount + canceledMmkCount) > 0 || mmkBucket.voidCount > 0 || mmkBucket.preCount > 0 || mmkBucket.refundCount > 0 || mmkBucket.caCount > 0; + boolean hasUsdTransactions = (usdBucket.saleCount + canceledUsdCount) > 0 || usdBucket.voidCount > 0 || usdBucket.preCount > 0 || usdBucket.refundCount > 0 || usdBucket.caCount > 0; + settlementViewModel.mmk_section_visibility.setValue(hasMmkTransactions ? 0 : 8); + settlementViewModel.usd_section_visibility.setValue(hasUsdTransactions ? 0 : 8); + if (sharedViewModel.getTransMenu().getValue() == TransMenu.REVIEW_BATCH) { SettleData settleData = new SettleData( saleCount + canceledSaleCount, @@ -463,6 +481,37 @@ public class SettlementTransactionFragment extends DataBindingFragment implement settlementViewModel.pre_breakdown.setValue(buildBreakdownText(mmkBucket.preCount, mmkBucket.preAmount, usdBucket.preCount, usdBucket.preAmount)); settlementViewModel.refund_breakdown.setValue(buildBreakdownText(mmkBucket.refundCount, mmkBucket.refundAmount, usdBucket.refundCount, usdBucket.refundAmount)); settlementViewModel.ca_breakdown.setValue(buildBreakdownText(mmkBucket.caCount, mmkBucket.caAmount, usdBucket.caCount, usdBucket.caAmount)); + + // MMK separate fields + settlementViewModel.mmk_sale_count.setValue(mmkBucket.saleCount); + settlementViewModel.mmk_sale_amount.setValue(mmkBucket.saleAmount); + settlementViewModel.mmk_void_count.setValue(mmkBucket.voidCount); + settlementViewModel.mmk_void_amount.setValue(mmkBucket.voidAmount); + settlementViewModel.mmk_pre_count.setValue(mmkBucket.preCount); + settlementViewModel.mmk_pre_amount.setValue(mmkBucket.preAmount); + settlementViewModel.mmk_refund_count.setValue(mmkBucket.refundCount); + settlementViewModel.mmk_refund_amount.setValue(mmkBucket.refundAmount); + settlementViewModel.mmk_ca_count.setValue(mmkBucket.caCount); + settlementViewModel.mmk_ca_amount.setValue(mmkBucket.caAmount); + + // USD separate fields + settlementViewModel.usd_sale_count.setValue(usdBucket.saleCount); + settlementViewModel.usd_sale_amount.setValue(usdBucket.saleAmount); + settlementViewModel.usd_void_count.setValue(usdBucket.voidCount); + settlementViewModel.usd_void_amount.setValue(usdBucket.voidAmount); + settlementViewModel.usd_pre_count.setValue(usdBucket.preCount); + settlementViewModel.usd_pre_amount.setValue(usdBucket.preAmount); + settlementViewModel.usd_refund_count.setValue(usdBucket.refundCount); + settlementViewModel.usd_refund_amount.setValue(usdBucket.refundAmount); + settlementViewModel.usd_ca_count.setValue(usdBucket.caCount); + settlementViewModel.usd_ca_amount.setValue(usdBucket.caAmount); + + // Section visibility + boolean hasMmkTransactions = mmkBucket.saleCount > 0 || mmkBucket.voidCount > 0 || mmkBucket.preCount > 0 || mmkBucket.refundCount > 0 || mmkBucket.caCount > 0; + boolean hasUsdTransactions = usdBucket.saleCount > 0 || usdBucket.voidCount > 0 || usdBucket.preCount > 0 || usdBucket.refundCount > 0 || usdBucket.caCount > 0; + settlementViewModel.mmk_section_visibility.setValue(hasMmkTransactions ? 0 : 8); + settlementViewModel.usd_section_visibility.setValue(hasUsdTransactions ? 0 : 8); + if(sharedViewModel.getTransMenu().getValue() == TransMenu.REVIEW_BATCH) { SettleData settleData = new SettleData(saleCount,saleAmount,preCount,preAmount,refundCount,refundAmount,caCount,caAmount); settleData.setVoidSaleCount(voidCount); 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 4f09c0e..b8c758a 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 @@ -98,6 +98,34 @@ public class SettlementViewModel extends ViewModel { public MutableLiveData ca_amount = new MutableLiveData<>(); public MutableLiveData ca_breakdown = new MutableLiveData<>(); + // MMK separate fields + public MutableLiveData mmk_sale_count = new MutableLiveData<>(); + public MutableLiveData mmk_sale_amount = new MutableLiveData<>(); + public MutableLiveData mmk_void_count = new MutableLiveData<>(); + public MutableLiveData mmk_void_amount = new MutableLiveData<>(); + public MutableLiveData mmk_pre_count = new MutableLiveData<>(); + public MutableLiveData mmk_pre_amount = new MutableLiveData<>(); + public MutableLiveData mmk_refund_count = new MutableLiveData<>(); + public MutableLiveData mmk_refund_amount = new MutableLiveData<>(); + public MutableLiveData mmk_ca_count = new MutableLiveData<>(); + public MutableLiveData mmk_ca_amount = new MutableLiveData<>(); + + // USD separate fields + public MutableLiveData usd_sale_count = new MutableLiveData<>(); + public MutableLiveData usd_sale_amount = new MutableLiveData<>(); + public MutableLiveData usd_void_count = new MutableLiveData<>(); + public MutableLiveData usd_void_amount = new MutableLiveData<>(); + public MutableLiveData usd_pre_count = new MutableLiveData<>(); + public MutableLiveData usd_pre_amount = new MutableLiveData<>(); + public MutableLiveData usd_refund_count = new MutableLiveData<>(); + public MutableLiveData usd_refund_amount = new MutableLiveData<>(); + public MutableLiveData usd_ca_count = new MutableLiveData<>(); + public MutableLiveData usd_ca_amount = new MutableLiveData<>(); + + // Section visibility + public MutableLiveData mmk_section_visibility = new MutableLiveData<>(8); + public MutableLiveData usd_section_visibility = new MutableLiveData<>(8); + public MutableLiveData settlementType = new MutableLiveData<>(); /* check is there settlement transactions or not */ @@ -148,6 +176,30 @@ public class SettlementViewModel extends ViewModel { ca_amount.setValue(0L); ca_breakdown.setValue(""); + // MMK fields + mmk_sale_count.setValue(0); + mmk_sale_amount.setValue(0L); + mmk_void_count.setValue(0); + mmk_void_amount.setValue(0L); + mmk_pre_count.setValue(0); + mmk_pre_amount.setValue(0L); + mmk_refund_count.setValue(0); + mmk_refund_amount.setValue(0L); + mmk_ca_count.setValue(0); + mmk_ca_amount.setValue(0L); + + // USD fields + usd_sale_count.setValue(0); + usd_sale_amount.setValue(0L); + usd_void_count.setValue(0); + usd_void_amount.setValue(0L); + usd_pre_count.setValue(0); + usd_pre_amount.setValue(0L); + usd_refund_count.setValue(0); + usd_refund_amount.setValue(0L); + usd_ca_count.setValue(0); + usd_ca_amount.setValue(0L); + isoMsgX = new ISOMsgX.ISOMsgXBuilder(ISOVersion.VERSION_1993, ISOMode.BOTH_HEADER_TPDU,HostName.BPC) .build(); 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 1b0c75c..c0319e2 100644 --- a/app/src/main/res/layout/fragment_view_batch_screen.xml +++ b/app/src/main/res/layout/fragment_view_batch_screen.xml @@ -70,14 +70,31 @@ android:layout_height="1dp" android:background="@color/colorLightGray"/> + + + + + + + + + android:visibility="@{settleViewModel.mmk_section_visibility}"> - - - - - + + android:visibility="@{settleViewModel.mmk_section_visibility}"> @@ -172,38 +171,20 @@ android:layout_weight="2" android:textColor="@color/black" android:fontFamily="@font/rubik_regular" - android:text="@{`- ` + POSUtil.getInstance().getDecimalAmountSeparatorFormat(settleViewModel.void_amount)}" + android:text="@{`- ` + POSUtil.getInstance().getDecimalAmountSeparatorFormat(settleViewModel.mmk_void_amount)}" tools:text="- 500.00" android:textAlignment="textEnd" android:textSize="16sp" /> - - - - - + + android:visibility="@{settleViewModel.mmk_section_visibility}"> - - - - - + + android:visibility="@{settleViewModel.mmk_section_visibility}"> @@ -298,39 +261,20 @@ android:layout_weight="2" android:textColor="@color/black" android:fontFamily="@font/rubik_regular" - android:text="@{POSUtil.getInstance().getDecimalAmountSeparatorFormat(settleViewModel.refund_amount)}" + android:text="@{POSUtil.getInstance().getDecimalAmountSeparatorFormat(settleViewModel.mmk_refund_amount)}" tools:text="0.00" android:textAlignment="textEnd" android:textSize="16sp" /> - - - - - + + android:visibility="@{settleViewModel.mmk_section_visibility}"> + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -362,30 +421,154 @@ android:layout_weight="2" android:textColor="@color/black" android:fontFamily="@font/rubik_regular" - android:text="@{POSUtil.getInstance().getDecimalAmountSeparatorFormat(settleViewModel.ca_amount)}" + android:text="@{`- ` + POSUtil.getInstance().getDecimalAmountSeparatorFormat(settleViewModel.usd_void_amount)}" + tools:text="- 0.00" + android:textAlignment="textEnd" + android:textSize="16sp" /> + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - + android:background="@color/colorLightGray" + android:visibility="@{settleViewModel.usd_section_visibility}"/>