Commit b7f79d62 authored by Sai Srinivas's avatar Sai Srinivas
Browse files

30-06-2025 By Sai Srinivas

Finance And Common Module.
parent 1a2ae52a
class paymentRequestionBankDetailsResponse {
GetDetails? getDetails;
String? error;
String? message;
paymentRequestionBankDetailsResponse({this.getDetails, this.error, this.message});
paymentRequestionBankDetailsResponse.fromJson(Map<String, dynamic> json) {
getDetails = json['get_details'] != null
? new GetDetails.fromJson(json['get_details'])
: null;
error = json['error'];
message = json['message'];
}
Map<String, dynamic> toJson() {
final Map<String, dynamic> data = new Map<String, dynamic>();
if (this.getDetails != null) {
data['get_details'] = this.getDetails!.toJson();
}
data['error'] = this.error;
data['message'] = this.message;
return data;
}
}
class GetDetails {
String? id;
String? name;
String? bankName;
String? bankBranchName;
String? bankIfscCode;
String? bankAccountHolderName;
String? bankAccountNumber;
String? bankUpiId;
GetDetails(
{this.id,
this.name,
this.bankName,
this.bankBranchName,
this.bankIfscCode,
this.bankAccountHolderName,
this.bankAccountNumber,
this.bankUpiId});
GetDetails.fromJson(Map<String, dynamic> json) {
id = json['id'];
name = json['name'];
bankName = json['bank_name'];
bankBranchName = json['bank_branch_name'];
bankIfscCode = json['bank_ifsc_code'];
bankAccountHolderName = json['bank_account_holder_name'];
bankAccountNumber = json['bank_account_number'];
bankUpiId = json['bank_upi_id'];
}
Map<String, dynamic> toJson() {
final Map<String, dynamic> data = new Map<String, dynamic>();
data['id'] = this.id;
data['name'] = this.name;
data['bank_name'] = this.bankName;
data['bank_branch_name'] = this.bankBranchName;
data['bank_ifsc_code'] = this.bankIfscCode;
data['bank_account_holder_name'] = this.bankAccountHolderName;
data['bank_account_number'] = this.bankAccountNumber;
data['bank_upi_id'] = this.bankUpiId;
return data;
}
}
......@@ -338,21 +338,6 @@ class Accountslistprovider extends ChangeNotifier {
}
}
void checkAdditionalDetailsFilled() {
hasFilledAdditionalDetails = bankNameController.text.trim().isNotEmpty &&
branchNameController.text.trim().isNotEmpty &&
bankIfscCotroller.text.trim().isNotEmpty &&
bankHolderNameController.text.trim().isNotEmpty &&
bankAcNumberController.text.trim().isNotEmpty &&
bankUpiController.text.trim().isNotEmpty &&
contactPersonController.text.trim().isNotEmpty &&
contectPersonDesignationController.text.trim().isNotEmpty &&
contectPersonAltMobController.text.trim().isNotEmpty;
// && contectPersonTeleController.text.trim().isNotEmpty
// && contectPersonMailController.text.trim().isNotEmpty;
notifyListeners();
}
bool validatereceiptForm(BuildContext context) {
accountError = null;
nameError = null;
......@@ -386,86 +371,87 @@ class Accountslistprovider extends ChangeNotifier {
mobileError = "Please Enter Mobile Number";
isValid = false;
}
if (_selectedState == null || _selectedStateID!.isEmpty) {
stateError = "Please select a State";
isValid = false;
}
if (_selectedDistricts == null || _selectedDistrictID!.isEmpty) {
districtError = "Please select a District";
isValid = false;
}
if (_selectedSubLocations == null || _selectedSubLocID!.isEmpty) {
localityError = "Please select a Locality";
isValid = false;
}
if (addressController.text.trim().isEmpty) {
addressError = "Please Enter an Address";
isValid = false;
}
checkAdditionalDetailsFilled();
if (!_isVisible && !hasFilledAdditionalDetails) {
addMoreDetailsError = "Please Add More Details to Continue";
isValid = false;
}
if(_isVisible) {
if (bankNameController.text
.trim()
.isEmpty) {
banknameError = "Please Enter a Bank Name";
isValid = false;
}
if (branchNameController.text
.trim()
.isEmpty) {
bankBranchError = "Please Enter Branch Name";
isValid = false;
}
if (bankIfscCotroller.text
.trim()
.isEmpty) {
bankIFSCError = "Please Enter Bank IFSC";
isValid = false;
}
if (bankHolderNameController.text
.trim()
.isEmpty) {
bankHolderNameError = "Please Enter Account Holder Name";
isValid = false;
}
if (bankAcNumberController.text
.trim()
.isEmpty) {
bankAcNumberError = "Please Enter Bank Account Number";
isValid = false;
}
if (bankUpiController.text
.trim()
.isEmpty) {
upiError = "Please Enter UPI ID";
isValid = false;
}
if (contactPersonController.text
.trim()
.isEmpty) {
contactPersonError = "Please Enter Contact Person Name";
isValid = false;
}
if (contectPersonDesignationController.text
.trim()
.isEmpty) {
desigantionError = "Please Enter Designation";
isValid = false;
}
if (contectPersonAltMobController.text
.trim()
.isEmpty) {
altMobError = "Please Enter Mobile Number";
isValid = false;
}
}
//
//
// if (!_isVisible && !hasFilledAdditionalDetails) {
// addMoreDetailsError = "Please Add More Details to Continue";
// isValid = false;
// }
// if(_isVisible) {
//
// if (_selectedState == null || _selectedStateID!.isEmpty) {
// stateError = "Please select a State";
// isValid = false;
// }
// if (_selectedDistricts == null || _selectedDistrictID!.isEmpty) {
// districtError = "Please select a District";
// isValid = false;
// }
// if (_selectedSubLocations == null || _selectedSubLocID!.isEmpty) {
// localityError = "Please select a Locality";
// isValid = false;
// }
// if (addressController.text.trim().isEmpty) {
// addressError = "Please Enter an Address";
// isValid = false;
// }
// if (bankNameController.text
// .trim()
// .isEmpty) {
// banknameError = "Please Enter a Bank Name";
// isValid = false;
// }
//
// if (branchNameController.text
// .trim()
// .isEmpty) {
// bankBranchError = "Please Enter Branch Name";
// isValid = false;
// }
// if (bankIfscCotroller.text
// .trim()
// .isEmpty) {
// bankIFSCError = "Please Enter Bank IFSC";
// isValid = false;
// }
// if (bankHolderNameController.text
// .trim()
// .isEmpty) {
// bankHolderNameError = "Please Enter Account Holder Name";
// isValid = false;
// }
// if (bankAcNumberController.text
// .trim()
// .isEmpty) {
// bankAcNumberError = "Please Enter Bank Account Number";
// isValid = false;
// }
// if (bankUpiController.text
// .trim()
// .isEmpty) {
// upiError = "Please Enter UPI ID";
// isValid = false;
// }
// if (contactPersonController.text
// .trim()
// .isEmpty) {
// contactPersonError = "Please Enter Contact Person Name";
// isValid = false;
// }
// if (contectPersonDesignationController.text
// .trim()
// .isEmpty) {
// desigantionError = "Please Enter Designation";
// isValid = false;
// }
// if (contectPersonAltMobController.text
// .trim()
// .isEmpty) {
// altMobError = "Please Enter Mobile Number";
// isValid = false;
// }
//
// }
// if (contectPersonTeleController.text.trim().isEmpty) {
......@@ -495,65 +481,65 @@ class Accountslistprovider extends ChangeNotifier {
void updateBankName(String value) {
banknameError = null;
checkAdditionalDetailsFilled();
notifyListeners();
}
void updateBankBranch(String value) {
bankBranchError = null;
checkAdditionalDetailsFilled();
notifyListeners();
}
void updateIFSC(String value) {
bankIFSCError = null;
checkAdditionalDetailsFilled();
notifyListeners();
}
void updateHolder(String value) {
bankHolderNameError = null;
checkAdditionalDetailsFilled();
notifyListeners();
}
void updateNumber(String value) {
bankAcNumberError = null;
checkAdditionalDetailsFilled();
notifyListeners();
}
void updateUPI(String value) {
upiError = null;
checkAdditionalDetailsFilled();
notifyListeners();
}
void updateContactPerson(String value){
contactPersonError = null;
checkAdditionalDetailsFilled();
notifyListeners();
}
void updateDesignation(String value){
desigantionError = null;
checkAdditionalDetailsFilled();
notifyListeners();
}
void updateAltMobile(String value){
altMobError = null;
checkAdditionalDetailsFilled();
notifyListeners();
}
void updateTeleMobile(String value){
teleError = null;
checkAdditionalDetailsFilled();
notifyListeners();
}
void updateMail(String value){
mailError = null;
checkAdditionalDetailsFilled();
notifyListeners();
}
......
......@@ -15,6 +15,7 @@ import 'approveRejectPaymentRequestResponse.dart';
class Requesitionlidtdetailsprovider extends ChangeNotifier {
TextEditingController requestedAmount = TextEditingController();
TextEditingController proposedPaymentAccount = TextEditingController();
TextEditingController approvedAmount = TextEditingController();
TextEditingController accountName = TextEditingController();
TextEditingController branch = TextEditingController();
TextEditingController requestingPurpose = TextEditingController();
......@@ -182,6 +183,7 @@ class Requesitionlidtdetailsprovider extends ChangeNotifier {
"Level 1 Approved By",
"Level 2 Remarks",
"Level 2 Approved By",
"Approved Amount",
"Created Date/Time",
"Updated Date/Time",
];
......@@ -260,6 +262,7 @@ class Requesitionlidtdetailsprovider extends ChangeNotifier {
_requestDetails.level1Employee ?? "-",
_requestDetails.level2ApprovalRemarks ?? "-",
_requestDetails.level2Employee ?? "-",
_requestDetails.amount ?? "-",
_requestDetails.createdDatetime ?? "-",
_requestDetails.updatedDatetime ?? "-",
];
......@@ -276,6 +279,7 @@ class Requesitionlidtdetailsprovider extends ChangeNotifier {
print("here 212ssass1");
requestedAmount.text = _requestDetails.requestedAmount ?? "-";
proposedPaymentAccount.text = _requestDetails.proposedAccount ?? "-";
approvedAmount.text = _requestDetails.amount ?? "-";
accountName.text = _requestDetails.accountName ?? "-";
branch.text = _requestDetails.branch ?? "-";
requestingPurpose.text = _requestDetails.requestingPurpose ?? "-";
......@@ -397,6 +401,7 @@ class Requesitionlidtdetailsprovider extends ChangeNotifier {
resetAll() {
requestedAmount.clear();
proposedPaymentAccount.clear();
approvedAmount.clear();
accountName.clear();
branch.clear();
requestingPurpose.clear();
......
......@@ -27,6 +27,8 @@ import 'package:pdf/pdf.dart';
import 'package:pdf/widgets.dart' as pw;
import 'package:printing/printing.dart';
import '../../Models/financeModels/paymentRequestionBankDetailsResponse.dart';
class Requestionlistprovider extends ChangeNotifier {
TextEditingController reqPurposeController = TextEditingController();
TextEditingController descController = TextEditingController();
......@@ -62,6 +64,8 @@ class Requestionlistprovider extends ChangeNotifier {
DirectPaymentModes? _selectDirectPaymentModes;
GetDetails _getBankDetails = GetDetails();
String _directAccountID = "";
String _directAccountValue = "";
String _directPaymentAccountsID = "";
......@@ -74,6 +78,8 @@ class Requestionlistprovider extends ChangeNotifier {
List<DirectPaymentAccounts> get directPaymentAccounts =>
_directPaymentAccounts;
GetDetails get getBankDetails => _getBankDetails;
List<DirectPaymentModes> get directPaymentModes => _directPaymentModes;
DirectAccounts? get selectDirectAccounts => _selectedDirectAccounts;
......@@ -355,18 +361,56 @@ class Requestionlistprovider extends ChangeNotifier {
homeProvider.session,
mode,
);
_accounts.clear();
_paymentModes.clear();
_requestingPurposes.clear();
notifyListeners();
if (data != null) {
if (data.error == "0") {
_accounts = data.accounts??[];
if(mode=="self"&&data.accounts!.length==1){
print("1234234");
paymentRequestionBankDetailsAPIFunction(context, data.accounts!.first.id);
}
_paymentModes = data.paymentModes??[];
_requestingPurposes = data.requestingPurposes??[];
print('here');
print(data.requestingPurposes);
print(_accounts);
notifyListeners();
checkDropdownselected();
} else {}
}
} catch (e, s) {}
}
Future<void> paymentRequestionBankDetailsAPIFunction(context, account_id) async {
try {
var homeProvider = Provider.of<HomescreenNotifier>(
context,
listen: false,
);
final data = await ApiCalling.paymentRequestionBankDetailsAPI(
homeProvider.empId,
homeProvider.session,
account_id,
);
notifyListeners();
if (data != null) {
if (data.error == "0") {
_getBankDetails = data.getDetails!;
bankNameController.text = data.getDetails!.bankName??"-";
bankBranchController.text = data.getDetails!.bankBranchName??"-";
bankIfscController.text = data.getDetails!.bankIfscCode??"-";
bankAcHolderController.text = data.getDetails!.bankAccountHolderName??"-";
bankAccNumberController.text = data.getDetails!.bankAccountNumber??"-";
bankUpiController.text = data.getDetails!.bankUpiId??"-";
notifyListeners();
} else {}
}
} catch (e, s) {}
......
......@@ -172,7 +172,7 @@ class _MyHomePageState extends State<MyHomePage> {
child: Column(
children: [
Expanded(
flex: 3,
flex: 4,
child: Container(
padding: EdgeInsets.symmetric(vertical: 10),
decoration: BoxDecoration(
......@@ -188,6 +188,10 @@ class _MyHomePageState extends State<MyHomePage> {
right: 15,
top: 30,
),
padding: EdgeInsets.only(
bottom: 15,
),
decoration: BoxDecoration(
borderRadius: BorderRadius.circular(30),
gradient: LinearGradient(
......@@ -336,7 +340,7 @@ class _MyHomePageState extends State<MyHomePage> {
),
),
Expanded(
flex: 8,
flex: 10,
child: Container(
padding: EdgeInsets.only(
left: 20,
......
This diff is collapsed.
......@@ -109,7 +109,7 @@ class _CommondashboardState extends State<Commondashboard> {
borderRadius: BorderRadius.circular(15),
),
child: Text(
"Add Common Account",
"Add Account",
style: TextStyle(
fontSize: 15,
fontFamily: "JakartaMedium",
......
import 'package:flutter/material.dart';
import 'package:generp/Utils/app_colors.dart';
import 'package:generp/Utils/commonWidgets.dart';
import 'package:generp/screens/finance/FileViewer.dart';
import 'package:provider/provider.dart';
import '../../Notifiers/financeProvider/paymentRequisitionPaymentsListProvider.dart';
......@@ -40,7 +41,7 @@ class _TransactiondetailsState extends State<Transactiondetails> {
backgroundColor: AppColors.scaffold_bg_color,
body: SafeArea(
child: Container(
margin: EdgeInsets.symmetric(vertical: 10,horizontal: 10),
margin: EdgeInsets.symmetric(vertical: 10, horizontal: 10),
child: SingleChildScrollView(
child: Container(
padding: EdgeInsets.symmetric(horizontal: 10, vertical: 10),
......@@ -58,19 +59,19 @@ class _TransactiondetailsState extends State<Transactiondetails> {
flex: 1,
child: SizedBox(
child:
widget.type == "Credit"
? Image.asset(
"assets/images/trans_debit.png",
height: 45,
width: 45,
fit: BoxFit.contain,
)
: Image.asset(
"assets/images/trans_credit.png",
height: 45,
width: 45,
fit: BoxFit.contain,
),
widget.type == "Credit"
? Image.asset(
"assets/images/trans_debit.png",
height: 45,
width: 45,
fit: BoxFit.contain,
)
: Image.asset(
"assets/images/trans_credit.png",
height: 45,
width: 45,
fit: BoxFit.contain,
),
),
),
SizedBox(width: 10),
......@@ -99,7 +100,7 @@ class _TransactiondetailsState extends State<Transactiondetails> {
children: [
TextSpan(
text:
widget.type == "Credit" ? "-" : "+",
widget.type == "Credit" ? "-" : "+",
style: TextStyle(
color: Color(0xFF2D2D2D),
fontSize: 13,
......@@ -124,21 +125,23 @@ class _TransactiondetailsState extends State<Transactiondetails> {
],
),
Divider(thickness: 0.5, color: Color(0xFFd7d7d7)),
...List.generate(5, (j) {
...List.generate(6, (j) {
final headings = [
"ID",
"Date",
"Account",
"Ref Type",
"Description",
"Payment Remarks",
"Attachment"
];
final subHeadings = [
details.id ?? "-",
details.createdDatetime ?? "-",
details.accountName ?? "-",
details.refType ?? "-",
details.description ?? "-",
details.paymentRemarks ?? "-",
"View",
];
return Container(
padding: EdgeInsets.symmetric(vertical: 5),
......@@ -156,16 +159,48 @@ class _TransactiondetailsState extends State<Transactiondetails> {
),
),
SizedBox(width: 15),
Expanded(
child: Text(
subHeadings[j] ?? "-",
style: TextStyle(
fontFamily: "JakartaMedium",
fontSize: 14,
color: AppColors.grey_thick,
if(subHeadings[j] == "View")...[
Expanded(
child: InkResponse(
onTap: () async {
Navigator.push(context, MaterialPageRoute(
builder: (context) =>
Fileviewer(fileName: details
.attachmentViewFileName ?? "",
fileUrl: details
.attachmentDirFilePath ?? "")
,));
},
child: Text(
"${subHeadings[j]}" == ""
? "-"
: subHeadings[j] ?? "-",
style: TextStyle(
fontFamily: "JakartaMedium",
fontSize: 14,
color: AppColors.app_blue,
decorationColor: AppColors.app_blue,
decoration: TextDecoration.underline
),
),
),
),
),
] else
...[
Expanded(
child: Text(
"${subHeadings[j]}" == ""
? "-"
: subHeadings[j] ?? "-",
style: TextStyle(
fontFamily: "JakartaMedium",
fontSize: 14,
color: AppColors.grey_thick,
),
),
),
]
],
),
);
......
......@@ -32,6 +32,7 @@ class Paymentrequestionlistdetails extends StatefulWidget {
class _PaymentrequestionlistdetailsState
extends State<Paymentrequestionlistdetails> {
List<FocusNode> focusNodes = List.generate(10, (index) => FocusNode(),);
Dropdowntheme ddtheme = Dropdowntheme();
TextEditingController approvedAmount = TextEditingController();
TextEditingController remarks = TextEditingController();
......@@ -71,6 +72,13 @@ class _PaymentrequestionlistdetailsState
});
}
@override
void dispose() {
// TODO: implement dispose
focusNodes.map((e)=>e.dispose());
super.dispose();
}
@override
Widget build(BuildContext context) {
return Consumer<Requesitionlidtdetailsprovider>(
......@@ -299,13 +307,15 @@ class _PaymentrequestionlistdetailsState
),
);
}),
SizedBox(height: 80,)
],
),
),
),
),
),
floatingActionButton:
bottomNavigationBar:
(["admin", "self"].contains(widget.mode) || !shouldShowButtons)
? Container(height: 0)
: Container(
......@@ -625,9 +635,12 @@ class _PaymentrequestionlistdetailsState
approvedAmount,
"Enter Approved Amount",
(p0) {},
TextInputType.number,
TextInputType.numberWithOptions(),
false,
FilteringTextInputFormatter.digitsOnly,
null,
focusNodes[0],
focusNodes[1],
TextInputAction.next
),
textControllerWidget(
context,
......@@ -637,6 +650,9 @@ class _PaymentrequestionlistdetailsState
TextInputType.text,
false,
null,
focusNodes[1],
null,
TextInputAction.done
),
TextWidget(context, "Proposed Payment Account"),
DropdownButtonHideUnderline(
......@@ -847,7 +863,7 @@ class _PaymentrequestionlistdetailsState
textControllerReadonlyWidget(
context,
provider.requestedAmount,
"Enter Requested Amount",
"Requested Amount",
(p0) {},
),
......@@ -859,6 +875,7 @@ class _PaymentrequestionlistdetailsState
TextInputType.text,
false,
null,
focusNodes[2],null,TextInputAction.done
),
InkWell(
onTap: () {
......@@ -956,6 +973,7 @@ class _PaymentrequestionlistdetailsState
(p0) {},
),
TextWidget(context, "Payment Account"),
DropdownButtonHideUnderline(
child: Row(
......@@ -1061,6 +1079,13 @@ class _PaymentrequestionlistdetailsState
),
),
textControllerReadonlyWidget(
context,
provider.approvedAmount,
"Approved Amount",
(p0) {},
),
textControllerWidget(
context,
paymentReferenceNumber,
......@@ -1069,6 +1094,7 @@ class _PaymentrequestionlistdetailsState
TextInputType.text,
false,
null,
focusNodes[3],focusNodes[4],TextInputAction.next
),
textControllerWidget(
......@@ -1079,6 +1105,7 @@ class _PaymentrequestionlistdetailsState
TextInputType.text,
false,
null,
focusNodes[4],null,TextInputAction.done
),
InkResponse(
......
......@@ -19,6 +19,7 @@ class Addpaymentreceiptlist extends StatefulWidget {
class _AddpaymentreceiptlistState extends State<Addpaymentreceiptlist> {
Dropdowntheme ddtheme = Dropdowntheme();
List<FocusNode> focusNodes = List.generate(12, (index) => FocusNode(),);
@override
void initState() {
// TODO: implement initState
......@@ -34,6 +35,7 @@ class _AddpaymentreceiptlistState extends State<Addpaymentreceiptlist> {
@override
void dispose() {
focusNodes.map((e)=>e.dispose());
super.dispose();
}
......@@ -252,7 +254,11 @@ class _AddpaymentreceiptlistState extends State<Addpaymentreceiptlist> {
context,
provider.amountController,
"Enter Amount",
provider.updateAmount,TextInputType.number,false,FilteringTextInputFormatter.digitsOnly
provider.updateAmount,TextInputType.numberWithOptions(),false,
null,
focusNodes[0],
focusNodes[1],
TextInputAction.next
),
errorWidget(context, provider.amountError),
///payment date toBE
......@@ -284,6 +290,19 @@ class _AddpaymentreceiptlistState extends State<Addpaymentreceiptlist> {
readOnly: true,
onChanged: (value) {
},
focusNode: focusNodes[1],
onTapUpOutside: (event) {
if(focusNodes[1].hasFocus){
focusNodes[1].unfocus();
}
},
textInputAction: TextInputAction.done,
onEditingComplete: () {
focusNodes[1].unfocus();
},
decoration: InputDecoration(
hintText: "Enter Date",
......@@ -375,35 +394,50 @@ class _AddpaymentreceiptlistState extends State<Addpaymentreceiptlist> {
context,
provider.bankNameController,
"Enter Bank Name",
provider.updateBankName,TextInputType.text,false,null
provider.updateBankName,TextInputType.text,false,null,
focusNodes[2],
focusNodes[3],
TextInputAction.next
),
errorWidget(context, provider.bankNameError),
textControllerWidget(
context,
provider.bankBranchController,
"Enter Bank Branch",
provider.updateBankBranch,TextInputType.text,false,null
provider.updateBankBranch,TextInputType.text,false,null,
focusNodes[3],
focusNodes[4],
TextInputAction.next
),
errorWidget(context, provider.bankBranchError),
textControllerWidget(
context,
provider.bankAccNumberController,
"Enter Account Number",
provider.updateNumber,TextInputType.number,false,FilteringTextInputFormatter.digitsOnly
provider.updateNumber,TextInputType.number,false,FilteringTextInputFormatter.digitsOnly,
focusNodes[4],
focusNodes[5],
TextInputAction.next
),
errorWidget(context, provider.bankNumberError),
textControllerWidget(
context,
provider.bankIfscController,
"Enter Bank IFSC",
provider.updateIFSC,TextInputType.text,false,null
provider.updateIFSC,TextInputType.text,false,null,
focusNodes[5],
focusNodes[6],
TextInputAction.next
),
errorWidget(context, provider.bankIFSCError),
textControllerWidget(
context,
provider.bankAcHolderController,
"Enter Bank Account Holder Name",
provider.updateHolder,TextInputType.text,false,null
provider.updateHolder,TextInputType.text,false,null,
focusNodes[6],
focusNodes[8],
TextInputAction.next
),
errorWidget(context, provider.bankHolderError),
] else if (provider.paymentModeValue == "UPI") ...
......@@ -412,7 +446,10 @@ class _AddpaymentreceiptlistState extends State<Addpaymentreceiptlist> {
context,
provider.bankUpiController,
"Enter UPI ID",
provider.updateUPI,TextInputType.text,false,null
provider.updateUPI,TextInputType.text,false,null,
focusNodes[7],
focusNodes[8],
TextInputAction.next
),
errorWidget(context, provider.UPIError),
],
......@@ -420,14 +457,20 @@ class _AddpaymentreceiptlistState extends State<Addpaymentreceiptlist> {
context,
provider.paymentReferenceController,
"Enter Payment Reference Number",
provider.updatereference,TextInputType.text,false,null
provider.updatereference,TextInputType.text,false,null,
focusNodes[8],
focusNodes[9],
TextInputAction.next
),
errorWidget(context, provider.paymentreferenceError),
textControllerWidget(
context,
provider.descController,
"Enter Description",
provider.updateDescription,TextInputType.text,false,null
provider.updateDescription,TextInputType.text,false,null,
focusNodes[9],
focusNodes[10],
TextInputAction.done
),
errorWidget(context, provider.descriptionError),
InkResponse(
......@@ -502,7 +545,7 @@ class _AddpaymentreceiptlistState extends State<Addpaymentreceiptlist> {
borderRadius: BorderRadius.circular(15),
),
child: provider.submitClicked?CircularProgressIndicator.adaptive(
valueColor: AlwaysStoppedAnimation(AppColors.app_blue),
valueColor: AlwaysStoppedAnimation(AppColors.white),
): Text(
"Submit",
style: TextStyle(
......
......@@ -25,6 +25,8 @@ class Directpaymentrequesitionlist extends StatefulWidget {
class _DirectpaymentrequesitionlistState
extends State<Directpaymentrequesitionlist> {
Dropdowntheme ddtheme = Dropdowntheme();
List<FocusNode> focusNodes = List.generate(12, (index) => FocusNode(),);
@override
void initState() {
// TODO: implement initState
......@@ -40,6 +42,7 @@ class _DirectpaymentrequesitionlistState
@override
void dispose() {
focusNodes.map((e) => e.dispose(),);
super.dispose();
}
......@@ -263,7 +266,11 @@ class _DirectpaymentrequesitionlistState
context,
provider.amountController,
"Enter Amount",
provider.updateAmount,TextInputType.number,false,FilteringTextInputFormatter.digitsOnly
provider.updateAmount,TextInputType.numberWithOptions(),
false,null,
focusNodes[0],
focusNodes[1],
TextInputAction.next
),
errorWidget(context, provider.amountError),
......@@ -298,6 +305,19 @@ class _DirectpaymentrequesitionlistState
maxLines: 1,
readOnly: true,
onChanged: (value) {},
focusNode: focusNodes[1],
onTapUpOutside: (event) {
if(focusNodes[1].hasFocus){
focusNodes[1].unfocus();
}
},
textInputAction: TextInputAction.done,
onEditingComplete: () {
focusNodes[1].unfocus();
},
decoration: InputDecoration(
hintText: "Enter Date",
hintStyle: TextStyle(
......@@ -386,35 +406,50 @@ class _DirectpaymentrequesitionlistState
context,
provider.bankNameController,
"Enter Bank Name",
provider.updateBankName,TextInputType.text,false,null
provider.updateBankName,TextInputType.text,false,null,
focusNodes[2],
focusNodes[3],
TextInputAction.next
),
errorWidget(context, provider.bankNameError),
textControllerWidget(
context,
provider.bankBranchController,
"Enter Bank Branch",
provider.updateBankBranch,TextInputType.text,false,null
provider.updateBankBranch,TextInputType.text,false,null,
focusNodes[3],
focusNodes[4],
TextInputAction.next
),
errorWidget(context, provider.bankBranchError),
textControllerWidget(
context,
provider.bankAccNumberController,
"Enter Account Number",
provider.updateNumber,TextInputType.number,false,FilteringTextInputFormatter.digitsOnly
provider.updateNumber,TextInputType.number,false,FilteringTextInputFormatter.digitsOnly,
focusNodes[4],
focusNodes[5],
TextInputAction.next
),
errorWidget(context, provider.bankNumberError),
textControllerWidget(
context,
provider.bankIfscController,
"Enter Bank IFSC",
provider.updateIFSC,TextInputType.text,false,null
provider.updateIFSC,TextInputType.text,false,null,
focusNodes[5],
focusNodes[6],
TextInputAction.next
),
errorWidget(context, provider.bankIFSCError),
textControllerWidget(
context,
provider.bankAcHolderController,
"Enter Bank Account Holder Name",
provider.updateHolder,TextInputType.text,false,null
provider.updateHolder,TextInputType.text,false,null,
focusNodes[6],
focusNodes[8],
TextInputAction.next
),
errorWidget(context, provider.bankHolderError),
] else if (provider.directPaymentModesValues == "UPI") ...[
......@@ -422,7 +457,10 @@ class _DirectpaymentrequesitionlistState
context,
provider.bankUpiController,
"Enter UPI ID",
provider.updateUPI,TextInputType.text,false,null
provider.updateUPI,TextInputType.text,false,null,
focusNodes[7],
focusNodes[8],
TextInputAction.next
),
errorWidget(context, provider.UPIError),
],
......@@ -430,14 +468,20 @@ class _DirectpaymentrequesitionlistState
context,
provider.paymentReferenceController,
"Enter Payment Reference Number",
provider.updateReference,TextInputType.text,false,null
provider.updateReference,TextInputType.text,false,null,
focusNodes[8],
focusNodes[9],
TextInputAction.next
),
errorWidget(context, provider.paymentreferenceerror),
textControllerWidget(
context,
provider.descController,
"Enter Description",
provider.updateDescription,TextInputType.text,false,null
provider.updateDescription,TextInputType.text,false,null,
focusNodes[9],
focusNodes[10],
TextInputAction.done
),
errorWidget(context, provider.descriptionError),
InkResponse(
......
......@@ -24,6 +24,7 @@ class Submitpaymentrequestionlistsbymode extends StatefulWidget {
class _SubmitpaymentrequestionlistsbymodeState
extends State<Submitpaymentrequestionlistsbymode> {
Dropdowntheme ddtheme = Dropdowntheme();
List<FocusNode> focusNodes = List.generate(11, (index) => FocusNode(),);
@override
void initState() {
// TODO: implement initState
......@@ -36,6 +37,7 @@ class _SubmitpaymentrequestionlistsbymodeState
@override
void dispose() {
focusNodes.map((e)=>e.dispose());
super.dispose();
}
......@@ -115,6 +117,7 @@ class _SubmitpaymentrequestionlistsbymodeState
"hfjkshfg" +
provider.accountId.toString(),
);
provider.paymentRequestionBankDetailsAPIFunction(context, provider.accountId);
}
}
},
......@@ -218,7 +221,10 @@ class _SubmitpaymentrequestionlistsbymodeState
context,
provider.reqPurposeController,
"Enter Request Purpose",
provider.updateReqPupose,TextInputType.text,false,null
provider.updateReqPupose,TextInputType.text,false,null,
focusNodes[0],
focusNodes[1],
TextInputAction.next
),
],
errorWidget(context, provider.reqPurposeError),
......@@ -227,7 +233,10 @@ class _SubmitpaymentrequestionlistsbymodeState
context,
provider.descController,
"Enter Description",
provider.updateDescription,TextInputType.text,false,null
provider.updateDescription,TextInputType.text,false,null,
focusNodes[1],
focusNodes[2],
TextInputAction.next
),
errorWidget(context, provider.descriptionError),
......@@ -235,7 +244,11 @@ class _SubmitpaymentrequestionlistsbymodeState
context,
provider.amountController,
"Enter Amount",
provider.updateAmount,TextInputType.number,false,FilteringTextInputFormatter.digitsOnly
provider.updateAmount,TextInputType.numberWithOptions(),false,
null,
focusNodes[2],
null,
TextInputAction.done
),
errorWidget(context, provider.amountError),
......@@ -356,7 +369,10 @@ class _SubmitpaymentrequestionlistsbymodeState
context,
provider.bankNameController,
"Enter Bank Name",
provider.updateBankName,TextInputType.text,false,null
provider.updateBankName,TextInputType.text,false,null,
focusNodes[3],
focusNodes[4],
TextInputAction.next
),
errorWidget(context, provider.bankNameError),
......@@ -364,7 +380,10 @@ class _SubmitpaymentrequestionlistsbymodeState
context,
provider.bankBranchController,
"Enter Bank Branch",
provider.updateBankBranch,TextInputType.text,false,null
provider.updateBankBranch,TextInputType.text,false,null,
focusNodes[4],
focusNodes[5],
TextInputAction.next
),
errorWidget(context, provider.bankBranchError),
......@@ -372,7 +391,10 @@ class _SubmitpaymentrequestionlistsbymodeState
context,
provider.bankAccNumberController,
"Enter Account Number",
provider.updateNumber,TextInputType.number,false,FilteringTextInputFormatter.digitsOnly
provider.updateNumber,TextInputType.number,false,FilteringTextInputFormatter.digitsOnly,
focusNodes[5],
focusNodes[6],
TextInputAction.next
),
errorWidget(context, provider.bankNumberError),
......@@ -380,7 +402,10 @@ class _SubmitpaymentrequestionlistsbymodeState
context,
provider.bankIfscController,
"Enter Bank IFSC",
provider.updateIFSC,TextInputType.text,false,null
provider.updateIFSC,TextInputType.text,false,null,
focusNodes[6],
focusNodes[7],
TextInputAction.next
),
errorWidget(context, provider.bankIFSCError),
......@@ -388,7 +413,10 @@ class _SubmitpaymentrequestionlistsbymodeState
context,
provider.bankAcHolderController,
"Enter Bank Account Holder Name",
provider.updateHolder,TextInputType.text,false,null
provider.updateHolder,TextInputType.text,false,null,
focusNodes[7],
null,
TextInputAction.done
),
errorWidget(context, provider.bankHolderError),
] else if (provider.paymentModeValue == "UPI") ...[
......@@ -396,7 +424,10 @@ class _SubmitpaymentrequestionlistsbymodeState
context,
provider.bankUpiController,
"Enter UPI ID",
provider.updateUPI,TextInputType.text,false,null
provider.updateUPI,TextInputType.text,false,null,
focusNodes[8],
null,
TextInputAction.done
),
errorWidget(context, provider.UPIError),
],
......
......@@ -59,6 +59,7 @@ import '../Models/UpdateComplaintResponse.dart';
import '../Models/UpdatePasswordResponse.dart';
import '../Models/VersionsResponse.dart';
import '../Models/ViewVisitDetailsResponse.dart';
import '../Models/financeModels/paymentRequestionBankDetailsResponse.dart';
import '../Models/commonModels/commonAccountLedgerFilterResponse.dart';
import '../Models/commonModels/commonAccountLedgerResponse.dart';
import '../Models/commonModels/commonAccountdetailsResponse.dart';
......@@ -1561,6 +1562,32 @@ class ApiCalling {
}
}
static Future<paymentRequestionBankDetailsResponse?> paymentRequestionBankDetailsAPI(
empId,
session,
account_id,
) async {
try {
Map<String, String> data = {
'emp_id': (empId).toString(),
'session_id': (session).toString(),
'account_id': (account_id).toString(),
};
final res = await post(data, paymentRequestBankDetailsUrl, {});
if (res != null) {
print("Bank Detaols ${data}");
debugPrint(res.body);
return paymentRequestionBankDetailsResponse.fromJson(jsonDecode(res.body));
} else {
debugPrint("Null Response");
return null;
}
} catch (e) {
debugPrint('hello bev=bug $e ');
return null;
}
}
static Future<approveRejectPaymentRequestResponse?>
approveRejectPaymentRequestAPI(empId, session, payment_request_id) async {
try {
......@@ -1859,6 +1886,8 @@ class ApiCalling {
}
}
static Future<DistrictsResponse?> commonAddAccountViewDistrictAPI(
empId,
session,
......
......@@ -63,6 +63,7 @@ const addDirectPaymentRequestionSubmitUrl = "${baseUrl_test}add_direct_payment_s
const addPaymentReceiptSubmitUrl = "${baseUrl_test}add_payment_receipt_submit";
const paymentRequestionListUrl = "${baseUrl_test}payment_requsition_list";
const paymentRequestionDetailsUrl = "${baseUrl_test}payment_requisition_details";
const paymentRequestBankDetailsUrl = "${baseUrl_test}get_account_bank_details";
const approveRejectPaymentRequestUrl = "${baseUrl_test}approve_reject_payment_request_view";
const approveRejectPaymentRequestSubmitUrl = "${baseUrl_test}approve_reject_payment_request_submit";
const paymentRequesitionPaymentsListUrl = "${baseUrl_test}payment_requistion_payments_list";
......
......@@ -16,7 +16,7 @@ publish_to: 'none' # Remove this line if you wish to publish to pub.dev
# https://developer.apple.com/library/archive/documentation/General/Reference/InfoPlistKeyReference/Articles/CoreFoundationKeys.html
# In Windows, build-name is used as the major, minor, and patch parts
# of the product and file versions while build-number is used as the build suffix.
version: 1.0.88+92
version: 1.0.89+93
environment:
sdk: ^3.7.2
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment