From c792b2201340538d2be5956896b86bc0aea5bb73 Mon Sep 17 00:00:00 2001 From: Aditya Narayan Malik Date: Tue, 17 Jun 2025 16:38:29 +0530 Subject: [PATCH] NTP-70581 | Account not found in collect request approve decline issue fix (#16439) --- .../common/sendmoney/ui/SendMoneyScreen.kt | 2 ++ .../sendmoney/viewmodel/SendMoneyViewModel.kt | 31 +++++++++++++++++++ .../com/navi/pay/utils/NaviPayConstants.kt | 1 + .../navi-pay/src/main/res/values/strings.xml | 2 ++ 4 files changed, 36 insertions(+) diff --git a/android/navi-pay/src/main/kotlin/com/navi/pay/management/common/sendmoney/ui/SendMoneyScreen.kt b/android/navi-pay/src/main/kotlin/com/navi/pay/management/common/sendmoney/ui/SendMoneyScreen.kt index b7592bc098..baa654002f 100644 --- a/android/navi-pay/src/main/kotlin/com/navi/pay/management/common/sendmoney/ui/SendMoneyScreen.kt +++ b/android/navi-pay/src/main/kotlin/com/navi/pay/management/common/sendmoney/ui/SendMoneyScreen.kt @@ -94,6 +94,7 @@ import com.navi.pay.management.common.sendmoney.ui.transaction.ledger.TxnLedgerS import com.navi.pay.management.common.sendmoney.util.SendMoneyBottomSheetType import com.navi.pay.management.common.sendmoney.viewmodel.SendMoneyViewModel import com.navi.pay.management.transactionhistory.model.view.TransactionEntity +import com.navi.pay.utils.BANK_ACCOUNT_NOT_PRESENT import com.navi.pay.utils.COLLECT_REQUEST_ERROR import com.navi.pay.utils.INTENT_OR_SCAN_PAY_TRANSACTION_ERROR import com.navi.pay.utils.INVALID_VPA @@ -290,6 +291,7 @@ fun SendMoneyScreen( } } + BANK_ACCOUNT_NOT_PRESENT, INTENT_OR_SCAN_PAY_TRANSACTION_ERROR, INVALID_VPA, PSP_DOWN -> { diff --git a/android/navi-pay/src/main/kotlin/com/navi/pay/management/common/sendmoney/viewmodel/SendMoneyViewModel.kt b/android/navi-pay/src/main/kotlin/com/navi/pay/management/common/sendmoney/viewmodel/SendMoneyViewModel.kt index 766856324d..9459aa519e 100644 --- a/android/navi-pay/src/main/kotlin/com/navi/pay/management/common/sendmoney/viewmodel/SendMoneyViewModel.kt +++ b/android/navi-pay/src/main/kotlin/com/navi/pay/management/common/sendmoney/viewmodel/SendMoneyViewModel.kt @@ -204,6 +204,7 @@ import com.navi.pay.utils.AMOUNT_MAX_LENGTH_BEFORE_DECIMAL import com.navi.pay.utils.AMOUNT_MAX_LENGTH_BEFORE_DECIMAL_RCC import com.navi.pay.utils.AMOUNT_MAX_LENGTH_RCC import com.navi.pay.utils.AT_THE_RATE_CHAR +import com.navi.pay.utils.BANK_ACCOUNT_NOT_PRESENT import com.navi.pay.utils.COLLECT_REQUEST_ERROR import com.navi.pay.utils.CREDIT_CARD_AND_SAVINGS_ONLY_ENABLED_ACCOUNTS import com.navi.pay.utils.CREDIT_LINE_AND_SAVINGS_ONLY_ENABLED_ACCOUNTS @@ -1850,6 +1851,36 @@ constructor( // 2nd preference is for eligible account as per source VPA val bankAccountForSourceVpa = getEligibleBankAccountAsPerSourceVpa() + if (bankAccountForSourceVpa == null && source is SendMoneyScreenSource.CollectRequest) { + notifyError( + errorConfig = + NaviPayErrorConfig( + iconResId = CommonR.drawable.ic_exclamation_red_border, + title = + resourceProvider.getString( + resId = R.string.np_bank_acc_not_present_title + ), + description = + resourceProvider.getString( + resId = R.string.np_bank_acc_not_present_desc + ), + buttonConfigs = + listOf( + NaviPayErrorButtonConfig( + text = + resourceProvider.getString(resId = R.string.np_okay_got_it), + type = NaviPayButtonTheme.Primary, + action = NaviPayButtonAction.Dismiss, + ) + ), + cancelable = false, + code = BANK_ACCOUNT_NOT_PRESENT, + tag = BANK_ACCOUNT_NOT_PRESENT, + ) + ) + return + } + if (bankAccountForSourceVpa != null) { updateSelectedBankAccountAndHandleConfee(selectedBankAccount = bankAccountForSourceVpa) return diff --git a/android/navi-pay/src/main/kotlin/com/navi/pay/utils/NaviPayConstants.kt b/android/navi-pay/src/main/kotlin/com/navi/pay/utils/NaviPayConstants.kt index cee72de8c5..8ad23c17a2 100644 --- a/android/navi-pay/src/main/kotlin/com/navi/pay/utils/NaviPayConstants.kt +++ b/android/navi-pay/src/main/kotlin/com/navi/pay/utils/NaviPayConstants.kt @@ -362,6 +362,7 @@ const val COLLECT_REQUEST_ERROR = "collectRequestError" const val INTENT_OR_SCAN_PAY_TRANSACTION_ERROR = "intentOrScanPayTransactionError" const val QR_ERROR = "invalidQrError" const val PSP_DOWN = "pspDown" +const val BANK_ACCOUNT_NOT_PRESENT = "bankAccountNotPresent" const val REDIRECT_TO_HOME = "REDIRECT_TO_HOME" const val EXTERNAL_VPA_FETCH_ERROR = "externalVpaFetchError" const val PSP_TYPE = "pspType" diff --git a/android/navi-pay/src/main/res/values/strings.xml b/android/navi-pay/src/main/res/values/strings.xml index 67780b241a..d3e9aa9651 100644 --- a/android/navi-pay/src/main/res/values/strings.xml +++ b/android/navi-pay/src/main/res/values/strings.xml @@ -1164,4 +1164,6 @@ Forgot? Reset UPI PIN No app available to open PDF There’s no app on your device that can open PDF files right now. You can still view the file by going to your phone’s Download folder. + Account used for this payment is no longer linked to Navi UPI + The account was removed from the Navi UPI and cannot be used to make payment. \ No newline at end of file