diff --git a/app/src/main/java/com/utsmm/kbz/ui/qr_pay/QRRefundDetailFragment.java b/app/src/main/java/com/utsmm/kbz/ui/qr_pay/QRRefundDetailFragment.java index 92e489f..3439b9b 100644 --- a/app/src/main/java/com/utsmm/kbz/ui/qr_pay/QRRefundDetailFragment.java +++ b/app/src/main/java/com/utsmm/kbz/ui/qr_pay/QRRefundDetailFragment.java @@ -26,6 +26,8 @@ import com.utsmm.kbz.ui.core_viewmodel.SharedViewModel; import com.utsmm.kbz.util.DecimalDigitsInputFilter; import com.utsmm.kbz.util.TransactionUtil; +import java.text.DecimalFormat; + public class QRRefundDetailFragment extends DataBindingFragment { @@ -43,6 +45,8 @@ public class QRRefundDetailFragment extends DataBindingFragment { private EditText etReferenceNo, etOriginalAmount, etRefundAmount, etRefundReason; private LinearLayout originalAmountLayout, refundAmountLayout; + private String originalRefundAmount; + private boolean isPartialRefund = false; @@ -122,6 +126,10 @@ public class QRRefundDetailFragment extends DataBindingFragment { } private void initData() { + double realAmount = payDetail.getAmount() / 100.0; + DecimalFormat df = new DecimalFormat("0.00"); + originalRefundAmount = df.format(realAmount); + payDetail = TransactionUtil.getInstance().initWalletTransaction(TransactionsType.MMQR_REFUND); payDetail.setInvoiceNo(SystemParamsOperation.getInstance().getIncrementInvoiceNum()); @@ -144,8 +152,8 @@ public class QRRefundDetailFragment extends DataBindingFragment { } else { // Hide amount fields for original refund isPartialRefund = false; - originalAmountLayout.setVisibility(View.GONE); - refundAmountLayout.setVisibility(View.GONE); + originalAmountLayout.setVisibility(View.VISIBLE); + refundAmountLayout.setVisibility(View.VISIBLE); } }); } @@ -162,6 +170,8 @@ public class QRRefundDetailFragment extends DataBindingFragment { String referenceNo = etReferenceNo.getText().toString().trim(); String refundReason = etRefundReason.getText().toString().trim(); + String originalAmountStr = etOriginalAmount.getText().toString().trim(); + String refundAmountStr = etRefundAmount.getText().toString().trim(); // Validate reference number if (referenceNo.isEmpty()) { @@ -171,8 +181,8 @@ public class QRRefundDetailFragment extends DataBindingFragment { if (isPartialRefund) { // Partial refund validation - String originalAmountStr = etOriginalAmount.getText().toString().trim(); - String refundAmountStr = etRefundAmount.getText().toString().trim(); +// String originalAmountStr = etOriginalAmount.getText().toString().trim(); +// String refundAmountStr = etRefundAmount.getText().toString().trim(); if (originalAmountStr.isEmpty()) { kPayViewModel.invalidAmountMsg.setValue("Enter original amount"); @@ -207,12 +217,16 @@ public class QRRefundDetailFragment extends DataBindingFragment { kPayViewModel.setQrRefund(qrRefund); } else { - QRRefund qrRefund = new QRRefund(referenceNo, "0", etOriginalAmount.getText().toString().trim(), refundReason); +// String originalAmountStr = etOriginalAmount.getText().toString().trim(); +// String refundAmountStr = etRefundAmount.getText().toString().trim(); + + QRRefund qrRefund = new QRRefund(referenceNo, refundAmountStr, originalRefundAmount, refundReason); kPayViewModel.setQrRefund(qrRefund); } sharedViewModel.transactionsType.setValue(TransactionsType.MMQR_REFUND); kPayViewModel.setPayDetail(payDetail); +// sharedViewModel.amount.setValue(refundAmountStr); routeId = R.id.action_qrRefundDetail_inputPasswordFragment; safeNavigateToRouteId(); } diff --git a/app/src/main/java/com/utsmm/kbz/ui/qr_pay/QRRefundProcessFragment.java b/app/src/main/java/com/utsmm/kbz/ui/qr_pay/QRRefundProcessFragment.java index 2a8a6c8..ecc0852 100644 --- a/app/src/main/java/com/utsmm/kbz/ui/qr_pay/QRRefundProcessFragment.java +++ b/app/src/main/java/com/utsmm/kbz/ui/qr_pay/QRRefundProcessFragment.java @@ -127,7 +127,7 @@ public class QRRefundProcessFragment extends DataBindingFragment { .observeOn(AndroidSchedulers.mainThread()) .subscribe( response -> { - handleRefundResponse(response, referenceNo); + handleRefundResponse(response, referenceNo, originalAmount); }, throwable -> { LogUtil.e(TAG, "Refund error: " + throwable.getMessage()); @@ -141,14 +141,12 @@ public class QRRefundProcessFragment extends DataBindingFragment { refundDisposable.add(refundDi); } - private void handleRefundResponse(KPayRefund.RefundResponse response, String referenceNo) { + private void handleRefundResponse(KPayRefund.RefundResponse response, String referenceNo, String orgAmount) { if (response != null && response.getResponse() != null && "REFUND_SUCCESS".equalsIgnoreCase(response.getResponse().getRefundStatus())) { LogUtil.d(TAG, "Refund successful!"); String refundAmount = response.getResponse().getRefundAmount(); - Log.d(TAG, "refund amount -> " + refundAmount); long text = POSUtil.getInstance().convertAmount(refundAmount); - Log.d(TAG, "refund amount but long -> " + text); String dateTime = SystemDateTime.getTodayDateFormat() + " " + SystemDateTime.getTodayTimeFormat(); payDetail.setTC(response.getResponse().getRefundStatus()); @@ -185,6 +183,7 @@ public class QRRefundProcessFragment extends DataBindingFragment { if (response != null && response.getResponse() != null && response.getResponse().getMsg() != null) { errorMsg = response.getResponse().getMsg(); } + payDetail.setTradeResultDes(errorMsg); EReceiptRequest request = EReceiptUtil.getInstance().generateQRRefundReceipt( "0", @@ -196,7 +195,7 @@ public class QRRefundProcessFragment extends DataBindingFragment { TransResultStatus.FAIL ); sharedViewModel.pushReceipt(request); - + sharedViewModel.amount.setValue(orgAmount); sharedViewModel.payDetail.setValue(payDetail); navigateToNext(); }