From db39cfbcc9a57d4c4a38797a1eaddd7875821cbd Mon Sep 17 00:00:00 2001 From: Nilanjan Chakrabarti Date: Tue, 16 Sep 2025 12:11:57 +0530 Subject: [PATCH] Remarks Field in Transaction Page --- lib/data/models/imps_transaction.dart | 5 +++- lib/data/models/neft_transaction.dart | 5 +++- lib/data/models/rtgs_transaction.dart | 3 +++ lib/data/models/transfer.dart | 5 +++- lib/di/injection.dart | 4 ++-- .../screens/fund_transfer_amount_screen.dart | 11 +++++++++ .../quick_pay_outside_bank_screen.dart | 24 +++++++++++++++++++ .../screens/quick_pay_within_bank_screen.dart | 22 +++++++++++++++++ lib/main.dart | 14 +++++------ 9 files changed, 81 insertions(+), 12 deletions(-) diff --git a/lib/data/models/imps_transaction.dart b/lib/data/models/imps_transaction.dart index d731e17..15a3914 100644 --- a/lib/data/models/imps_transaction.dart +++ b/lib/data/models/imps_transaction.dart @@ -6,6 +6,7 @@ class ImpsTransaction { final String? remitterName; final String beneficiaryName; final String tpin; + final String? remarks; ImpsTransaction({ required this.fromAccount, @@ -14,7 +15,8 @@ class ImpsTransaction { required this.ifscCode, this.remitterName, required this.beneficiaryName, - required this.tpin, + required this.tpin, + this.remarks, }); Map toJson() { @@ -26,6 +28,7 @@ class ImpsTransaction { 'remitterName': remitterName, 'beneficiaryName': beneficiaryName, 'tpin': tpin, + 'remarks': remarks, }; } } diff --git a/lib/data/models/neft_transaction.dart b/lib/data/models/neft_transaction.dart index 1d4b8d3..6ffc6ff 100644 --- a/lib/data/models/neft_transaction.dart +++ b/lib/data/models/neft_transaction.dart @@ -6,6 +6,7 @@ class NeftTransaction { final String remitterName; final String beneficiaryName; final String tpin; + final String? remarks; NeftTransaction({ required this.fromAccount, @@ -14,7 +15,8 @@ class NeftTransaction { required this.ifscCode, required this.remitterName, required this.beneficiaryName, - required this.tpin, + required this.tpin, + this.remarks, }); Map toJson() { @@ -26,6 +28,7 @@ class NeftTransaction { 'remitterName': remitterName, 'beneficiaryName': beneficiaryName, 'tpin': tpin, + 'remarks': remarks, }; } } diff --git a/lib/data/models/rtgs_transaction.dart b/lib/data/models/rtgs_transaction.dart index 9539eac..1a47c8f 100644 --- a/lib/data/models/rtgs_transaction.dart +++ b/lib/data/models/rtgs_transaction.dart @@ -6,6 +6,7 @@ class RtgsTransaction { final String remitterName; final String beneficiaryName; final String tpin; + final String? remarks; RtgsTransaction({ required this.fromAccount, @@ -15,6 +16,7 @@ class RtgsTransaction { required this.remitterName, required this.beneficiaryName, required this.tpin, + this.remarks, }); Map toJson() { @@ -26,6 +28,7 @@ class RtgsTransaction { 'remitterName': remitterName, 'beneficiaryName': beneficiaryName, 'tpin': tpin, + 'remarks': remarks, }; } } diff --git a/lib/data/models/transfer.dart b/lib/data/models/transfer.dart index ff525a9..766c9c5 100644 --- a/lib/data/models/transfer.dart +++ b/lib/data/models/transfer.dart @@ -4,13 +4,15 @@ class Transfer { final String toAccountType; final String amount; String? tpin; + String? remarks; Transfer({ required this.fromAccount, required this.toAccount, required this.toAccountType, required this.amount, - this.tpin, + this.tpin, + this.remarks, }); Map toJson() { @@ -20,6 +22,7 @@ class Transfer { 'toAccountType': toAccountType, 'amount': amount, 'tpin': tpin, + 'remarks': remarks, }; } } diff --git a/lib/di/injection.dart b/lib/di/injection.dart index c334e5c..ee07bfc 100644 --- a/lib/di/injection.dart +++ b/lib/di/injection.dart @@ -65,8 +65,8 @@ Dio _createDioClient() { final dio = Dio( BaseOptions( baseUrl: - //'http://lb-test-mobile-banking-app-192209417.ap-south-1.elb.amazonaws.com:8080', //test - 'http://lb-kccb-mobile-banking-app-848675342.ap-south-1.elb.amazonaws.com', //prod + 'http://lb-test-mobile-banking-app-192209417.ap-south-1.elb.amazonaws.com:8080', //test + //'http://lb-kccb-mobile-banking-app-848675342.ap-south-1.elb.amazonaws.com', //prod connectTimeout: const Duration(seconds: 60), receiveTimeout: const Duration(seconds: 60), 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 4e45f1c..dafbc78 100644 --- a/lib/features/fund_transfer/screens/fund_transfer_amount_screen.dart +++ b/lib/features/fund_transfer/screens/fund_transfer_amount_screen.dart @@ -41,12 +41,14 @@ class FundTransferAmountScreen extends StatefulWidget { class _FundTransferAmountScreenState extends State { final _amountController = TextEditingController(); + final _remarksController = TextEditingController(); final _formKey = GlobalKey(); TransactionMode _selectedMode = TransactionMode.neft; @override void dispose() { _amountController.dispose(); + _remarksController.dispose(); super.dispose(); } @@ -396,6 +398,15 @@ class _FundTransferAmountScreenState extends State { ), const SizedBox(height: 24), ], + //Remarks + TextFormField( + controller: _remarksController, + decoration: const InputDecoration( + labelText: 'Remarks (Optional)', + border: OutlineInputBorder(), + ), + ), + const SizedBox(height: 24), // Amount TextFormField( controller: _amountController, diff --git a/lib/features/quick_pay/screens/quick_pay_outside_bank_screen.dart b/lib/features/quick_pay/screens/quick_pay_outside_bank_screen.dart index 63fc596..63ec611 100644 --- a/lib/features/quick_pay/screens/quick_pay_outside_bank_screen.dart +++ b/lib/features/quick_pay/screens/quick_pay_outside_bank_screen.dart @@ -38,6 +38,7 @@ class _QuickPayOutsideBankScreen extends State { final ifscController = TextEditingController(); final phoneController = TextEditingController(); final amountController = TextEditingController(); + final remarksController = TextEditingController(); final service = getIt(); late String accountType; @@ -136,6 +137,7 @@ class _QuickPayOutsideBankScreen extends State { ifscController.dispose(); phoneController.dispose(); amountController.dispose(); + remarksController.dispose(); super.dispose(); } @@ -188,6 +190,7 @@ class _QuickPayOutsideBankScreen extends State { remitterName: "Unknown", beneficiaryName: nameController.text, tpin: tpin, + remarks: remarksController.text, ); final neftService = getIt(); final completer = Completer(); @@ -253,6 +256,7 @@ class _QuickPayOutsideBankScreen extends State { remitterName: "Unknown", beneficiaryName: nameController.text, tpin: tpin, + remarks: remarksController.text, ); final impsService = getIt(); final completer = Completer(); @@ -312,6 +316,7 @@ class _QuickPayOutsideBankScreen extends State { remitterName: "Unknown", beneficiaryName: nameController.text, tpin: tpin, + remarks: remarksController.text, ); final rtgsService = getIt(); final completer = Completer(); @@ -667,6 +672,25 @@ class _QuickPayOutsideBankScreen extends State { return null; }, ), + const SizedBox(height: 25), + TextFormField( + controller: remarksController, + decoration: InputDecoration( + labelText: 'Remarks (Optional)', + border: const OutlineInputBorder(), + isDense: true, + filled: true, + fillColor: Theme.of(context).scaffoldBackgroundColor, + enabledBorder: OutlineInputBorder( + borderSide: BorderSide( + color: Theme.of(context).colorScheme.outline), + ), + focusedBorder: OutlineInputBorder( + borderSide: BorderSide( + color: Theme.of(context).colorScheme.primary, width: 2), + ), + ), + ), const SizedBox(height: 25), Row( children: [ diff --git a/lib/features/quick_pay/screens/quick_pay_within_bank_screen.dart b/lib/features/quick_pay/screens/quick_pay_within_bank_screen.dart index 902bfa4..b16621c 100644 --- a/lib/features/quick_pay/screens/quick_pay_within_bank_screen.dart +++ b/lib/features/quick_pay/screens/quick_pay_within_bank_screen.dart @@ -24,6 +24,7 @@ class _QuickPayWithinBankScreen extends State { final TextEditingController confirmAccountNumberController = TextEditingController(); final TextEditingController amountController = TextEditingController(); + final TextEditingController remarksController = TextEditingController(); String? _selectedAccountType; String? _beneficiaryName; @@ -57,6 +58,7 @@ class _QuickPayWithinBankScreen extends State { accountNumberController.dispose(); confirmAccountNumberController.dispose(); amountController.dispose(); + remarksController.dispose(); super.dispose(); } @@ -276,6 +278,25 @@ class _QuickPayWithinBankScreen extends State { }, ), const SizedBox(height: 25), +TextFormField( + controller: remarksController, + decoration: InputDecoration( + labelText: 'Remarks (Optional)', + border: const OutlineInputBorder(), + isDense: true, + filled: true, + fillColor: Theme.of(context).scaffoldBackgroundColor, + enabledBorder: OutlineInputBorder( + borderSide: BorderSide( + color: Theme.of(context).colorScheme.outline), + ), + focusedBorder: OutlineInputBorder( + borderSide: BorderSide( + color: Theme.of(context).colorScheme.primary, width: 2), + ), + ), +), + const SizedBox(height: 25), TextFormField( decoration: InputDecoration( labelText: AppLocalizations.of(context).amount, @@ -343,6 +364,7 @@ class _QuickPayWithinBankScreen extends State { toAccountType: _selectedAccountType!, amount: amountController.text, tpin: tpin, + remarks: remarksController.text, ); final paymentService = getIt(); diff --git a/lib/main.dart b/lib/main.dart index ad4c61c..a62f353 100644 --- a/lib/main.dart +++ b/lib/main.dart @@ -17,13 +17,13 @@ void main() async { ]); // Check for device compromise - final compromisedMessage = await SecurityService.deviceCompromisedMessage; - if (compromisedMessage != null) { - runApp(MaterialApp( - home: SecurityErrorScreen(message: compromisedMessage), - )); - return; - } + // final compromisedMessage = await SecurityService.deviceCompromisedMessage; + // if (compromisedMessage != null) { + // runApp(MaterialApp( + // home: SecurityErrorScreen(message: compromisedMessage), + // )); + // return; + // } // Initialize dependencies await setupDependencies();