APY integrated without testing...
This commit is contained in:
@@ -15,30 +15,54 @@ class _PMSBYScreenState extends State<PMSBYScreen> {
|
||||
final _formKey = GlobalKey<FormState>();
|
||||
|
||||
// Controllers for all requested fields
|
||||
late final _aadhaarController = TextEditingController(text: widget.initialData?['aadharno']?.toString());
|
||||
late final _accountNoController = TextEditingController(text: widget.initialData?['accountno']?.toString());
|
||||
late final _balanceController = TextEditingController(text: widget.initialData?['availablebalance']?.toString());
|
||||
late final _countryController = TextEditingController(text: widget.initialData?['country']?.toString() ?? 'IN');
|
||||
late final _dobController = TextEditingController(text: widget.initialData?['customerdob']?.toString());
|
||||
late final _nameController = TextEditingController(text: widget.initialData?['customername']?.toString());
|
||||
late final _customerNoController = TextEditingController(text: widget.initialData?['customerno']?.toString());
|
||||
late final _acctOpeningDateController = TextEditingController(text: widget.initialData?['dateofacctopening']?.toString());
|
||||
late final _emailController = TextEditingController(text: widget.initialData?['emailid']?.toString());
|
||||
late final _financialYearController = TextEditingController(text: widget.initialData?['financialyear']?.toString());
|
||||
late final _genderController = TextEditingController(text: widget.initialData?['gender']?.toString());
|
||||
late final _ifscController = TextEditingController(text: widget.initialData?['ifsccode']?.toString());
|
||||
late final _marriedController = TextEditingController(text: widget.initialData?['married']?.toString());
|
||||
late final _mobileController = TextEditingController(text: widget.initialData?['mobileno']?.toString());
|
||||
late final _panController = TextEditingController(text: widget.initialData?['pan']?.toString());
|
||||
late final _pincodeController = TextEditingController(text: widget.initialData?['pincode']?.toString());
|
||||
late final _policyNumberController = TextEditingController(text: widget.initialData?['policyno']?.toString());
|
||||
late final _premiumAmountController = TextEditingController(text: widget.initialData?['premiumamount']?.toString());
|
||||
late final _stateController = TextEditingController(text: widget.initialData?['state']?.toString());
|
||||
late final _address1Controller = TextEditingController(text: widget.initialData?['address1']?.toString());
|
||||
late final _address2Controller = TextEditingController(text: widget.initialData?['address2']?.toString());
|
||||
late final _cityController = TextEditingController(text: widget.initialData?['city']?.toString());
|
||||
late final _relationWithNomineeController = TextEditingController(text: widget.initialData?['relationwithnominee']?.toString());
|
||||
late final _policyStatusController = TextEditingController(text: widget.initialData?['policystatus']?.toString());
|
||||
late final _aadhaarController =
|
||||
TextEditingController(text: widget.initialData?['aadharno']?.toString());
|
||||
late final _accountNoController =
|
||||
TextEditingController(text: widget.initialData?['accountno']?.toString());
|
||||
late final _balanceController = TextEditingController(
|
||||
text: widget.initialData?['availablebalance']?.toString());
|
||||
late final _countryController = TextEditingController(
|
||||
text: widget.initialData?['country']?.toString() ?? 'IN');
|
||||
late final _dobController = TextEditingController(
|
||||
text: widget.initialData?['customerdob']?.toString());
|
||||
late final _nameController = TextEditingController(
|
||||
text: widget.initialData?['customername']?.toString());
|
||||
late final _customerNoController = TextEditingController(
|
||||
text: widget.initialData?['customerno']?.toString());
|
||||
late final _acctOpeningDateController = TextEditingController(
|
||||
text: widget.initialData?['dateofacctopening']?.toString());
|
||||
late final _emailController =
|
||||
TextEditingController(text: widget.initialData?['emailid']?.toString());
|
||||
late final _financialYearController = TextEditingController(
|
||||
text: widget.initialData?['financialyear']?.toString());
|
||||
late final _genderController =
|
||||
TextEditingController(text: widget.initialData?['gender']?.toString());
|
||||
late final _ifscController =
|
||||
TextEditingController(text: widget.initialData?['ifsccode']?.toString());
|
||||
late final _marriedController =
|
||||
TextEditingController(text: widget.initialData?['married']?.toString());
|
||||
late final _mobileController =
|
||||
TextEditingController(text: widget.initialData?['mobileno']?.toString());
|
||||
late final _panController =
|
||||
TextEditingController(text: widget.initialData?['pan']?.toString());
|
||||
late final _pincodeController =
|
||||
TextEditingController(text: widget.initialData?['pincode']?.toString());
|
||||
late final _policyNumberController =
|
||||
TextEditingController(text: widget.initialData?['policyno']?.toString());
|
||||
late final _premiumAmountController = TextEditingController(
|
||||
text: widget.initialData?['premiumamount']?.toString());
|
||||
late final _stateController =
|
||||
TextEditingController(text: widget.initialData?['state']?.toString());
|
||||
late final _address1Controller =
|
||||
TextEditingController(text: widget.initialData?['address1']?.toString());
|
||||
late final _address2Controller =
|
||||
TextEditingController(text: widget.initialData?['address2']?.toString());
|
||||
late final _cityController =
|
||||
TextEditingController(text: widget.initialData?['city']?.toString());
|
||||
late final _relationWithNomineeController = TextEditingController(
|
||||
text: widget.initialData?['relationwithnominee']?.toString());
|
||||
late final _policyStatusController = TextEditingController(
|
||||
text: widget.initialData?['policystatus']?.toString());
|
||||
|
||||
// Mapping options
|
||||
final Map<String, String> _healthStatusOptions = {
|
||||
@@ -95,16 +119,20 @@ class _PMSBYScreenState extends State<PMSBYScreen> {
|
||||
// Initialize dropdown controllers if data exists in initialData
|
||||
if (widget.initialData != null) {
|
||||
if (widget.initialData!.containsKey('ruralcategory')) {
|
||||
_ruralCategoryController.text = widget.initialData!['ruralcategory'].toString();
|
||||
_ruralCategoryController.text =
|
||||
widget.initialData!['ruralcategory'].toString();
|
||||
}
|
||||
if (widget.initialData!.containsKey('healthstatus')) {
|
||||
_healthStatusController.text = widget.initialData!['healthstatus'].toString();
|
||||
_healthStatusController.text =
|
||||
widget.initialData!['healthstatus'].toString();
|
||||
}
|
||||
if (widget.initialData!.containsKey('relationwithnominee')) {
|
||||
_nomineeRelationshipController.text = widget.initialData!['relationwithnominee'].toString();
|
||||
_nomineeRelationshipController.text =
|
||||
widget.initialData!['relationwithnominee'].toString();
|
||||
}
|
||||
if (widget.initialData!.containsKey('nomineeminor')) {
|
||||
_nomineeMinorController.text = widget.initialData!['nomineeminor'].toString();
|
||||
_nomineeMinorController.text =
|
||||
widget.initialData!['nomineeminor'].toString();
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -146,9 +174,9 @@ class _PMSBYScreenState extends State<PMSBYScreen> {
|
||||
}
|
||||
|
||||
bool _isFetched(String key) {
|
||||
return widget.initialData != null &&
|
||||
widget.initialData!.containsKey(key) &&
|
||||
widget.initialData![key]?.toString().isNotEmpty == true;
|
||||
return widget.initialData != null &&
|
||||
widget.initialData!.containsKey(key) &&
|
||||
widget.initialData![key]?.toString().isNotEmpty == true;
|
||||
}
|
||||
|
||||
Future<void> _handleRegister() async {
|
||||
@@ -192,8 +220,8 @@ class _PMSBYScreenState extends State<PMSBYScreen> {
|
||||
policystatus: _policyStatusController.text,
|
||||
);
|
||||
String x = response.toString();
|
||||
if(x.contains('RECORD ALREADY EXISTS')){
|
||||
x= l10n.recordAlreadyExists;
|
||||
if (x.contains('RECORD ALREADY EXISTS')) {
|
||||
x = l10n.recordAlreadyExists;
|
||||
}
|
||||
|
||||
if (mounted) {
|
||||
@@ -241,43 +269,87 @@ class _PMSBYScreenState extends State<PMSBYScreen> {
|
||||
child: Column(
|
||||
crossAxisAlignment: CrossAxisAlignment.stretch,
|
||||
children: [
|
||||
_buildTextField(_nameController, l10n.customerName, readOnly: _isFetched('customername')),
|
||||
_buildTextField(_customerNoController, l10n.customerNo, readOnly: _isFetched('customerno')),
|
||||
_buildTextField(_accountNoController, l10n.accountNumber, keyboardType: TextInputType.number, readOnly: _isFetched('accountno')),
|
||||
_buildTextField(_balanceController, l10n.availableBalance, keyboardType: TextInputType.number, readOnly: _isFetched('availablebalance')),
|
||||
_buildTextField(_aadhaarController, l10n.aadhaarNo, keyboardType: TextInputType.number, readOnly: _isFetched('aadharno')),
|
||||
_buildTextField(_dobController, l10n.customerDobFormat, readOnly: _isFetched('customerdob')),
|
||||
_buildTextField(_genderController, l10n.gender, readOnly: _isFetched('gender')),
|
||||
_buildTextField(_marriedController, l10n.marriedYesNo, readOnly: _isFetched('married')),
|
||||
_buildTextField(_mobileController, l10n.mobileNumber, keyboardType: TextInputType.phone, readOnly: _isFetched('mobileno')),
|
||||
_buildTextField(_emailController, 'Email ID', keyboardType: TextInputType.emailAddress, readOnly: _isFetched('emailid')),
|
||||
_buildTextField(_address1Controller, l10n.address1, readOnly: _isFetched('address1')),
|
||||
_buildTextField(_address2Controller, l10n.address2, readOnly: _isFetched('address2')),
|
||||
_buildTextField(_cityController, l10n.city, readOnly: _isFetched('city')),
|
||||
_buildTextField(_panController, l10n.pan, readOnly: _isFetched('pan')),
|
||||
_buildTextField(_ifscController, l10n.ifscCode, readOnly: _isFetched('ifsccode')),
|
||||
_buildTextField(_acctOpeningDateController, l10n.dateOfAcctOpening, readOnly: _isFetched('dateofacctopening')),
|
||||
_buildTextField(_pincodeController, l10n.pincode, keyboardType: TextInputType.number, readOnly: _isFetched('pincode')),
|
||||
_buildTextField(_stateController, l10n.state, readOnly: _isFetched('state')),
|
||||
_buildTextField(_countryController, l10n.country, readOnly: _isFetched('country')),
|
||||
_buildDropdownField(_ruralCategoryController, l10n.ruralCategory, _ruralOptions, readOnly: _isFetched('ruralcategory')),
|
||||
_buildTextField(_nameController, l10n.customerName,
|
||||
readOnly: _isFetched('customername')),
|
||||
_buildTextField(_customerNoController, l10n.customerNo,
|
||||
readOnly: _isFetched('customerno')),
|
||||
_buildTextField(_accountNoController, l10n.accountNumber,
|
||||
keyboardType: TextInputType.number,
|
||||
readOnly: _isFetched('accountno')),
|
||||
_buildTextField(_balanceController, l10n.availableBalance,
|
||||
keyboardType: TextInputType.number,
|
||||
readOnly: _isFetched('availablebalance')),
|
||||
_buildTextField(_aadhaarController, l10n.aadhaarNo,
|
||||
keyboardType: TextInputType.number,
|
||||
readOnly: _isFetched('aadharno')),
|
||||
_buildTextField(_dobController, l10n.customerDobFormat,
|
||||
readOnly: _isFetched('customerdob')),
|
||||
_buildTextField(_genderController, l10n.gender,
|
||||
readOnly: _isFetched('gender')),
|
||||
_buildTextField(_marriedController, l10n.marriedYesNo,
|
||||
readOnly: _isFetched('married')),
|
||||
_buildTextField(_mobileController, l10n.mobileNumber,
|
||||
keyboardType: TextInputType.phone,
|
||||
readOnly: _isFetched('mobileno')),
|
||||
_buildTextField(_emailController, 'Email ID',
|
||||
keyboardType: TextInputType.emailAddress,
|
||||
readOnly: _isFetched('emailid')),
|
||||
_buildTextField(_address1Controller, l10n.address1,
|
||||
readOnly: _isFetched('address1')),
|
||||
_buildTextField(_address2Controller, l10n.address2,
|
||||
readOnly: _isFetched('address2')),
|
||||
_buildTextField(_cityController, l10n.city,
|
||||
readOnly: _isFetched('city')),
|
||||
_buildTextField(_panController, l10n.pan,
|
||||
readOnly: _isFetched('pan')),
|
||||
_buildTextField(_ifscController, l10n.ifscCode,
|
||||
readOnly: _isFetched('ifsccode')),
|
||||
_buildTextField(
|
||||
_acctOpeningDateController, l10n.dateOfAcctOpening,
|
||||
readOnly: _isFetched('dateofacctopening')),
|
||||
_buildTextField(_pincodeController, l10n.pincode,
|
||||
keyboardType: TextInputType.number,
|
||||
readOnly: _isFetched('pincode')),
|
||||
_buildTextField(_stateController, l10n.state,
|
||||
readOnly: _isFetched('state')),
|
||||
_buildTextField(_countryController, l10n.country,
|
||||
readOnly: _isFetched('country')),
|
||||
_buildDropdownField(
|
||||
_ruralCategoryController, l10n.ruralCategory, _ruralOptions,
|
||||
readOnly: _isFetched('ruralcategory')),
|
||||
const Divider(height: 32),
|
||||
Text(l10n.policyDetails, style: const TextStyle(fontSize: 18, fontWeight: FontWeight.bold)),
|
||||
Text(l10n.policyDetails,
|
||||
style: const TextStyle(
|
||||
fontSize: 18, fontWeight: FontWeight.bold)),
|
||||
const SizedBox(height: 16),
|
||||
_buildTextField(_policyNumberController, l10n.policyNumber, readOnly: _isFetched('policyno')),
|
||||
_buildTextField(_premiumAmountController, l10n.premiumAmount, keyboardType: TextInputType.number, readOnly: _isFetched('premiumamount')),
|
||||
_buildTextField(_financialYearController, l10n.financialYear, readOnly: _isFetched('financialyear')),
|
||||
_buildTextField(_policyStatusController, l10n.policyStatus, readOnly: _isFetched('policystatus')),
|
||||
_buildDropdownField(_healthStatusController, l10n.healthStatus, _healthStatusOptions),
|
||||
_buildTextField(_collectionChannelController, l10n.collectionChannel),
|
||||
_buildTextField(_policyNumberController, l10n.policyNumber,
|
||||
readOnly: _isFetched('policyno')),
|
||||
_buildTextField(_premiumAmountController, l10n.premiumAmount,
|
||||
keyboardType: TextInputType.number,
|
||||
readOnly: _isFetched('premiumamount')),
|
||||
_buildTextField(_financialYearController, l10n.financialYear,
|
||||
readOnly: _isFetched('financialyear')),
|
||||
_buildTextField(_policyStatusController, l10n.policyStatus,
|
||||
readOnly: _isFetched('policystatus')),
|
||||
_buildDropdownField(_healthStatusController, l10n.healthStatus,
|
||||
_healthStatusOptions),
|
||||
_buildTextField(
|
||||
_collectionChannelController, l10n.collectionChannel),
|
||||
const Divider(height: 32),
|
||||
Text(l10n.nomineeDetails, style: const TextStyle(fontSize: 18, fontWeight: FontWeight.bold)),
|
||||
Text(l10n.nomineeDetails,
|
||||
style: const TextStyle(
|
||||
fontSize: 18, fontWeight: FontWeight.bold)),
|
||||
const SizedBox(height: 16),
|
||||
_buildTextField(_nomineeNameController, l10n.nomineeName),
|
||||
_buildTextField(_nomineeAddressController, l10n.nomineeAddress),
|
||||
_buildDropdownField(_relationWithNomineeController, l10n.relationWithNominee, _relationshipOptions, readOnly: _isFetched('relationwithnominee')),
|
||||
_buildTextField(_nomineeRelationshipController, l10n.nomineeRelationship),
|
||||
_buildDropdownField(_nomineeMinorController, l10n.nomineeMinor, _minorOptions, readOnly: _isFetched('nomineeminor')),
|
||||
_buildDropdownField(_relationWithNomineeController,
|
||||
l10n.relationWithNominee, _relationshipOptions,
|
||||
readOnly: _isFetched('relationwithnominee')),
|
||||
_buildTextField(
|
||||
_nomineeRelationshipController, l10n.nomineeRelationship),
|
||||
_buildDropdownField(
|
||||
_nomineeMinorController, l10n.nomineeMinor, _minorOptions,
|
||||
readOnly: _isFetched('nomineeminor')),
|
||||
const SizedBox(height: 24),
|
||||
ElevatedButton(
|
||||
onPressed: _handleRegister,
|
||||
@@ -291,7 +363,8 @@ class _PMSBYScreenState extends State<PMSBYScreen> {
|
||||
),
|
||||
child: Text(
|
||||
l10n.register,
|
||||
style: const TextStyle(fontSize: 16, fontWeight: FontWeight.bold),
|
||||
style: const TextStyle(
|
||||
fontSize: 16, fontWeight: FontWeight.bold),
|
||||
),
|
||||
),
|
||||
const SizedBox(height: 32),
|
||||
@@ -302,25 +375,29 @@ class _PMSBYScreenState extends State<PMSBYScreen> {
|
||||
);
|
||||
}
|
||||
|
||||
Widget _buildDropdownField(
|
||||
TextEditingController controller, String label, Map<String, String> options,
|
||||
Widget _buildDropdownField(TextEditingController controller, String label,
|
||||
Map<String, String> options,
|
||||
{bool readOnly = false}) {
|
||||
// Determine current value
|
||||
String? currentValue = options.containsKey(controller.text) ? controller.text : null;
|
||||
String? currentValue =
|
||||
options.containsKey(controller.text) ? controller.text : null;
|
||||
|
||||
return Padding(
|
||||
padding: const EdgeInsets.only(bottom: 16.0),
|
||||
child: DropdownButtonFormField<String>(
|
||||
value: currentValue,
|
||||
onChanged: readOnly ? null : (newValue) {
|
||||
setState(() {
|
||||
controller.text = newValue ?? '';
|
||||
});
|
||||
},
|
||||
onChanged: readOnly
|
||||
? null
|
||||
: (newValue) {
|
||||
setState(() {
|
||||
controller.text = newValue ?? '';
|
||||
});
|
||||
},
|
||||
decoration: InputDecoration(
|
||||
labelText: label,
|
||||
border: const OutlineInputBorder(),
|
||||
contentPadding: const EdgeInsets.symmetric(vertical: 16, horizontal: 12),
|
||||
contentPadding:
|
||||
const EdgeInsets.symmetric(vertical: 16, horizontal: 12),
|
||||
),
|
||||
items: options.entries.map((entry) {
|
||||
return DropdownMenuItem<String>(
|
||||
@@ -332,7 +409,9 @@ class _PMSBYScreenState extends State<PMSBYScreen> {
|
||||
);
|
||||
}
|
||||
|
||||
Widget _buildTextField(TextEditingController controller, String label, {TextInputType keyboardType = TextInputType.text, bool readOnly = false}) {
|
||||
Widget _buildTextField(TextEditingController controller, String label,
|
||||
{TextInputType keyboardType = TextInputType.text,
|
||||
bool readOnly = false}) {
|
||||
return Padding(
|
||||
padding: const EdgeInsets.only(bottom: 16.0),
|
||||
child: TextFormField(
|
||||
@@ -341,7 +420,8 @@ class _PMSBYScreenState extends State<PMSBYScreen> {
|
||||
decoration: InputDecoration(
|
||||
labelText: label,
|
||||
border: const OutlineInputBorder(),
|
||||
contentPadding: const EdgeInsets.symmetric(vertical: 16, horizontal: 12),
|
||||
contentPadding:
|
||||
const EdgeInsets.symmetric(vertical: 16, horizontal: 12),
|
||||
),
|
||||
keyboardType: keyboardType,
|
||||
),
|
||||
|
||||
Reference in New Issue
Block a user