From b0610ad84d358126b2564a95f3998b23d7156087 Mon Sep 17 00:00:00 2001 From: Nilanjan Chakrabarti Date: Wed, 27 Aug 2025 16:08:47 +0530 Subject: [PATCH] Beneficiary Validation Changes --- .../screens/add_beneficiary_screen.dart | 10 ++++- .../screens/fund_transfer_amount_screen.dart | 38 ++++++++++++++++++- .../fund_transfer_beneficiary_screen.dart | 1 + lib/widgets/bank_logos.dart | 2 +- 4 files changed, 47 insertions(+), 4 deletions(-) diff --git a/lib/features/beneficiaries/screens/add_beneficiary_screen.dart b/lib/features/beneficiaries/screens/add_beneficiary_screen.dart index 7bcb9ff..d51ad71 100644 --- a/lib/features/beneficiaries/screens/add_beneficiary_screen.dart +++ b/lib/features/beneficiaries/screens/add_beneficiary_screen.dart @@ -87,11 +87,19 @@ class _AddBeneficiaryScreen extends State { final service = getIt(); try { - final String beneficiaryName = await service.validateBeneficiary( + + String beneficiaryName; + if(ifsc.toLowerCase().contains('kace')){ + beneficiaryName = await service.validateBeneficiaryWithinBank(accountNo); + } + + else{ + beneficiaryName = await service.validateBeneficiary( accountNo: accountNo, ifscCode: ifsc, remitterName: remitter, ); + } setState(() { nameController.text = beneficiaryName; diff --git a/lib/features/fund_transfer/screens/fund_transfer_amount_screen.dart b/lib/features/fund_transfer/screens/fund_transfer_amount_screen.dart index 3f8a664..e0ad65b 100644 --- a/lib/features/fund_transfer/screens/fund_transfer_amount_screen.dart +++ b/lib/features/fund_transfer/screens/fund_transfer_amount_screen.dart @@ -16,6 +16,8 @@ import 'package:kmobile/di/injection.dart'; import 'package:kmobile/features/fund_transfer/screens/payment_animation.dart'; import 'package:kmobile/features/fund_transfer/screens/transaction_pin_screen.dart'; import '../../../l10n/app_localizations.dart'; +import 'package:kmobile/api/services/payment_service.dart'; +import 'package:kmobile/data/models/transfer.dart'; enum TransactionMode { neft, rtgs, imps } @@ -23,12 +25,14 @@ class FundTransferAmountScreen extends StatefulWidget { final String debitAccountNo; final Beneficiary creditBeneficiary; final String remitterName; + final bool isOwnBank; const FundTransferAmountScreen({ super.key, required this.debitAccountNo, required this.creditBeneficiary, required this.remitterName, + this.isOwnBank = false, }); @override @@ -50,7 +54,35 @@ class _FundTransferAmountScreenState extends State { void _onProceed() { if (_formKey.currentState!.validate()) { final amount = double.tryParse(_amountController.text) ?? 0; - + if (widget.isOwnBank) { + Navigator.push( + context, + MaterialPageRoute( + builder: (context) => TransactionPinScreen( + onPinCompleted: (pinScreenContext, tpin) async { + final transfer = Transfer( + fromAccount: widget.debitAccountNo, + toAccount: widget.creditBeneficiary.accountNo, + toAccountType: 'Savings', // Assuming 'SB' for savings + amount: _amountController.text, + tpin: tpin, + ); + + final paymentService = getIt(); + final paymentResponseFuture = + paymentService.processQuickPayWithinBank(transfer); + + Navigator.of(pinScreenContext).pushReplacement( + MaterialPageRoute( + builder: (_) => PaymentAnimationScreen( + paymentResponse: paymentResponseFuture), + ), + ); + }, + ), + ), + ); + } else { if (_selectedMode == TransactionMode.rtgs && amount < 200000) { showDialog( context: context, @@ -278,6 +310,7 @@ class _FundTransferAmountScreenState extends State { ); } } + } @override Widget build(BuildContext context) { @@ -329,6 +362,7 @@ class _FundTransferAmountScreenState extends State { ), const SizedBox(height: 24), + if (!widget.isOwnBank) ...[ // Transaction Mode Selection Text( AppLocalizations.of(context).selectTransactionType, @@ -381,7 +415,7 @@ class _FundTransferAmountScreenState extends State { ), ), const SizedBox(height: 24), - + ], // Amount TextFormField( controller: _amountController, diff --git a/lib/features/fund_transfer/screens/fund_transfer_beneficiary_screen.dart b/lib/features/fund_transfer/screens/fund_transfer_beneficiary_screen.dart index c61239d..9597d19 100644 --- a/lib/features/fund_transfer/screens/fund_transfer_beneficiary_screen.dart +++ b/lib/features/fund_transfer/screens/fund_transfer_beneficiary_screen.dart @@ -109,6 +109,7 @@ class _FundTransferBeneficiaryScreenState debitAccountNo: widget.creditAccountNo, creditBeneficiary: beneficiary, remitterName: widget.remitterName, + isOwnBank: widget.isOwnBank, ), ), ); diff --git a/lib/widgets/bank_logos.dart b/lib/widgets/bank_logos.dart index fd4054e..30661a5 100644 --- a/lib/widgets/bank_logos.dart +++ b/lib/widgets/bank_logos.dart @@ -10,7 +10,7 @@ Widget getBankLogo(String? bankName) { } if (bankName != null && bankName.toLowerCase().contains('kangra central')) { return Image.asset( - 'assets/images/icon.png', + 'assets/images/logo.png', width: 40, height: 40, );