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

13-06-2025 By Sai Srinivas

Order Modules: Screens, Providers and Models
parent 75c5b679
......@@ -26,4 +26,7 @@ export 'package:generp/Notifiers/financeProvider/DashboardProvider.dart';
export 'package:generp/Notifiers/financeProvider/RequestionListProvider.dart';
export 'package:generp/Notifiers/financeProvider/paymentReceiptsProvider.dart';
export 'package:generp/Notifiers/financeProvider/paymentRequisitionPaymentsListProvider.dart';
export 'package:generp/Notifiers/financeProvider/RequesitionLidtDetailsProvider.dart';
\ No newline at end of file
export 'package:generp/Notifiers/financeProvider/RequesitionLidtDetailsProvider.dart';
export 'package:generp/Notifiers/ordersProvider/pagesDashboardProvider.dart';
export 'package:generp/Notifiers/ordersProvider/paymentsProvider.dart';
export 'package:generp/Notifiers/ordersProvider/tpcAgentsProvider.dart';
\ No newline at end of file
import 'package:flutter/material.dart';
class AddpaymentScreen extends StatefulWidget {
const AddpaymentScreen({super.key});
@override
State<AddpaymentScreen> createState() => _AddpaymentScreenState();
}
class _AddpaymentScreenState extends State<AddpaymentScreen> {
@override
Widget build(BuildContext context) {
return const Placeholder();
}
}
import 'package:flutter/material.dart';
import 'package:flutter_svg/svg.dart';
import 'package:provider/provider.dart';
import '../../Notifiers/ordersProvider/tpcAgentsProvider.dart';
import '../../Utils/app_colors.dart';
import '../../Utils/commonWidgets.dart';
class AddtpcagentScreen extends StatefulWidget {
const AddtpcagentScreen({super.key});
@override
State<AddtpcagentScreen> createState() => _AddtpcagentScreenState();
}
class _AddtpcagentScreenState extends State<AddtpcagentScreen> {
@override
void initState() {
// TODO: implement initState
super.initState();
WidgetsBinding.instance.addPostFrameCallback((timeStamp) {
var provider = Provider.of<Tpcagentsprovider>(
context,
listen: false,
);
});
}
@override
Widget build(BuildContext context) {
return Consumer<Tpcagentsprovider>(
builder: (context, provider, child) {
return WillPopScope(
child: Scaffold(
resizeToAvoidBottomInset: true,
appBar: appbar2(context, "Add TPC Agent", provider.resetAll,
SizedBox(width: 0,),),
backgroundColor: AppColors.scaffold_bg_color,
body: Container(
child: SingleChildScrollView(
child: Column(
children: [
Container(
decoration: BoxDecoration(
color: Colors.white,
borderRadius: BorderRadius.circular(16),
),
margin: EdgeInsets.symmetric(vertical: 10, horizontal: 10),
padding: EdgeInsets.symmetric(vertical: 10, horizontal: 10),
child: Column(
crossAxisAlignment: CrossAxisAlignment.start,
mainAxisSize: MainAxisSize.min,
children: [
textControllerWidget(context,provider.tpcNameController,"Enter Name",provider.onChangetpcName),
if(provider.tpcNameError!=null)...[
ErrorWidget(context, provider.tpcNameError)
],
textControllerWidget(context,provider.tpcMobileNumberController,"Enter Mobile Number",provider.onChangetpcMobileNumber),
if(provider.tpcMobileNumberError!=null)...[
ErrorWidget(context, provider.tpcMobileNumberError)
],
InkResponse(
onTap: () {
_showAttachmentSheet(context);
},
child: Container(
margin: EdgeInsets.symmetric(vertical: 10),
height: 45,
width: MediaQuery.of(context).size.width,
decoration: BoxDecoration(
color: Color(0xFFE6F6FF),
borderRadius: BorderRadius.circular(12),
border: Border.all(
color: AppColors.app_blue,
width: 0.5,
),
),
child: Center(
child: Text(
"ID Proof",
style: TextStyle(
fontFamily: "JakartaMedium",
color: AppColors.app_blue,
),
),
),
),
),
if(provider.imagePicked==1 && provider.imagePath!=null)...[
Padding(
padding: const EdgeInsets.symmetric(vertical: 4.0),
child: Row(
mainAxisAlignment: MainAxisAlignment.spaceBetween,
children: [
Text("${provider.imagePath}",style: TextStyle(
color: AppColors.semi_black,
fontSize: 11,
fontWeight: FontWeight.w600
),),
InkResponse(
onTap: () {
provider.imagePicked = 0;
provider.imagePath = null;
provider.imageFilePath = null;
},
child: SvgPicture.asset("assets/svg/ic_close.svg",width: 15,height: 15,))
],
),
)
],
textControllerWidget(context,provider.tpcBankNameController,"Enter Bank Name",provider.onChangetpcBankName),
if(provider.tpcBankNameError!=null)...[
ErrorWidget(context, provider.tpcBankNameError)
],
textControllerWidget(context,provider.tpcBankBeneficiaryNameController,"Enter Bank Beneficiary Name",provider.onChangetpcBankBeneficiaryName),
if(provider.tpcBankBeneficiaryNameError!=null)...[
ErrorWidget(context, provider.tpcBankBeneficiaryNameError)
],
textControllerWidget(context,provider.tpcBankAccountNumberController,"Enter Bank Account Number",provider.onChangetpcBankAccountNumber),
if(provider.tpcBankAccountNumberError!=null)...[
ErrorWidget(context, provider.tpcBankAccountNumberError)
],
textControllerWidget(context,provider.tpcBankIFSCController,"Enter Bank IFSC",provider.onChangetpcBankIFSC),
if(provider.tpcBankIFSCError!=null)...[
ErrorWidget(context, provider.tpcBankIFSCError)
],
textControllerWidget(context,provider.tpcNoteController,"Enter Description",provider.onChangetpcNote),
if(provider.tpcNoteError!=null)...[
ErrorWidget(context, provider.tpcNoteError)
],
InkWell(
onTap: () {
provider.addTPCAgentAPIFunction(context);
},
child: Container(
alignment: Alignment.center,
height: 45,
margin: EdgeInsets.only(
left: 5.0,
right: 5.0,
top: 5.0,
bottom: 5.0,
),
decoration: BoxDecoration(
color: AppColors.app_blue, //1487C9
borderRadius: BorderRadius.circular(14.0),
),
child: Center(
child: Text(
"Submit",
textAlign: TextAlign.center,
style: TextStyle(color: Colors.white),
),
),
),
),
],
),
),
],
),
),
),
),
onWillPop: () {
return onBackPressed(context);
},
);
},
);
}
Widget TextWidget(context, text) {
return Padding(
padding: const EdgeInsets.only(bottom: 5.0, top: 8.0),
child: Text(text),
);
}
Widget ErrorWidget(context, text) {
if (text != null)
return Text(text!, style: TextStyle(color: Colors.red, fontSize: 12));
else
return SizedBox(height: 10);
}
Widget textControllerWidget(context,
controller,
hintText,
Function(String)? onChanged,) {
return Column(
crossAxisAlignment: CrossAxisAlignment.start,
children: [
Padding(
padding: const EdgeInsets.only(bottom: 5.0, top: 8.0),
child: Text(hintText),
),
Container(
height: hintText == "Enter Description" ? 150 : 50,
alignment: Alignment.center,
decoration: BoxDecoration(
color: AppColors.text_field_color,
borderRadius: BorderRadius.circular(14),
),
child: Padding(
padding: const EdgeInsets.fromLTRB(10.0, 0.0, 10, 0),
child: TextFormField(
controller: controller,
keyboardType: TextInputType.text,
maxLines: hintText == "Enter Description" ? 60 : 1,
onChanged: onChanged,
decoration: InputDecoration(
hintText: hintText,
hintStyle: TextStyle(
fontWeight: FontWeight.w400,
color: Color(0xFFB4BEC0),
fontSize: 14,
),
enabledBorder: InputBorder.none,
focusedBorder: InputBorder.none,
),
),
),
),
],
);
}
Future<void> _showAttachmentSheet(BuildContext context) {
return showModalBottomSheet(
useSafeArea: true,
isDismissible: true,
isScrollControlled: true,
showDragHandle: true,
backgroundColor: Colors.white,
enableDrag: true,
context: context,
builder: (context) {
return StatefulBuilder(
builder: (context, setState) {
return SafeArea(
child: Consumer<Tpcagentsprovider>(
builder: (context,tcpProvider, child) {
return Padding(
padding: EdgeInsets.only(
bottom:
MediaQuery
.of(
context,
)
.viewInsets
.bottom, // This handles keyboard
),
child: Container(
margin: EdgeInsets.only(
bottom: 15,
left: 15,
right: 15,
top: 10,
),
child: SingleChildScrollView(
child: Column(
crossAxisAlignment: CrossAxisAlignment.start,
mainAxisSize: MainAxisSize.min,
children: [
Align(
alignment: Alignment.center,
child: Text(
"Select Source",
style: TextStyle(
color: AppColors.app_blue,
fontSize: 16
),
),
),
SizedBox(height: 15,),
InkWell(
onTap: () {
Navigator.of(context).pop(false);
tcpProvider.imgFromGallery(context);
},
child: Container(
height: 35,
child: Text("Select photo from gallery"),
),
),
SizedBox(height: 10),
InkWell(
onTap: () {
Navigator.of(context).pop(false);
tcpProvider.imgFromCamera(
context);
},
child: Container(
height: 35,
child: Text("Capture photo from camera"),
),
),
],
),
),
),
);
},
),
);
},
);
},
);
}
}
import 'package:flutter/material.dart';
import 'package:flutter_svg/svg.dart';
import 'package:provider/provider.dart';
import '../../Notifiers/ordersProvider/pagesDashboardProvider.dart';
import '../../Utils/app_colors.dart';
import '../../Utils/commonWidgets.dart';
class Orderdetailsfeedbackhistory extends StatefulWidget {
const Orderdetailsfeedbackhistory({super.key});
@override
State<Orderdetailsfeedbackhistory> createState() => _OrderdetailsfeedbackhistoryState();
}
class _OrderdetailsfeedbackhistoryState extends State<Orderdetailsfeedbackhistory> {
@override
void initState() {
// TODO: implement initState
super.initState();
WidgetsBinding.instance.addPostFrameCallback((_) {
var details = Provider.of<Pagesdashboardprovider>(
context,
listen: false,
);
});
}
@override
Widget build(BuildContext context) {
return Consumer<Pagesdashboardprovider>(
builder: (context, provider, child) {
final feedbackHistory = provider.feedbackHistory;
return WillPopScope(
onWillPop: () => onBackPressed(context),
child: Scaffold(
resizeToAvoidBottomInset: true,
appBar: appbar(context, "Feedback History"),
backgroundColor: AppColors.scaffold_bg_color,
body: feedbackHistory.isNotEmpty?Container(
child: ListView.builder(
scrollDirection: Axis.vertical,
shrinkWrap: true,
physics: AlwaysScrollableScrollPhysics(),
itemCount: feedbackHistory.length,
padding: EdgeInsets.symmetric(horizontal: 10, vertical: 10),
itemBuilder: (context, index) {
return Container(
margin: EdgeInsets.symmetric(horizontal: 10, vertical: 5),
padding: EdgeInsets.symmetric(horizontal: 15, vertical: 10),
decoration: BoxDecoration(
color: Colors.white,
borderRadius: BorderRadius.circular(20),
),
child: Column(
crossAxisAlignment: CrossAxisAlignment.start,
children: List.generate(6, (j) {
final textheads = [
"<th>Employee</th>",
"<th>Feedback</th>",
"<th>Attachment</th>",
"<th>Status</th>",
"<th>Date</th>",
];
final textSubheads = [
"${feedbackHistory[index].employeNaem}",
"${feedbackHistory[index].feedback}",
"${feedbackHistory[index].attachmentDirFilePath}",
"${feedbackHistory[index].status}",
"${feedbackHistory[index].createdDatetime}",
];
return Container(
padding: EdgeInsets.symmetric(
vertical: 6,
horizontal: 0,
),
child: Row(
mainAxisAlignment:
MainAxisAlignment.spaceBetween,
crossAxisAlignment: CrossAxisAlignment.start,
children: [
Expanded(
child: Text(textheads[j].toString(),
maxLines: 2,
overflow: TextOverflow.ellipsis,),
),
Expanded(
child: SizedBox(
// height:45,
width:
MediaQuery.of(
context,
).size.width *
0.75,
child: Text(
textSubheads[j],
maxLines: 2,
overflow:
TextOverflow.ellipsis,
style: TextStyle(
color: Color(0xFF818181),
),
),
),
),
],
),
);
}),
),
);
}
),
):Emptywidget(context),
floatingActionButton: Align(
alignment: Alignment.bottomCenter,
child: InkWell(
onTap: () {
_showFeedbackSheet(context);
},
child: Container(
alignment: Alignment.bottomCenter,
height: 45,
width: MediaQuery.of(context).size.width,
margin: EdgeInsets.symmetric(horizontal: 10),
decoration: BoxDecoration(
color: AppColors.app_blue,
borderRadius: BorderRadius.circular(14.0),
),
child: Center(
child: Text(
"Feedback Update",
textAlign: TextAlign.center,
style: TextStyle(color: Colors.white,
fontFamily: "JakartaMedium"),
),
),
),
),
),
floatingActionButtonLocation:
FloatingActionButtonLocation.centerFloat,
),
);
},
);
}
Future<void> _showFeedbackSheet(BuildContext context) {
return showModalBottomSheet(
useSafeArea: true,
isDismissible: true,
isScrollControlled: true,
showDragHandle: true,
backgroundColor: Colors.white,
enableDrag: true,
context: context,
builder: (context) {
return StatefulBuilder(
builder: (context, setState) {
return SafeArea(
child: Consumer<Pagesdashboardprovider>(
builder: (context, provider, child) {
final orderDetails = provider.orderDetails;
return Container(
margin: EdgeInsets.only(
bottom: 15,
left: 15,
right: 15,
top: 10,
),
child: SingleChildScrollView(
child: Column(
crossAxisAlignment: CrossAxisAlignment.start,
mainAxisSize: MainAxisSize.min,
children: [
Align(
alignment: Alignment.topLeft,
child: Text(
"Feedback Update",
style: TextStyle(
color: AppColors.app_blue,
fontSize: 16,
),
),
),
Padding(
padding: const EdgeInsets.only(bottom: 5.0, top: 8.0),
child: Text("Remarks"),
),
Container(
height: 150,
alignment: Alignment.center,
decoration: BoxDecoration(
color: Color(0xFFE9E9E9),
borderRadius: BorderRadius.circular(14),
),
child: Padding(
padding: const EdgeInsets.fromLTRB(10.0, 0.0, 10, 0),
child: TextFormField(
controller: provider.feedbackController,
readOnly: true,
keyboardType: TextInputType.text,
maxLines: 60 ,
onChanged: provider.onChangeFeedback,
style: TextStyle(color: Color(0xFF818181), fontSize: 14),
decoration: InputDecoration(
hintText: "Write Remarks",
hintStyle: TextStyle(
fontWeight: FontWeight.w400,
color: Color(0xFFB4BEC0),
fontSize: 14,
),
enabledBorder: InputBorder.none,
focusedBorder: InputBorder.none,
),
),
),
),
if(provider.feedbackError!=null)...[
Container(
alignment: Alignment.topLeft,
margin: EdgeInsets.only(top: 2.5, left: 25),
child: Text(
"${provider.feedbackError}",
style: TextStyle(color: Colors.red, fontSize: 10),
),
),
],
InkResponse(
onTap: () {
_showAttachmentSheet(context);
},
child: Container(
margin: EdgeInsets.symmetric(vertical: 10),
height: 45,
width: MediaQuery.of(context).size.width,
decoration: BoxDecoration(
color: Color(0xFFE6F6FF),
borderRadius: BorderRadius.circular(12),
border: Border.all(
color: AppColors.app_blue,
width: 0.5,
),
),
child: Center(
child: Text(
"Add Attachment",
style: TextStyle(
fontFamily: "JakartaMedium",
color: AppColors.app_blue,
),
),
),
),
),
if(provider.imagePicked==1 && provider.imagePath!=null)...[
Padding(
padding: const EdgeInsets.symmetric(vertical: 4.0),
child: Row(
mainAxisAlignment: MainAxisAlignment.spaceBetween,
children: [
Text("${provider.imagePath}",style: TextStyle(
color: AppColors.semi_black,
fontSize: 11,
fontWeight: FontWeight.w600
),),
InkResponse(
onTap: () {
provider.imagePicked = 0;
provider.imagePath = null;
provider.imageFilePath = null;
},
child: SvgPicture.asset("assets/svg/ic_close.svg",width: 15,height: 15,))
],
),
)
],
InkWell(
onTap: () {
provider.ordersDetailsFeedbackSubmissionAPIFunction(context,orderDetails.id,orderDetails.status);
},
child: Container(
alignment: Alignment.center,
height: 45,
decoration: BoxDecoration(
color: AppColors.app_blue, //1487C9
borderRadius: BorderRadius.circular(14.0),
),
child: Center(
child: Text(
"Submit",
textAlign: TextAlign.center,
style: TextStyle(color: Colors.white),
),
),
),
),
],
),
),
);
},
),
);
},
);
},
);
}
Future<void> _showAttachmentSheet(BuildContext context) {
return showModalBottomSheet(
useSafeArea: true,
isDismissible: true,
isScrollControlled: true,
showDragHandle: true,
backgroundColor: Colors.white,
enableDrag: true,
context: context,
builder: (context) {
return StatefulBuilder(
builder: (context, setState) {
return SafeArea(
child: Consumer<Pagesdashboardprovider>(
builder: (context, provider, child) {
return Padding(
padding: EdgeInsets.only(
bottom:
MediaQuery.of(
context,
).viewInsets.bottom, // This handles keyboard
),
child: Container(
margin: EdgeInsets.only(
bottom: 15,
left: 15,
right: 15,
top: 10,
),
child: SingleChildScrollView(
child: Column(
crossAxisAlignment: CrossAxisAlignment.start,
mainAxisSize: MainAxisSize.min,
children: [
Align(
alignment: Alignment.center,
child: Text(
"Select Source",
style: TextStyle(
color: AppColors.app_blue,
fontSize: 16,
),
),
),
SizedBox(height: 15),
InkWell(
onTap: () {
Navigator.of(context).pop(false);
provider.imgFromGallery(context);
},
child: Container(
height: 35,
child: Text("Select photo from gallery"),
),
),
SizedBox(height: 10),
InkWell(
onTap: () {
Navigator.of(context).pop(false);
provider.imgFromCamera(context);
},
child: Container(
height: 35,
child: Text("Capture photo from camera"),
),
),
],
),
),
),
);
},
),
);
},
);
},
);
}
}
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
......@@ -55,7 +55,7 @@ class _MonthlycollectionState extends State<Monthlycollection> {
child: Scaffold(
resizeToAvoidBottomInset: true,
backgroundColor: AppColors.scaffold_bg_color,
appBar: appbar2(context, "Payment Collection", sendWidget),
appBar: appbar2(context, "Payment Collection",provider.resetAll, sendWidget),
body: provider.paymenCollectionList.isNotEmpty?Container(
child: ListView.builder(
scrollDirection: Axis.vertical,
......
......@@ -211,7 +211,7 @@ class _NearbygeneratorsState extends State<Nearbygenerators> {
onWillPop: () => onBackPressed(context),
child: Scaffold(
resizeToAvoidBottomInset: true,
appBar: appbar2(context, "Nearby Generators",sendWidget),
appBar: appbar2(context, "Nearby Generators",provider.resetAll,sendWidget),
backgroundColor: AppColors.scaffold_bg_color,
body: Container(
child: SingleChildScrollView(
......
......@@ -42,6 +42,7 @@ class _PendingcomplaintsState extends State<Pendingcomplaints> {
appBar: appbar2(
context,
"Pending Complaints",
provider.resetAll,
InkResponse(
onTap: () {
Navigator.push(
......
This diff is collapsed.
......@@ -78,9 +78,41 @@ const commonAddAccountViewgetDistrictUrl = "${baseUrl_test}get_district_on_state
const commonAddAccountViewgetSubLocationUrl = "${baseUrl_test}get_sublocation_on_district";
const commonAddAccountCheckInputsUrl = "${baseUrl_test}check_common_add_account_fields";
const commonAddAccountSubmit = "${baseUrl_test}common_add_account_submit";
const commonAccountListUrl = "${baseUrl_test}common_account_list";
const commonAccountLedgerDropDownUrl = "${baseUrl_test}common_account_ledger_list_view";
const commonAccountLedgerListWithFilterUrl = "${baseUrl_test}common_account_ledger_list_submit_filter";
const commonAccountLedgerAccountDetails = "${baseUrl_test}common_account_details";
\ No newline at end of file
const commonAccountLedgerAccountDetails = "${baseUrl_test}common_account_details";
///order Module
const ordersAccessiblePagesUrl = "${baseUrl_test}crm_order_accessible_pages";
const ordersOrderListByModeUrl = "${baseUrl_test}crm_order_list_view";
const ordersOrderListFilterUrl = "${baseUrl_test}crm_order_list_filter_submit";
const ordersOrderApproveRejectUrl = "${baseUrl_test}approve_reject_crm_order";
const ordersOrderLDeleteUrl = "${baseUrl_test}delete_crm_order";
const ordersOrderDetailsUrl = "${baseUrl_test}crm_order_details";
const ordersOrderDetailsFeedbackSubmitUrl = "${baseUrl_test}crm_order_details_add_feedback";
const ordersOrderDetailsEditOrderUrl = "${baseUrl_test}crm_edit_order_view";
const ordersOrderDetailsEditOrderSubmitUrl = "${baseUrl_test}crm_edit_order_submit";
const ordersOrderDetailsDispatchProductsUrl = "${baseUrl_test}crm_dispatch_products_data";
const ordersAddPaymentViewUrl ="${baseUrl_test}crm_add_order_payment_view";
const ordersAddPaymentSubmitUrl ="${baseUrl_test}crm_add_order_payment_submit";
const ordersAddPaymentSelectAccountForOrderUrl ="${baseUrl_test}select_account_for_order_payment";
const ordersAddPaymentSelectOrderUrl ="${baseUrl_test}select_order_for_order_payment";
const ordersPaymentListFilterUrl = "${baseUrl_test}crm_payments_list_view";
const ordersPaymentListByModeUrl = "${baseUrl_test}crm_payments_list_filter_submit";
const ordersPaymentListDeleteUrl = "${baseUrl_test}delete_crm_order_payment";
const ordersPaymentListApproveRejectUrl = "${baseUrl_test}crm_approve_reject_payment";
const ordersPaymentDetailsUrl = "${baseUrl_test}crm_payment_details";
const ordersAddTPCAgentUrl = "${baseUrl_test}add_tpc_agent_submit";
const ordersTPCAgentListUrl = "${baseUrl_test}tpc_agent_list";
const ordersTPCAgentDetailsUrl = "${baseUrl_test}tpc_agent_details";
const ordersPendingTPCIssueListUrl = "${baseUrl_test}pending_tpc_issue_list";
const ordersApprovePendingTPCIssueListUrl = "${baseUrl_test}update_pending_tpc_issue_list";
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