import 'package:flutter/foundation.dart'; import 'package:generp/Models/financeModels/paymentRequisitionDetailsResponse.dart'; import 'package:generp/Notifiers/HomeScreenNotifier.dart'; import 'package:generp/services/api_calling.dart'; import 'package:provider/provider.dart'; import 'approveRejectPaymentRequestResponse.dart'; class Requesitionlidtdetailsprovider extends ChangeNotifier{ PaymentDetails _paymentDetails = PaymentDetails(); RequestDetails _requestDetails = RequestDetails(); PaymentDetails get paymentsDetails => _paymentDetails; RequestDetails get requestsDetails => _requestDetails; List _paymentAccounts = []; PaymentRequestDetails _paymentRequestDetails = PaymentRequestDetails(); List _paymentModes = []; PaymentAccounts? _selectedPaymentAccounts; List get paymentsAccounts => _paymentAccounts; List get paymentsModes => _paymentModes; PaymentRequestDetails get paymentsReqDetails => _paymentRequestDetails; PaymentAccounts? get selectedPaymentAccounts => _selectedPaymentAccounts; var _selectedValue; var _selectedID; get selectedValue => _selectedValue; get selectedID => _selectedID; List _headings = [ ]; List _subHeadings =[]; List get subHeadings => _subHeadings; List get Headings => _headings; set selectedPaymentAccounts(PaymentAccounts? value){ _selectedPaymentAccounts = value; _selectedValue = value!.name!; _selectedID = value!.id; notifyListeners(); } set selectedValue(value){ _selectedValue = value; notifyListeners(); } set selectedID(value){ _selectedID = value; notifyListeners(); } Future paymentRequesitionDetails(context,payment_request_id) async { try{ var provider = Provider.of(context,listen: false); final data = await ApiCalling.paymentRequestionDetailsAPI(provider.empId, provider.session, payment_request_id); if(data!=null){ if(data.error=="0"){ _headings = [ "Requested Account", "Proposed Account Name", "Branch", "Requesting Propose", "Payment Mode", "Created Employee", "Attachment", "Requested Date", "Note", "Level 1 Remarks", "Level 1 Approved By", "Level 2 Remarks", "Level 2 Approved By", "Created Date/Time", "Updated Date/Time", ]; _paymentDetails = data.paymentDetails??PaymentDetails( accountId: "", accountName: "", amount: "", attachmentDirFilePath: "", attachmentViewFileName: "", bankAccountHolderName: "", bankAccountNumber: "", bankBranchName: "", bankIfscCode: "", bankName: "", bankUpiId: "", createdDatetime: "", createdEmployeeId: "", description: "", id: "", isExists: "", mode: "", paymentAccountId: "", paymentAccountName: "", paymentDate: "", paymentEmployeeName: "", paymentModeId: "", paymentReferenceNumber: "", paymentRemarks: "", refId: "", refType: "", updatedDatetime: "" ); _requestDetails = data.requestDetails??RequestDetails( updatedDatetime: "", id: "", description: "", createdDatetime: "", attachmentViewFileName: "", attachmentDirFilePath: "", amount: "", accountName: "", accountId: "", branch: "", createdEmployee: "", date: "", isProcessedPaymentRequest: "", level1ApprovalRemarks: "", level1Employee: "", level2ApprovalRemarks: "", level2Employee: "", proposedAccount: "", proposedAccountId: "", requestedAmount: "", requestingPurpose: "", requestMode: "", status: "", transDis: "" ); _subHeadings = [ _requestDetails.accountName??"-", _requestDetails.proposedAccount??"-", _requestDetails.branch??"-", _requestDetails.requestingPurpose??"-", _requestDetails.requestMode??"-", _requestDetails.createdEmployee??"-", _requestDetails.attachmentViewFileName??"-", _requestDetails.date??"-", _requestDetails.description??"-", _requestDetails.level1ApprovalRemarks??"-", _requestDetails.level1Employee??"-", _requestDetails.level2ApprovalRemarks??"-", _requestDetails.level2Employee??"-", _requestDetails.createdDatetime??"-", _requestDetails.updatedDatetime??"-" ]; notifyListeners(); } } }catch (e,s){} } Future approveRejectPaymentRequestAPIFunction(context,payment_request_id) async { try{ var provider = Provider.of(context,listen: false); final data = await ApiCalling.approveRejectPaymentRequestAPI(provider.empId, provider.session, payment_request_id); if(data!=null){ if(data.error=="0"){ _paymentModes = data.paymentModes!; _paymentAccounts = data.paymentAccounts!; _paymentRequestDetails= data.paymentRequestDetails!; notifyListeners(); } } }catch (e,s){} } Future paymentrequisitionRejectSubmitAPIFunction(context, mode, payment_request_id, approve_remarks) async { try{ var provider = Provider.of(context,listen: false); final data = await ApiCalling.RejectPaymentRequestSubmitAPI(provider.empId, provider.session, mode, payment_request_id, approve_remarks); }catch (e,s){ } } Future paymentrequisitionApproveSubmitAPIFunction(context, mode, payment_request_id,approved_amount, approve_remarks,proposed_payment_account_id) async { try{ var provider = Provider.of(context,listen: false); final data = await ApiCalling.ApprovePaymentRequestSubmitAPI(provider.empId, provider.session, mode, payment_request_id, approved_amount, approve_remarks, proposed_payment_account_id); }catch (e,s){ } } Future paymentrequisitionProcessSubmitAPIFunction(context, mode, payment_request_id,approved_amount, approve_remarks,proposed_payment_account_id,payment_account_id,processing_remarks,attachment) async { try{ var provider = Provider.of(context,listen: false); final data = await ApiCalling.processApproveRejectPaymentRequestSubmitAPI(provider.empId, provider.session, mode, payment_request_id, approved_amount, approve_remarks, proposed_payment_account_id, payment_account_id, processing_remarks, attachment); }catch (e,s){ } } }