QR settlement added crash handling
This commit is contained in:
parent
c46b8793a1
commit
7d8f9f5af2
@ -146,6 +146,58 @@ public class QRSettlementTransactionFragment extends DataBindingFragment impleme
|
|||||||
count = 0;
|
count = 0;
|
||||||
totalAmount = 0;
|
totalAmount = 0;
|
||||||
|
|
||||||
|
try {
|
||||||
|
for (PayDetail payDetail : payDetailList) {
|
||||||
|
// Filter for QR transactions only
|
||||||
|
if ((payDetail.getTransactionType() == TransactionsType.MMQR.value
|
||||||
|
|| payDetail.getTransactionType() == TransactionsType.MMQR_REFUND.value)
|
||||||
|
&& payDetail.getQrTransStatus() == 1
|
||||||
|
&& POSUtil.getInstance().getYesterdayDate().compareTo(POSUtil.getInstance().getDateByString(payDetail.transDate)) < 1) {
|
||||||
|
|
||||||
|
boolean isNeedMinusSign = payDetail.getTransactionType() == TransactionsType.MMQR_REFUND.value;
|
||||||
|
qrTransactionsList.add(payDetail);
|
||||||
|
count++;
|
||||||
|
if (isNeedMinusSign) {
|
||||||
|
totalAmount -= payDetail.getAmount();
|
||||||
|
} else {
|
||||||
|
totalAmount += payDetail.getAmount();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
} catch (IllegalStateException e) {
|
||||||
|
// Handle cursor window size exceeded error
|
||||||
|
android.util.Log.e("QRSettlement", "Database cursor error - likely due to large data size", e);
|
||||||
|
showEmptyDataView();
|
||||||
|
settlementViewModel.isNoData.setValue(true);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (qrTransactionsList.isEmpty()) {
|
||||||
|
showEmptyDataView();
|
||||||
|
settlementViewModel.isNoData.setValue(true);
|
||||||
|
} else {
|
||||||
|
|
||||||
|
showDataView();
|
||||||
|
settlementViewModel.isNoData.setValue(false);
|
||||||
|
|
||||||
|
setupSettlementDisplayData();
|
||||||
|
}
|
||||||
|
|
||||||
|
} else {
|
||||||
|
showEmptyDataView();
|
||||||
|
settlementViewModel.isNoData.setValue(true);
|
||||||
|
}
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
private void observeQRLastSettlementTransactions() {
|
||||||
|
List<PayDetail> payDetailList = managementViewModel.payDetails.getValue();
|
||||||
|
if( payDetailList != null) {
|
||||||
|
qrTransactionsList.clear();
|
||||||
|
count = 0;
|
||||||
|
totalAmount = 0;
|
||||||
|
|
||||||
|
try {
|
||||||
for (PayDetail payDetail : payDetailList) {
|
for (PayDetail payDetail : payDetailList) {
|
||||||
// Filter for QR transactions only
|
// Filter for QR transactions only
|
||||||
if ((payDetail.getTransactionType() == TransactionsType.MMQR.value
|
if ((payDetail.getTransactionType() == TransactionsType.MMQR.value
|
||||||
@ -163,50 +215,12 @@ public class QRSettlementTransactionFragment extends DataBindingFragment impleme
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
} catch (IllegalStateException e) {
|
||||||
if (qrTransactionsList.isEmpty()) {
|
// Handle cursor window size exceeded error
|
||||||
showEmptyDataView();
|
android.util.Log.e("QRSettlement", "Database cursor error in last settlement - likely due to large data size", e);
|
||||||
settlementViewModel.isNoData.setValue(true);
|
|
||||||
} else {
|
|
||||||
|
|
||||||
showDataView();
|
|
||||||
settlementViewModel.isNoData.setValue(false);
|
|
||||||
|
|
||||||
setupSettlementDisplayData();
|
|
||||||
}
|
|
||||||
|
|
||||||
// setupSettlementDisplayData();
|
|
||||||
|
|
||||||
} else {
|
|
||||||
showEmptyDataView();
|
showEmptyDataView();
|
||||||
settlementViewModel.isNoData.setValue(true);
|
settlementViewModel.isNoData.setValue(true);
|
||||||
}
|
return;
|
||||||
});
|
|
||||||
}
|
|
||||||
|
|
||||||
private void observeQRLastSettlementTransactions() {
|
|
||||||
List<PayDetail> payDetailList = managementViewModel.payDetails.getValue();
|
|
||||||
if( payDetailList != null) {
|
|
||||||
qrTransactionsList.clear();
|
|
||||||
count = 0;
|
|
||||||
totalAmount = 0;
|
|
||||||
|
|
||||||
for (PayDetail payDetail : payDetailList) {
|
|
||||||
// Filter for QR transactions only
|
|
||||||
if ((payDetail.getTransactionType() == TransactionsType.MMQR.value
|
|
||||||
|| payDetail.getTransactionType() == TransactionsType.MMQR_REFUND.value)
|
|
||||||
&& payDetail.getQrTransStatus() == 1
|
|
||||||
&& POSUtil.getInstance().getYesterdayDate().compareTo(POSUtil.getInstance().getDateByString(payDetail.transDate)) < 1) {
|
|
||||||
|
|
||||||
boolean isNeedMinusSign = payDetail.getTransactionType() == TransactionsType.MMQR_REFUND.value;
|
|
||||||
qrTransactionsList.add(payDetail);
|
|
||||||
count++;
|
|
||||||
if (isNeedMinusSign) {
|
|
||||||
totalAmount -= payDetail.getAmount();
|
|
||||||
} else {
|
|
||||||
totalAmount += payDetail.getAmount();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
if (qrTransactionsList.isEmpty()) {
|
if (qrTransactionsList.isEmpty()) {
|
||||||
@ -217,8 +231,6 @@ public class QRSettlementTransactionFragment extends DataBindingFragment impleme
|
|||||||
settlementViewModel.isNoData.setValue(false);
|
settlementViewModel.isNoData.setValue(false);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
} else {
|
} else {
|
||||||
showEmptyDataView();
|
showEmptyDataView();
|
||||||
settlementViewModel.isNoData.setValue(true);
|
settlementViewModel.isNoData.setValue(true);
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user