PM Scheme craete done

This commit is contained in:
2026-02-27 17:13:02 +05:30
parent e12a73c564
commit 08191a8f89
9 changed files with 505 additions and 38 deletions

View File

@@ -30,6 +30,8 @@ class _PositivePayScreenState extends State<PositivePayScreen> {
final _amountController = TextEditingController();
final _payeeController = TextEditingController();
final _chequeService = getIt<ChequeService>();
String? _ciFromCheque;
String? _ciToCheque;
@override
void initState() {
@@ -53,6 +55,53 @@ class _PositivePayScreenState extends State<PositivePayScreen> {
_selectedAccount = _filteredUsers.first;
}
}
_loadChequeDetails();
}
Future<void> _loadChequeDetails() async {
if (_selectedAccount == null) return;
String instrType;
switch (_selectedAccount!.accountType) {
case 'SA':
case 'SB':
instrType = '10';
break;
case 'CA':
instrType = '11';
break;
case 'CC':
instrType = '13';
break;
default:
instrType = '10';
}
try {
final data = await _chequeService.ChequeEnquiry(
accountNumber: _selectedAccount!.accountNo!,
instrType: instrType,
);
final ciCheque = data.where((cheque) => cheque.type == 'CI').toList();
if (mounted) {
setState(() {
if (ciCheque.isNotEmpty) {
_ciFromCheque = ciCheque.first.fromCheque;
_ciToCheque = ciCheque.first.toCheque;
} else {
_ciFromCheque = null;
_ciToCheque = null;
}
});
}
} catch (e) {
if (mounted) {
setState(() {
_ciFromCheque = null;
_ciToCheque = null;
});
}
}
}
@override
@@ -123,6 +172,7 @@ Future<void> _showResponseDialog(String title, String message) async {
onChanged: (User? newUser) {
setState(() {
_selectedAccount = newUser;
_loadChequeDetails();
});
},
validator: (value) {
@@ -138,12 +188,25 @@ Future<void> _showResponseDialog(String title, String message) async {
decoration: InputDecoration(
labelText: AppLocalizations.of(context).chequeNumberLabel,
border: const OutlineInputBorder(),
errorMaxLines: 2,
),
keyboardType: TextInputType.number,
validator: (value) {
if (value == null || value.isEmpty) {
return AppLocalizations.of(context).pleaseEnterChequeNumber;
}
final chequeNumber = int.tryParse(value);
final fromCheque = int.tryParse(_ciFromCheque ?? '');
final toCheque = int.tryParse(_ciToCheque ?? '');
if (chequeNumber == null) {
return AppLocalizations.of(context).invalidChequeNumberFormatError;
}
if (fromCheque != null && toCheque != null) {
if (chequeNumber < fromCheque || chequeNumber > toCheque) {
return AppLocalizations.of(context).chequeNumberRangeError(
_ciFromCheque!, _ciToCheque!);
}
}
return null;
},
),