settlement fix for amount always 0

This commit is contained in:
MooN 2026-02-20 23:52:44 +06:30
parent 538ae41938
commit 2b114dab5e
2 changed files with 59 additions and 32 deletions

View File

@ -212,29 +212,31 @@ public class SettlementTransactionFragment extends DataBindingFragment implement
} }
settlementViewModel.getSettlementPOS().observe(getViewLifecycleOwner(), payDetails -> { settlementViewModel.getSettlementPOS().observe(getViewLifecycleOwner(), payDetails -> {
if(!payDetails.isEmpty()) { resetSettlementCounters();
if(payDetails != null && !payDetails.isEmpty()) {
for(PayDetail payDetail:payDetails) { for(PayDetail payDetail:payDetails) {
int transType = payDetail.getTransactionType();
String transName = payDetail.getTransType();
// if(payDetail.isSettlementEnabled()) { if((transType == TransactionType.SALE || "SALE".equalsIgnoreCase(transName)) && !payDetail.isCanceled){
if(payDetail.getTransactionType() == TransactionType.SALE && !payDetail.isCanceled){
saleCount ++; saleCount ++;
saleAmount += payDetail.getAmount(); saleAmount += payDetail.getAmount();
} else if(payDetail.getTransactionType() == TransactionType.PRE_SALE_COMPLETE && !payDetail.isCanceled){ } else if((transType == TransactionType.PRE_SALE_COMPLETE
|| "PREAUTH COMPLETION".equalsIgnoreCase(transName)
|| "PRE_AUTH_COMPLETE".equalsIgnoreCase(transName)) && !payDetail.isCanceled){
preCount ++; preCount ++;
preAmount += payDetail.getAmount(); preAmount += payDetail.getAmount();
} }
else if(payDetail.getTransactionType() == TransactionType.REFUND){ else if(transType == TransactionType.REFUND || "REFUND".equalsIgnoreCase(transName)){
refundCount ++; refundCount ++;
refundAmount += payDetail.getAmount(); refundAmount += payDetail.getAmount();
}else if(payDetail.getTransactionType() == TransactionType.CASH_ADVANCE){ }else if(transType == TransactionType.CASH_ADVANCE
|| "CASH_OUT".equalsIgnoreCase(transName)
|| "CASH_ADVANCE".equalsIgnoreCase(transName)){
caCount ++; caCount ++;
caAmount += payDetail.getAmount(); caAmount += payDetail.getAmount();
} }
// }
// sharedViewModel.payDetail.setValue(payDetail);
} }
long totalAmount = saleAmount + preAmount + caAmount; long totalAmount = saleAmount + preAmount + caAmount;
sharedViewModel.totalAmount.postValue(totalAmount); sharedViewModel.totalAmount.postValue(totalAmount);
@ -247,16 +249,6 @@ public class SettlementTransactionFragment extends DataBindingFragment implement
} else { } else {
int saleCount = 0;
int preCount = 0;
int refundCount = 0;
int caCount = 0;
long saleAmount = 0;
long preAmount = 0;
long refundAmount = 0;
long caAmount = 0;
settlementViewModel.isNoData.setValue(true); settlementViewModel.isNoData.setValue(true);
sharedViewModel.setAmount(POSUtil.getInstance().getDecimalAmountSeparatorFormat(0)); sharedViewModel.setAmount(POSUtil.getInstance().getDecimalAmountSeparatorFormat(0));
@ -275,6 +267,17 @@ public class SettlementTransactionFragment extends DataBindingFragment implement
}); });
} }
private void resetSettlementCounters() {
saleCount = 0;
preCount = 0;
refundCount = 0;
caCount = 0;
saleAmount = 0L;
preAmount = 0L;
refundAmount = 0L;
caAmount = 0L;
}
private void setSettlementViewModelData(int saleCount,long saleAmount,int preCount,long preAmount,int refundCount,long refundAmount,int caCount,long caAmount) { private void setSettlementViewModelData(int saleCount,long saleAmount,int preCount,long preAmount,int refundCount,long refundAmount,int caCount,long caAmount) {
settlementViewModel.sale_count.setValue(saleCount); settlementViewModel.sale_count.setValue(saleCount);
settlementViewModel.sale_amount.setValue(saleAmount); settlementViewModel.sale_amount.setValue(saleAmount);

View File

@ -46,11 +46,35 @@ public interface PayDetailDao {
LiveData<List<PayDetail>> getSettlement(); LiveData<List<PayDetail>> getSettlement();
// 1 = SALE & 7 = PRE_SALE_COMPLETE & 4 = REFUND & 9 = CASH_ADVANCE & 18 = TIP ADJUSTMENT // 1 = SALE & 7 = PRE_SALE_COMPLETE & 4 = REFUND & 9 = CASH_ADVANCE & 18 = TIP ADJUSTMENT
@Query("SELECT * FROM paydetail WHERE isSettle = 0 AND isCanceled = 0 AND transactionType = 1 OR transactionType = 7 AND isSettle = 0 AND isCanceled = 0 OR transactionType = 4 AND isSettle = 0 OR transactionType = 9 AND isSettle = 0 ") @Query("SELECT * FROM paydetail " +
"WHERE isSettle = 0 AND (" +
"((transactionType = 1 OR transactionType = 7) AND isCanceled = 0) " +
"OR transactionType = 4 " +
"OR transactionType = 9 " +
"OR (transactionType = 0 AND isCanceled = 0 AND (" +
"transType = 'SALE' " +
"OR transType = 'PREAUTH COMPLETION' " +
"OR transType = 'PRE_AUTH_COMPLETE' " +
"OR transType = 'REFUND' " +
"OR transType = 'CASH_OUT' " +
"OR transType = 'CASH_ADVANCE')))")
LiveData<List<PayDetail>> getSettlementPOS(); LiveData<List<PayDetail>> getSettlementPOS();
// 1 = SALE & 7 = PRE_SALE_COMPLETE & 4 = REFUND & 9 = CASH_ADVANCE & 18 = TIP ADJUSTMENT & 6 = PRE_AUTH_VOID & 20 = WALLET // 1 = SALE & 7 = PRE_SALE_COMPLETE & 4 = REFUND & 9 = CASH_ADVANCE & 18 = TIP ADJUSTMENT & 6 = PRE_AUTH_VOID & 20 = WALLET
@Query("SELECT * FROM paydetail WHERE isSettle = 0 AND isCanceled = 0 AND transactionType = 1 OR transactionType = 7 AND isSettle = 0 AND isCanceled = 0 OR transactionType = 4 AND isSettle = 0 OR transactionType = 9 AND isSettle = 0 OR transactionType = 6 AND isSettle = 0") @Query("SELECT * FROM paydetail " +
"WHERE isSettle = 0 AND (" +
"((transactionType = 1 OR transactionType = 7 OR transactionType = 6) AND isCanceled = 0) " +
"OR transactionType = 4 " +
"OR transactionType = 9 " +
"OR (transactionType = 0 AND isCanceled = 0 AND (" +
"transType = 'SALE' " +
"OR transType = 'PREAUTH COMPLETION' " +
"OR transType = 'PRE_AUTH_COMPLETE' " +
"OR transType = 'PREAUTH CANCELLATION' " +
"OR transType = 'PRE_AUTH_VOID' " +
"OR transType = 'REFUND' " +
"OR transType = 'CASH_OUT' " +
"OR transType = 'CASH_ADVANCE')))")
LiveData<List<PayDetail>> getSettlementPOSClearBatch(); LiveData<List<PayDetail>> getSettlementPOSClearBatch();
// 6 = PRE AUTH CANCEL, 7= PRE_AUTH_COMPLETE , 5 = PRE AUTH // 6 = PRE AUTH CANCEL, 7= PRE_AUTH_COMPLETE , 5 = PRE AUTH