last settlement changed

This commit is contained in:
moon 2026-08-01 00:51:37 +06:30
parent ee297e8e77
commit 5beea4afdd

View File

@ -3,10 +3,12 @@ package com.utsmm.kbz.ui.management;
import android.animation.ObjectAnimator; import android.animation.ObjectAnimator;
import android.animation.ValueAnimator; import android.animation.ValueAnimator;
import android.os.Bundle; import android.os.Bundle;
import android.text.TextUtils;
import android.view.View; import android.view.View;
import androidx.annotation.NonNull; import androidx.annotation.NonNull;
import androidx.annotation.Nullable; import androidx.annotation.Nullable;
import androidx.lifecycle.LiveData;
import androidx.lifecycle.Observer; import androidx.lifecycle.Observer;
import com.github.gcacace.signaturepad.BR; import com.github.gcacace.signaturepad.BR;
@ -42,6 +44,7 @@ public class ReprintReceiptFragment extends DataBindingFragment {
private static final String TAG = ReprintReceiptFragment.class.getSimpleName(); private static final String TAG = ReprintReceiptFragment.class.getSimpleName();
private PayDetail payDetail; private PayDetail payDetail;
private List<QRSettleData> lastQrSettleData;
private ObjectAnimator slideUpAnimator; private ObjectAnimator slideUpAnimator;
private View printingCard; private View printingCard;
@ -165,7 +168,12 @@ public class ReprintReceiptFragment extends DataBindingFragment {
transType = ""; transType = "";
} }
payDetail.setTransType(transType + "(REPRINT)"); payDetail.setTransType(transType + "(REPRINT)");
checkPaperExists(payDetail);
if (payDetail.getTransactionType() == TransactionsType.SETTLEMENT.value) {
observeLastQrSettlement(payDetail);
} else {
checkPaperExists(payDetail);
}
// managementViewModel.payDetail.observe(getViewLifecycleOwner(), new Observer<PayDetail>() { // managementViewModel.payDetail.observe(getViewLifecycleOwner(), new Observer<PayDetail>() {
// @Override // @Override
// public void onChanged(PayDetail pay) { // public void onChanged(PayDetail pay) {
@ -185,12 +193,41 @@ public class ReprintReceiptFragment extends DataBindingFragment {
// }); // });
} }
private void observeLastQrSettlement(PayDetail settlePayDetail) {
lastQrSettleData = null;
LiveData<List<PayDetail>> liveData = managementViewModel.getLastSettlementQR(SystemParamsOperation.getInstance().getCurrentSerialNum());
liveData.observe(getViewLifecycleOwner(), new Observer<List<PayDetail>>() {
@Override
public void onChanged(List<PayDetail> qrSettlements) {
liveData.removeObserver(this);
if (qrSettlements != null) {
for (int i = qrSettlements.size() - 1; i >= 0; i--) {
PayDetail qrSettle = qrSettlements.get(i);
if (qrSettle != null
&& qrSettle.getTransactionType() == TransactionsType.MMQR_SETTLEMENT.value
&& TextUtils.equals(qrSettle.getBatchNo(), settlePayDetail.getBatchNo())
&& qrSettle.getQrSettleData() != null
&& !qrSettle.getQrSettleData().isEmpty()) {
lastQrSettleData = qrSettle.getQrSettleData();
break;
}
}
}
checkPaperExists(settlePayDetail);
}
});
}
private void printReceipt(PayDetail payDetail) { private void printReceipt(PayDetail payDetail) {
if (payDetail.getTransactionType() == TransactionsType.MMQR_SETTLEMENT.value) { if (payDetail.getTransactionType() == TransactionsType.MMQR_SETTLEMENT.value) {
PrintXReceipt.getInstance().printQRSettlementReport(payDetail, payDetail.getQrSettleData(), printXStatus); PrintXReceipt.getInstance().printQRSettlementReport(payDetail, payDetail.getQrSettleData(), printXStatus);
} else if (lastQrSettleData != null && !lastQrSettleData.isEmpty()) {
PrintXReceipt.getInstance().printSmileSettlementReport(payDetail, lastQrSettleData, printXStatus);
} else { } else {
PrintXReceipt.getInstance().printSmileSettlementReport(payDetail, printXStatus); PrintXReceipt.getInstance().printSmileSettlementReport(payDetail, printXStatus);
} }