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

19-06-2025 By Sai Srinivas

Finance Module Test cases & Safe Area
parent 4807bee4
......@@ -56,7 +56,7 @@ class _MonthlycollectionState extends State<Monthlycollection> {
resizeToAvoidBottomInset: true,
backgroundColor: AppColors.scaffold_bg_color,
appBar: appbar2(context, "Payment Collection",provider.resetAll, sendWidget),
body: provider.paymenCollectionList.isNotEmpty?Container(
body: SafeArea(child: provider.paymenCollectionList.isNotEmpty?Container(
child: ListView.builder(
scrollDirection: Axis.vertical,
shrinkWrap: true,
......@@ -203,12 +203,12 @@ class _MonthlycollectionState extends State<Monthlycollection> {
MaterialPageRoute(
builder:
(context) => WebErpScreen(
erp_url:
provider
.paymenCollectionList[index]
.paymentProofFilePath ??
"",
),
erp_url:
provider
.paymenCollectionList[index]
.paymentProofFilePath ??
"",
),
),
);
},
......@@ -232,7 +232,7 @@ class _MonthlycollectionState extends State<Monthlycollection> {
);
},
),
):Emptywidget(context),
):Emptywidget(context),)
),
);
},
......
......@@ -213,43 +213,45 @@ class _NearbygeneratorsState extends State<Nearbygenerators> {
resizeToAvoidBottomInset: true,
appBar: appbar2(context, "Nearby Generators",provider.resetAll,sendWidget),
backgroundColor: AppColors.scaffold_bg_color,
body: Container(
child: SingleChildScrollView(
child:Column(
children: [
ClipRRect(
// Apply border radius using ClipRRect
borderRadius: BorderRadius.only(
topLeft: Radius.circular(30.0),
topRight: Radius.circular(30.0),
),
// padding: EdgeInsets.fromLTRB(10, 20, 10, 20),
child: Container(
height: MediaQuery.of(context).size.height,
child: Stack(children: [
GoogleMap(
myLocationEnabled: true,
zoomGesturesEnabled: true,
initialCameraPosition: CameraPosition(
target: provider.startLocation,
zoom: 14.0,
body: SafeArea(
child: Container(
child: SingleChildScrollView(
child:Column(
children: [
ClipRRect(
// Apply border radius using ClipRRect
borderRadius: BorderRadius.only(
topLeft: Radius.circular(30.0),
topRight: Radius.circular(30.0),
),
// padding: EdgeInsets.fromLTRB(10, 20, 10, 20),
child: Container(
height: MediaQuery.of(context).size.height,
child: Stack(children: [
GoogleMap(
myLocationEnabled: true,
zoomGesturesEnabled: true,
initialCameraPosition: CameraPosition(
target: provider.startLocation,
zoom: 14.0,
),
markers:provider.markers.toSet(),
mapType: MapType.normal,
onMapCreated: (controller) {
setState(() {
provider.mapController = controller;
});
},
onCameraMove: (position) {
provider.onCameraMove(context,position);
},
),
markers:provider.markers.toSet(),
mapType: MapType.normal,
onMapCreated: (controller) {
setState(() {
provider.mapController = controller;
});
},
onCameraMove: (position) {
provider.onCameraMove(context,position);
},
),
]),
]),
),
),
),
],
],
),
),
),
),
......
......@@ -94,228 +94,230 @@ class _PcwalletState extends State<Pcwallet> {
),
),
backgroundColor: AppColors.scaffold_bg_color,
body: Container(
child: SingleChildScrollView(
child: Column(
children: [
Container(
padding: EdgeInsets.symmetric(horizontal: 10, vertical: 15),
decoration: BoxDecoration(
color: Colors.white,
borderRadius: BorderRadius.circular(16),
),
child: Row(
children: [
Expanded(
child: Container(
padding: EdgeInsets.symmetric(
horizontal: 15,
vertical: 15,
),
decoration: BoxDecoration(
color: Color(0xFFE7FFE5),
borderRadius: BorderRadius.circular(16),
),
child: Column(
crossAxisAlignment: CrossAxisAlignment.start,
children: [
Row(
crossAxisAlignment: CrossAxisAlignment.center,
children: [
Text(
"₹",
style: TextStyle(
height: 1,
color: Color(0xFF0D9C00),
body: SafeArea(
child: Container(
child: SingleChildScrollView(
child: Column(
children: [
Container(
padding: EdgeInsets.symmetric(horizontal: 10, vertical: 15),
decoration: BoxDecoration(
color: Colors.white,
borderRadius: BorderRadius.circular(16),
),
child: Row(
children: [
Expanded(
child: Container(
padding: EdgeInsets.symmetric(
horizontal: 15,
vertical: 15,
),
decoration: BoxDecoration(
color: Color(0xFFE7FFE5),
borderRadius: BorderRadius.circular(16),
),
child: Column(
crossAxisAlignment: CrossAxisAlignment.start,
children: [
Row(
crossAxisAlignment: CrossAxisAlignment.center,
children: [
Text(
"₹",
style: TextStyle(
height: 1,
color: Color(0xFF0D9C00),
),
),
),
Text(
"${provider.totlDetails.creditAmount??"0.00"}",
style: TextStyle(
fontSize: 30,
height: 1,
color: Color(0xFF0D9C00),
Text(
"${provider.totlDetails.creditAmount??"0.00"}",
style: TextStyle(
fontSize: 30,
height: 1,
color: Color(0xFF0D9C00),
),
),
),
],
),
Text("Credited",style: TextStyle(
fontFamily: "JakartaMedium"
),),
],
],
),
Text("Credited",style: TextStyle(
fontFamily: "JakartaMedium"
),),
],
),
),
),
),
SizedBox(width: 10),
Expanded(
child: Container(
padding: EdgeInsets.symmetric(
horizontal: 15,
vertical: 15,
),
decoration: BoxDecoration(
color: Color(0xFFFFEFEF),
borderRadius: BorderRadius.circular(16),
),
child: Column(
crossAxisAlignment: CrossAxisAlignment.start,
children: [
Row(
crossAxisAlignment: CrossAxisAlignment.center,
children: [
Text(
"₹",
style: TextStyle(
height: 1,
color: Color(0xFFED3424),
SizedBox(width: 10),
Expanded(
child: Container(
padding: EdgeInsets.symmetric(
horizontal: 15,
vertical: 15,
),
decoration: BoxDecoration(
color: Color(0xFFFFEFEF),
borderRadius: BorderRadius.circular(16),
),
child: Column(
crossAxisAlignment: CrossAxisAlignment.start,
children: [
Row(
crossAxisAlignment: CrossAxisAlignment.center,
children: [
Text(
"₹",
style: TextStyle(
height: 1,
color: Color(0xFFED3424),
),
),
),
Text(
"${provider.totlDetails.debitAmount??0.00}",
style: TextStyle(
fontSize: 30,
height: 1,
color: Color(0xFFED3424),
Text(
"${provider.totlDetails.debitAmount??0.00}",
style: TextStyle(
fontSize: 30,
height: 1,
color: Color(0xFFED3424),
),
),
),
],
),
Text("Debited",style: TextStyle(
fontFamily: "JakartaMedium"
)),
],
],
),
Text("Debited",style: TextStyle(
fontFamily: "JakartaMedium"
)),
],
),
),
),
),
],
],
),
),
),
ListView.builder(
physics: NeverScrollableScrollPhysics(),
shrinkWrap: true,
itemCount: groupedData.keys.length,
itemBuilder: (context, index) {
String date = groupedData.keys.elementAt(index);
List<HistoryList> items = groupedData[date]!;
return Container(
padding: EdgeInsets.symmetric(vertical: 5),
margin: EdgeInsets.symmetric(horizontal: 10),
child: Column(
crossAxisAlignment: CrossAxisAlignment.start,
children: [
Container(
padding: EdgeInsets.only(bottom: 5),
child: Text(
date,
style: TextStyle(
fontSize: 14,
fontFamily: "JakartaMedium",
color: Color(0xFF818181),
ListView.builder(
physics: NeverScrollableScrollPhysics(),
shrinkWrap: true,
itemCount: groupedData.keys.length,
itemBuilder: (context, index) {
String date = groupedData.keys.elementAt(index);
List<HistoryList> items = groupedData[date]!;
return Container(
padding: EdgeInsets.symmetric(vertical: 5),
margin: EdgeInsets.symmetric(horizontal: 10),
child: Column(
crossAxisAlignment: CrossAxisAlignment.start,
children: [
Container(
padding: EdgeInsets.only(bottom: 5),
child: Text(
date,
style: TextStyle(
fontSize: 14,
fontFamily: "JakartaMedium",
color: Color(0xFF818181),
),
),
),
),
...items.map((item) {
String part1 =
item.description!.split(' (').first;
RegExp regExp = RegExp(r'\(([^)]+)\)');
String? part2 = regExp
.firstMatch(item.description!)
?.group(1);
return Container(
padding: EdgeInsets.symmetric(
horizontal: 10,
vertical: 10,
),
decoration: BoxDecoration(
color: Colors.white,
borderRadius: BorderRadius.circular(16),
),
child: Row(
mainAxisAlignment:
MainAxisAlignment.start,
children: [
Expanded(
flex:1,
child: SizedBox(
child: item.transactionType == "Credit"
? Image.asset(
"assets/images/trans_credit.png",
height: 45,
width: 45,
fit: BoxFit.contain,
)
: Image.asset(
"assets/images/trans_debit.png",
height: 45,
width: 45,
fit: BoxFit.contain,
),
),
),
SizedBox(width: 10,),
Expanded(
flex:5,
child: SizedBox(
child: Column(
crossAxisAlignment:
CrossAxisAlignment.start,
children: [
Text(part1,style: TextStyle(
fontFamily: "JakartaMedium"
),),
Text(
"${part2}",
style: TextStyle(
color: Color(0xFF818181),
),
...items.map((item) {
String part1 =
item.description!.split(' (').first;
RegExp regExp = RegExp(r'\(([^)]+)\)');
String? part2 = regExp
.firstMatch(item.description!)
?.group(1);
return Container(
padding: EdgeInsets.symmetric(
horizontal: 10,
vertical: 10,
),
decoration: BoxDecoration(
color: Colors.white,
borderRadius: BorderRadius.circular(16),
),
child: Row(
mainAxisAlignment:
MainAxisAlignment.start,
children: [
Expanded(
flex:1,
child: SizedBox(
child: item.transactionType == "Credit"
? Image.asset(
"assets/images/trans_credit.png",
height: 45,
width: 45,
fit: BoxFit.contain,
)
: Image.asset(
"assets/images/trans_debit.png",
height: 45,
width: 45,
fit: BoxFit.contain,
),
],
),
),
),
Spacer(),
Expanded(
flex: 2,
child: SizedBox(
child: RichText(
text: TextSpan(
SizedBox(width: 10,),
Expanded(
flex:5,
child: SizedBox(
child: Column(
crossAxisAlignment:
CrossAxisAlignment.start,
children: [
TextSpan(
text: item.transactionType ==
"Credit"
? "+":"-",
Text(part1,style: TextStyle(
fontFamily: "JakartaMedium"
),),
Text(
"${part2}",
style: TextStyle(
color: Color(0xFF2D2D2D),
fontSize: 14,
fontFamily: "JakartaRegular",
),
),
TextSpan(
text: "₹${item.amount!}",
style: TextStyle(
color: Color(0xFF2D2D2D),
fontSize: 14,
fontFamily: "JakartaMedium",
color: Color(0xFF818181),
),
),
],
),
),
),
),
],
),
);
}).toList(),
],
),
);
},
),
],
Spacer(),
Expanded(
flex: 2,
child: SizedBox(
child: RichText(
text: TextSpan(
children: [
TextSpan(
text: item.transactionType ==
"Credit"
? "+":"-",
style: TextStyle(
color: Color(0xFF2D2D2D),
fontSize: 14,
fontFamily: "JakartaRegular",
),
),
TextSpan(
text: "₹${item.amount!}",
style: TextStyle(
color: Color(0xFF2D2D2D),
fontSize: 14,
fontFamily: "JakartaMedium",
),
),
],
),
),
),
),
],
),
);
}).toList(),
],
),
);
},
),
],
),
),
),
),
......
......@@ -65,395 +65,397 @@ class _PaymentdetailsState extends State<Paymentdetails> {
resizeToAvoidBottomInset: true,
appBar: appbar(context, "Payment Details"),
backgroundColor: AppColors.scaffold_bg_color,
body: Container(
padding: EdgeInsets.symmetric(horizontal: 10, vertical: 10),
margin: EdgeInsets.symmetric(horizontal: 10, vertical: 10),
decoration: BoxDecoration(
color: Colors.white,
borderRadius: BorderRadius.circular(20)
),
child: SingleChildScrollView(
child: Column(
crossAxisAlignment: CrossAxisAlignment.start,
children: [
Container(
padding: EdgeInsets.symmetric(vertical: 5),
child: Text("${widget.name}",
style: TextStyle(
fontFamily: "JakartaMedium",
color: AppColors.app_blue),)),
SizedBox(height: 10,),
Padding(
padding: const EdgeInsets.only(bottom: 5.0),
child: Text("Phone Number"),
),
DropdownButtonHideUnderline(
child: Row(
children: [
Expanded(
child: DropdownButton2<Contacts>(
isExpanded: true,
hint: const Row(
children: [
Expanded(
child: Text(
'Select Phone Number',
style: TextStyle(
fontSize: 14,
body: SafeArea(
child: Container(
padding: EdgeInsets.symmetric(horizontal: 10, vertical: 10),
margin: EdgeInsets.symmetric(horizontal: 10, vertical: 10),
decoration: BoxDecoration(
color: Colors.white,
borderRadius: BorderRadius.circular(20)
),
child: SingleChildScrollView(
child: Column(
crossAxisAlignment: CrossAxisAlignment.start,
children: [
Container(
padding: EdgeInsets.symmetric(vertical: 5),
child: Text("${widget.name}",
style: TextStyle(
fontFamily: "JakartaMedium",
color: AppColors.app_blue),)),
SizedBox(height: 10,),
Padding(
padding: const EdgeInsets.only(bottom: 5.0),
child: Text("Phone Number"),
),
DropdownButtonHideUnderline(
child: Row(
children: [
Expanded(
child: DropdownButton2<Contacts>(
isExpanded: true,
hint: const Row(
children: [
Expanded(
child: Text(
'Select Phone Number',
style: TextStyle(
fontSize: 14,
),
overflow: TextOverflow.ellipsis,
),
overflow: TextOverflow.ellipsis,
),
),
],
),
items: [
...provider.contactsDropDown.map((contacts) {
return DropdownMenuItem<Contacts>(
value: contacts,
// You can use the entire object, but we need to ensure it's unique
child: Column(
crossAxisAlignment: CrossAxisAlignment
.start,
children: [
Text(
contacts.name ?? "",
maxLines: 1,
style: const TextStyle(
fontSize: 12,
),
overflow: TextOverflow.ellipsis,
),
Text(
contacts.mob1 ?? "",
style: const TextStyle(
fontSize: 12,
],
),
items: [
...provider.contactsDropDown.map((contacts) {
return DropdownMenuItem<Contacts>(
value: contacts,
// You can use the entire object, but we need to ensure it's unique
child: Column(
crossAxisAlignment: CrossAxisAlignment
.start,
children: [
Text(
contacts.name ?? "",
maxLines: 1,
style: const TextStyle(
fontSize: 12,
),
overflow: TextOverflow.ellipsis,
),
overflow: TextOverflow.ellipsis,
),
],
),
);
}).toList(),
DropdownMenuItem<Contacts>(
value: null,
// No value associated with the button
enabled: false,
// To disable selecting this item
child: InkWell(
onTap: () {
_addContactSheet(context);
},
child: Container(
decoration: BoxDecoration(
border: Border.all(
color: AppColors.app_blue,
width: 0.5
),
borderRadius: BorderRadius.circular(12)
),
padding: const EdgeInsets.symmetric(
vertical: 12, horizontal: 14),
child: Row(
mainAxisAlignment: MainAxisAlignment
.center,
children: const [
Text(
'Add Contact',
style: TextStyle(fontSize: 14,
color: Colors.blue),
contacts.mob1 ?? "",
style: const TextStyle(
fontSize: 12,
),
overflow: TextOverflow.ellipsis,
),
],
),
);
}).toList(),
DropdownMenuItem<Contacts>(
value: null,
// No value associated with the button
enabled: false,
// To disable selecting this item
child: InkWell(
onTap: () {
_addContactSheet(context);
},
child: Container(
decoration: BoxDecoration(
border: Border.all(
color: AppColors.app_blue,
width: 0.5
),
borderRadius: BorderRadius.circular(12)
),
padding: const EdgeInsets.symmetric(
vertical: 12, horizontal: 14),
child: Row(
mainAxisAlignment: MainAxisAlignment
.center,
children: const [
Text(
'Add Contact',
style: TextStyle(fontSize: 14,
color: Colors.blue),
),
],
),
),
),
),
),
],
value: provider.selectContact,
// The selected value is now the entire 'Contacts' object
onChanged: (Contacts? value) {
if (value != null) {
if (provider.contactsDropDown.isNotEmpty) {
provider.selectContact =
value; // Set the selected contact
provider.contact = value.name ??
""; // Update the contact name
provider.contactID = value.mob1 ??
""; // Update the contact ID
debugPrint("Selected Contact: ${value
.name}, Phone: ${value.mob1}");
],
value: provider.selectContact,
// The selected value is now the entire 'Contacts' object
onChanged: (Contacts? value) {
if (value != null) {
if (provider.contactsDropDown.isNotEmpty) {
provider.selectContact =
value; // Set the selected contact
provider.contact = value.name ??
""; // Update the contact name
provider.contactID = value.mob1 ??
""; // Update the contact ID
debugPrint("Selected Contact: ${value
.name}, Phone: ${value.mob1}");
}
}
}
},
buttonStyleData: ButtonStyleData(
height: 50,
width: 160,
padding: const EdgeInsets.only(
left: 14, right: 14),
decoration: BoxDecoration(
borderRadius: BorderRadius.circular(14),
color: AppColors.text_field_color,
},
buttonStyleData: ButtonStyleData(
height: 50,
width: 160,
padding: const EdgeInsets.only(
left: 14, right: 14),
decoration: BoxDecoration(
borderRadius: BorderRadius.circular(14),
color: AppColors.text_field_color,
),
),
),
iconStyleData: IconStyleData(
icon: SvgPicture.asset("assets/svg/arrow_dropdown.svg",height: 25,width: 20,),
iconSize: 12,
iconEnabledColor: Color(0xFF2D2D2D),
iconDisabledColor: Colors.grey,
),
dropdownStyleData: DropdownStyleData(
maxHeight: 200,
width: 280,
decoration: BoxDecoration(
borderRadius: BorderRadius.circular(14),
color: AppColors.text_field_color,
iconStyleData: IconStyleData(
icon: SvgPicture.asset("assets/svg/arrow_dropdown.svg",height: 25,width: 20,),
iconSize: 12,
iconEnabledColor: Color(0xFF2D2D2D),
iconDisabledColor: Colors.grey,
),
scrollbarTheme: ScrollbarThemeData(
radius: const Radius.circular(15),
thickness: MaterialStateProperty.all<double>(
6),
thumbVisibility: MaterialStateProperty.all<
bool>(true),
dropdownStyleData: DropdownStyleData(
maxHeight: 200,
width: 280,
decoration: BoxDecoration(
borderRadius: BorderRadius.circular(14),
color: AppColors.text_field_color,
),
scrollbarTheme: ScrollbarThemeData(
radius: const Radius.circular(15),
thickness: MaterialStateProperty.all<double>(
6),
thumbVisibility: MaterialStateProperty.all<
bool>(true),
),
),
menuItemStyleData: const MenuItemStyleData(
height: 60,
padding: EdgeInsets.only(left: 14, right: 14),
),
),
menuItemStyleData: const MenuItemStyleData(
height: 60,
padding: EdgeInsets.only(left: 14, right: 14),
),
),
),
],
],
),
),
),
SizedBox(height: 10,),
Padding(
padding: const EdgeInsets.only(bottom: 5.0),
child: Text("Complaint Type"),
),
DropdownButtonHideUnderline(
child: Row(
children: [
Expanded(
child: DropdownButton2<PaymentModeList>(
isExpanded: true,
hint: const Row(
children: [
Expanded(
child: Text(
'Select Complaint Type',
style: TextStyle(
fontSize: 14,
SizedBox(height: 10,),
Padding(
padding: const EdgeInsets.only(bottom: 5.0),
child: Text("Complaint Type"),
),
DropdownButtonHideUnderline(
child: Row(
children: [
Expanded(
child: DropdownButton2<PaymentModeList>(
isExpanded: true,
hint: const Row(
children: [
Expanded(
child: Text(
'Select Complaint Type',
style: TextStyle(
fontSize: 14,
),
overflow: TextOverflow.ellipsis,
),
overflow: TextOverflow.ellipsis,
),
),
],
),
items: provider.paymentModeDropDown
.map((paymentMode) =>
DropdownMenuItem<PaymentModeList>(
value: paymentMode,
child: Text(
paymentMode.name ?? '',
style: const TextStyle(
fontSize: 14,
],
),
items: provider.paymentModeDropDown
.map((paymentMode) =>
DropdownMenuItem<PaymentModeList>(
value: paymentMode,
child: Text(
paymentMode.name ?? '',
style: const TextStyle(
fontSize: 14,
),
overflow: TextOverflow.ellipsis,
),
overflow: TextOverflow.ellipsis,
),
))
.toList(),
value: provider.selectPaymentMode,
onChanged: (PaymentModeList? value) {
if (value != null) {
if (provider.paymentModeDropDown.isNotEmpty) {
provider.selectPaymentMode = value;
print(
"Selected Complaint Type: ${value
.name}, ID: ${value.id}");
provider.PaymentMode = value?.name;
provider.paymentModeID = value?.id;
print("hfjkshfg" +
provider.paymentModeID.toString());
))
.toList(),
value: provider.selectPaymentMode,
onChanged: (PaymentModeList? value) {
if (value != null) {
if (provider.paymentModeDropDown.isNotEmpty) {
provider.selectPaymentMode = value;
print(
"Selected Complaint Type: ${value
.name}, ID: ${value.id}");
provider.PaymentMode = value?.name;
provider.paymentModeID = value?.id;
print("hfjkshfg" +
provider.paymentModeID.toString());
}
}
}
},
buttonStyleData: ButtonStyleData(
height: 50,
width: MediaQuery
.of(context)
.size
.width,
padding: const EdgeInsets.only(
left: 14, right: 14),
decoration: BoxDecoration(
borderRadius: BorderRadius.circular(14),
color: AppColors.text_field_color,
},
buttonStyleData: ButtonStyleData(
height: 50,
width: MediaQuery
.of(context)
.size
.width,
padding: const EdgeInsets.only(
left: 14, right: 14),
decoration: BoxDecoration(
borderRadius: BorderRadius.circular(14),
color: AppColors.text_field_color,
),
),
),
iconStyleData: IconStyleData(
icon: SvgPicture.asset("assets/svg/arrow_dropdown.svg",height: 25,width: 20,),
iconSize: 12,
iconEnabledColor: Color(0xFF2D2D2D),
iconDisabledColor: Colors.grey,
),
dropdownStyleData: DropdownStyleData(
maxHeight: 200,
width: 340,
decoration: BoxDecoration(
borderRadius: BorderRadius.circular(14),
color: AppColors.text_field_color,
iconStyleData: IconStyleData(
icon: SvgPicture.asset("assets/svg/arrow_dropdown.svg",height: 25,width: 20,),
iconSize: 12,
iconEnabledColor: Color(0xFF2D2D2D),
iconDisabledColor: Colors.grey,
),
scrollbarTheme: ScrollbarThemeData(
radius: const Radius.circular(15),
thickness:
MaterialStateProperty.all<double>(6),
thumbVisibility:
MaterialStateProperty.all<bool>(true),
dropdownStyleData: DropdownStyleData(
maxHeight: 200,
width: 340,
decoration: BoxDecoration(
borderRadius: BorderRadius.circular(14),
color: AppColors.text_field_color,
),
scrollbarTheme: ScrollbarThemeData(
radius: const Radius.circular(15),
thickness:
MaterialStateProperty.all<double>(6),
thumbVisibility:
MaterialStateProperty.all<bool>(true),
),
),
menuItemStyleData: const MenuItemStyleData(
height: 40,
padding:
EdgeInsets.only(left: 14, right: 14),
),
),
menuItemStyleData: const MenuItemStyleData(
height: 40,
padding:
EdgeInsets.only(left: 14, right: 14),
),
),
),
],
),
),
SizedBox(height: 10,),
Padding(
padding: const EdgeInsets.only(bottom: 5.0),
child: Text("Amount"),
),
Container(
height: 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:
Amountcontroller,
keyboardType:
TextInputType.text,
decoration: InputDecoration(
hintText:
"Enter Amount",
hintStyle: TextStyle(
fontWeight: FontWeight.w400,
color: Color(0xFFB4BEC0),
fontSize: 14
),
enabledBorder:
InputBorder.none,
focusedBorder:
InputBorder.none,
),
],
),
),
),
SizedBox(height: 10,),
Padding(
padding: const EdgeInsets.only(bottom: 5.0),
child: Text("Reference Number"),
),
Container(
height: 50,
alignment: Alignment.center,
decoration: BoxDecoration(
color: AppColors.text_field_color,
borderRadius:
BorderRadius.circular(14),
SizedBox(height: 10,),
Padding(
padding: const EdgeInsets.only(bottom: 5.0),
child: Text("Amount"),
),
child: Padding(
padding:
const EdgeInsets.fromLTRB(
10.0, 0.0, 10, 0),
child: TextFormField(
controller:
Referencecontroller,
keyboardType:
TextInputType.text,
decoration: InputDecoration(
hintText:
"Enter Reference Number",
hintStyle: TextStyle(
fontWeight: FontWeight.w400,
color: Color(0xFFB4BEC0),
fontSize: 14
Container(
height: 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:
Amountcontroller,
keyboardType:
TextInputType.text,
decoration: InputDecoration(
hintText:
"Enter Amount",
hintStyle: TextStyle(
fontWeight: FontWeight.w400,
color: Color(0xFFB4BEC0),
fontSize: 14
),
enabledBorder:
InputBorder.none,
focusedBorder:
InputBorder.none,
),
enabledBorder:
InputBorder.none,
focusedBorder:
InputBorder.none,
),
),
),
),
SizedBox(height: 10,),
InkResponse(
onTap: () {
_showAttachmentSheet(context);
},
child: Container(
margin: EdgeInsets.symmetric(vertical: 10),
height: 45,
width: MediaQuery
.of(context)
.size
.width,
SizedBox(height: 10,),
Padding(
padding: const EdgeInsets.only(bottom: 5.0),
child: Text("Reference Number"),
),
Container(
height: 50,
alignment: Alignment.center,
decoration: BoxDecoration(
color: Color(0xFFE6F6FF),
borderRadius: BorderRadius.circular(12),
border: Border.all(
color: AppColors.app_blue, width: 0.5)
color: AppColors.text_field_color,
borderRadius:
BorderRadius.circular(14),
),
child: Center(
child: Text("Scan Document", style: TextStyle(
fontFamily: "JakartaMedium",
color: AppColors.app_blue
),),
child: Padding(
padding:
const EdgeInsets.fromLTRB(
10.0, 0.0, 10, 0),
child: TextFormField(
controller:
Referencecontroller,
keyboardType:
TextInputType.text,
decoration: InputDecoration(
hintText:
"Enter Reference Number",
hintStyle: TextStyle(
fontWeight: FontWeight.w400,
color: Color(0xFFB4BEC0),
fontSize: 14
),
enabledBorder:
InputBorder.none,
focusedBorder:
InputBorder.none,
),
),
),
),
),
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
SizedBox(height: 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("Scan Document", style: TextStyle(
fontFamily: "JakartaMedium",
color: AppColors.app_blue
),),
InkResponse(
onTap: () {
provider.imagePicked = 0;
provider.imagePath = null;
provider.imageFilePath = null;
},
child: SvgPicture.asset("assets/svg/ic_close.svg",width: 15,height: 15,))
],
),
),
)
),
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,))
],
),
)
],
],
],
),
),
),
),
......
......@@ -55,7 +55,7 @@ class _PendingcomplaintsState extends State<Pendingcomplaints> {
child: SvgPicture.asset("assets/svg/scanner.svg"),
),
),
body: provider.technician_complaint_list.isNotEmpty?Container(
body: SafeArea(child: provider.technician_complaint_list.isNotEmpty?Container(
child: ListView.builder(
scrollDirection: Axis.vertical,
shrinkWrap: true,
......@@ -95,7 +95,7 @@ class _PendingcomplaintsState extends State<Pendingcomplaints> {
flex: 4,
child: Column(
crossAxisAlignment:
CrossAxisAlignment.start,
CrossAxisAlignment.start,
children: [
Text(
"${provider.technician_complaint_list[index].contactName}",
......@@ -179,7 +179,7 @@ class _PendingcomplaintsState extends State<Pendingcomplaints> {
padding: EdgeInsets.symmetric(vertical: 3),
child: Row(
crossAxisAlignment:
CrossAxisAlignment.start,
CrossAxisAlignment.start,
children: [
Expanded(
flex: 1,
......@@ -210,11 +210,11 @@ class _PendingcomplaintsState extends State<Pendingcomplaints> {
MaterialPageRoute(
builder:
(context) => Visitdetails(
complaintID:
provider
.technician_complaint_list[index]
.complaintId,
),
complaintID:
provider
.technician_complaint_list[index]
.complaintId,
),
),
);
},
......@@ -225,8 +225,8 @@ class _PendingcomplaintsState extends State<Pendingcomplaints> {
Text(
"View Details",
style: TextStyle(
color: AppColors.app_blue,
fontFamily: "JakartaMedium"
color: AppColors.app_blue,
fontFamily: "JakartaMedium"
),
),
SizedBox(width: 5),
......@@ -241,7 +241,7 @@ class _PendingcomplaintsState extends State<Pendingcomplaints> {
);
},
),
):Emptywidget(context),
):Emptywidget(context),)
),
);
},
......
......@@ -50,238 +50,238 @@ class _TodaymontlyvisistsState extends State<Todaymontlyvisists> {
resizeToAvoidBottomInset: true,
backgroundColor: AppColors.scaffold_bg_color,
appBar: appbar(context, provider.title),
body:
provider.visitsList.isNotEmpty
? Container(
child: ListView.builder(
scrollDirection: Axis.vertical,
shrinkWrap: true,
itemCount: provider.visitsList.length,
padding: EdgeInsets.symmetric(
horizontal: 10,
vertical: 10,
),
body:SafeArea(child:
provider.visitsList.isNotEmpty
? Container(
child: ListView.builder(
scrollDirection: Axis.vertical,
shrinkWrap: true,
itemCount: provider.visitsList.length,
padding: EdgeInsets.symmetric(
horizontal: 10,
vertical: 10,
),
itemBuilder: (context, index) {
return Container(
padding: EdgeInsets.symmetric(
horizontal: 10,
vertical: 10,
),
margin: EdgeInsets.symmetric(vertical: 5),
decoration: BoxDecoration(
color: Colors.white,
borderRadius: BorderRadius.circular(20),
itemBuilder: (context, index) {
return Container(
padding: EdgeInsets.symmetric(
horizontal: 10,
vertical: 10,
),
margin: EdgeInsets.symmetric(vertical: 5),
decoration: BoxDecoration(
color: Colors.white,
borderRadius: BorderRadius.circular(20),
),
child: Column(
crossAxisAlignment: CrossAxisAlignment.start,
children: [
Row(
crossAxisAlignment: CrossAxisAlignment.center,
mainAxisAlignment: MainAxisAlignment.center,
children: [
Expanded(
flex: 1,
child: Container(
padding: EdgeInsets.symmetric(
horizontal: 10,
vertical: 10,
),
decoration: BoxDecoration(
color: Color(0xFFE6F6FF),
borderRadius: BorderRadius.circular(
8,
),
),
child: SvgPicture.asset(
width: 30,
height: 30,
"assets/svg/se_block_head.svg",
),
),
),
child: Column(
crossAxisAlignment: CrossAxisAlignment.start,
children: [
Row(
crossAxisAlignment: CrossAxisAlignment.center,
mainAxisAlignment: MainAxisAlignment.center,
children: [
Expanded(
flex: 1,
child: Container(
padding: EdgeInsets.symmetric(
horizontal: 10,
vertical: 10,
),
decoration: BoxDecoration(
color: Color(0xFFE6F6FF),
borderRadius: BorderRadius.circular(
8,
),
),
child: SvgPicture.asset(
width: 30,
height: 30,
"assets/svg/se_block_head.svg",
),
),
),
SizedBox(width: 5),
SizedBox(width: 5),
Expanded(
flex: 4,
child: SizedBox(
child: Column(
crossAxisAlignment:
CrossAxisAlignment.start,
children: [
Text(
"${provider.visitsList[index].contactName ?? "-"}",
maxLines: 1,
overflow: TextOverflow.ellipsis,
style: TextStyle(
fontFamily: "JakartaMedium",
),
),
Text(
"${provider.visitsList[index].companyName}",
maxLines: 1,
overflow: TextOverflow.ellipsis,
style: TextStyle(
color: Color(0xFF818181),
),
),
],
),
Expanded(
flex: 4,
child: SizedBox(
child: Column(
crossAxisAlignment:
CrossAxisAlignment.start,
children: [
Text(
"${provider.visitsList[index].contactName ?? "-"}",
maxLines: 1,
overflow: TextOverflow.ellipsis,
style: TextStyle(
fontFamily: "JakartaMedium",
),
),
Spacer(),
Expanded(
flex: 1,
child: InkResponse(
onTap: () {
launch(
'tel://${provider.visitsList[index].mobileNo}',
);
},
child: SvgPicture.asset(
"assets/svg/se_call_customer.svg",
color: Color(0xFF0D9C00),
height: 20,
width: 20,
),
Text(
"${provider.visitsList[index].companyName}",
maxLines: 1,
overflow: TextOverflow.ellipsis,
style: TextStyle(
color: Color(0xFF818181),
),
),
// Expanded(
// flex: 1,
// child: InkResponse(
// onTap: () {
// _showOptionsSheet(context);
// },
// child: Icon(Icons.more_vert),
// ),
// ),
],
),
Padding(
padding: const EdgeInsets.all(8.0),
child: Divider(
thickness: 0.5,
color: Color(0xFFD7D7D7),
),
),
Spacer(),
Expanded(
flex: 1,
child: InkResponse(
onTap: () {
launch(
'tel://${provider.visitsList[index].mobileNo}',
);
},
child: SvgPicture.asset(
"assets/svg/se_call_customer.svg",
color: Color(0xFF0D9C00),
height: 20,
width: 20,
),
),
),
// Expanded(
// flex: 1,
// child: InkResponse(
// onTap: () {
// _showOptionsSheet(context);
// },
// child: Icon(Icons.more_vert),
// ),
// ),
],
),
Padding(
padding: const EdgeInsets.all(8.0),
child: Divider(
thickness: 0.5,
color: Color(0xFFD7D7D7),
),
),
...List.generate(3, (j) {
final textheads = [
"ID",
"Generator Type",
"Address",
];
final textSubheads = [
provider.visitsList[index].genId,
provider.visitsList[index].productName,
provider.visitsList[index].address,
];
return Container(
padding: EdgeInsets.symmetric(vertical: 3),
child: Row(
crossAxisAlignment:
CrossAxisAlignment.start,
children: [
Expanded(
flex: 1,
child: Text(
textheads[j].toString(),
style: TextStyle(
fontFamily: "JakartaMedium",
),
),
),
...List.generate(3, (j) {
final textheads = [
"ID",
"Generator Type",
"Address",
];
final textSubheads = [
provider.visitsList[index].genId,
provider.visitsList[index].productName,
provider.visitsList[index].address,
];
return Container(
padding: EdgeInsets.symmetric(vertical: 3),
child: Row(
crossAxisAlignment:
CrossAxisAlignment.start,
children: [
Expanded(
flex: 1,
child: Text(
textheads[j].toString(),
style: TextStyle(
fontFamily: "JakartaMedium",
),
),
),
Expanded(
flex: 2,
child: Text(
textSubheads[j].toString(),
style: TextStyle(
color: Color(0xFF818181),
),
),
),
],
Expanded(
flex: 2,
child: Text(
textSubheads[j].toString(),
style: TextStyle(
color: Color(0xFF818181),
),
);
}),
SizedBox(
child: Row(
mainAxisAlignment:
MainAxisAlignment.spaceBetween,
children: [
InkResponse(
onTap: () {
Navigator.push(
context,
MaterialPageRoute(
builder:
(context) => Paymentdetails(
accountName: "Generator",
name:
provider
.visitsList[index]
.companyName,
genId:
provider
.visitsList[index]
.genId,
referenceID:
provider
.visitsList[index]
.complaintId,
),
),
);
},
child: SvgPicture.asset(
"assets/svg/se_payment_details.svg",
),
),
Spacer(),
InkResponse(
onTap: () {
Navigator.push(
context,
MaterialPageRoute(
builder:
(context) => Visitdetails(
complaintID:
provider
.visitsList[index]
.complaintId,
),
),
);
},
child: Row(
mainAxisAlignment:
MainAxisAlignment.start,
crossAxisAlignment:
CrossAxisAlignment.center,
children: [
Text(
"View Details",
style: TextStyle(
fontFamily: "JakartaMedium",
color: AppColors.app_blue,
),
),
SizedBox(width: 5),
SvgPicture.asset(
"assets/svg/next_button.svg",
),
],
),
),
],
),
),
],
),
);
},
),
)
: Emptywidget(context),
}),
SizedBox(
child: Row(
mainAxisAlignment:
MainAxisAlignment.spaceBetween,
children: [
InkResponse(
onTap: () {
Navigator.push(
context,
MaterialPageRoute(
builder:
(context) => Paymentdetails(
accountName: "Generator",
name:
provider
.visitsList[index]
.companyName,
genId:
provider
.visitsList[index]
.genId,
referenceID:
provider
.visitsList[index]
.complaintId,
),
),
);
},
child: SvgPicture.asset(
"assets/svg/se_payment_details.svg",
),
),
Spacer(),
InkResponse(
onTap: () {
Navigator.push(
context,
MaterialPageRoute(
builder:
(context) => Visitdetails(
complaintID:
provider
.visitsList[index]
.complaintId,
),
),
);
},
child: Row(
mainAxisAlignment:
MainAxisAlignment.start,
crossAxisAlignment:
CrossAxisAlignment.center,
children: [
Text(
"View Details",
style: TextStyle(
fontFamily: "JakartaMedium",
color: AppColors.app_blue,
),
),
SizedBox(width: 5),
SvgPicture.asset(
"assets/svg/next_button.svg",
),
],
),
),
],
),
),
],
),
);
},
),
)
: Emptywidget(context),)
),
);
},
......
......@@ -31,247 +31,129 @@ class _UpdatecomplaintsState extends State<Updatecomplaints> {
resizeToAvoidBottomInset: true,
appBar: appbar(context, "Update Complaint"),
backgroundColor: AppColors.scaffold_bg_color,
body: Container(
padding: EdgeInsets.symmetric(horizontal: 10,vertical: 10),
decoration: BoxDecoration(
color: Colors.white,
borderRadius: BorderRadius.circular(20)
),
child: SingleChildScrollView(
child: Column(
crossAxisAlignment: CrossAxisAlignment.start,
mainAxisSize: MainAxisSize.min,
children: [
SizedBox(height: 15),
Padding(
padding: const EdgeInsets.only(bottom: 5.0),
child: Text(
"Complaint Status",
style: TextStyle(
fontFamily: "JakartaMedium",
color: AppColors.semi_black,
body: SafeArea(
child: Container(
padding: EdgeInsets.symmetric(horizontal: 10,vertical: 10),
decoration: BoxDecoration(
color: Colors.white,
borderRadius: BorderRadius.circular(20)
),
child: SingleChildScrollView(
child: Column(
crossAxisAlignment: CrossAxisAlignment.start,
mainAxisSize: MainAxisSize.min,
children: [
SizedBox(height: 15),
Padding(
padding: const EdgeInsets.only(bottom: 5.0),
child: Text(
"Complaint Status",
style: TextStyle(
fontFamily: "JakartaMedium",
color: AppColors.semi_black,
),
),
),
),
DropdownButtonHideUnderline(
child: Row(
children: [
Expanded(
child: DropdownButton2<String>(
isExpanded: true,
hint: const Row(
children: [
Expanded(
child: Text(
'Select Complaint Status',
style: TextStyle(
fontSize: 14,
DropdownButtonHideUnderline(
child: Row(
children: [
Expanded(
child: DropdownButton2<String>(
isExpanded: true,
hint: const Row(
children: [
Expanded(
child: Text(
'Select Complaint Status',
style: TextStyle(
fontSize: 14,
),
overflow: TextOverflow.ellipsis,
),
overflow: TextOverflow.ellipsis,
),
),
],
),
items: provider.CompletedStatus.map(
(complaintStatus) =>
DropdownMenuItem<String>(
value: complaintStatus['name'],
child: Text(
complaintStatus['name'] ?? '',
style: const TextStyle(
fontSize: 14,
],
),
items: provider.CompletedStatus.map(
(complaintStatus) =>
DropdownMenuItem<String>(
value: complaintStatus['name'],
child: Text(
complaintStatus['name'] ?? '',
style: const TextStyle(
fontSize: 14,
),
overflow: TextOverflow.ellipsis,
),
overflow: TextOverflow.ellipsis,
),
)).toList(),
value: provider.statusID,
onChanged: (value) {
if (value != null) {
provider.statusID = value;
provider.statusError = "";
print("statusId:${provider.statusID}");
}
},
buttonStyleData: ButtonStyleData(
height: 50,
width: 160,
padding: const EdgeInsets.only(
left: 14, right: 14),
decoration: BoxDecoration(
borderRadius: BorderRadius.circular(14),
color: AppColors.text_field_color,
)).toList(),
value: provider.statusID,
onChanged: (value) {
if (value != null) {
provider.statusID = value;
provider.statusError = "";
print("statusId:${provider.statusID}");
}
},
buttonStyleData: ButtonStyleData(
height: 50,
width: 160,
padding: const EdgeInsets.only(
left: 14, right: 14),
decoration: BoxDecoration(
borderRadius: BorderRadius.circular(14),
color: AppColors.text_field_color,
),
),
),
iconStyleData: const IconStyleData(
icon: Icon(
Icons.keyboard_arrow_down_sharp,
iconStyleData: const IconStyleData(
icon: Icon(
Icons.keyboard_arrow_down_sharp,
),
iconSize: 14,
iconEnabledColor: Color(0xFF2D2D2D),
iconDisabledColor: Colors.grey,
),
iconSize: 14,
iconEnabledColor: Color(0xFF2D2D2D),
iconDisabledColor: Colors.grey,
),
dropdownStyleData: DropdownStyleData(
maxHeight: 200,
width: 350,
decoration: BoxDecoration(
borderRadius: BorderRadius.circular(14),
color: AppColors.text_field_color,
dropdownStyleData: DropdownStyleData(
maxHeight: 200,
width: 350,
decoration: BoxDecoration(
borderRadius: BorderRadius.circular(14),
color: AppColors.text_field_color,
),
scrollbarTheme: ScrollbarThemeData(
radius: const Radius.circular(15),
thickness:
MaterialStateProperty.all<double>(6),
thumbVisibility:
MaterialStateProperty.all<bool>(true),
),
),
scrollbarTheme: ScrollbarThemeData(
radius: const Radius.circular(15),
thickness:
MaterialStateProperty.all<double>(6),
thumbVisibility:
MaterialStateProperty.all<bool>(true),
menuItemStyleData: const MenuItemStyleData(
height: 40,
padding:
EdgeInsets.only(left: 14, right: 14),
),
),
menuItemStyleData: const MenuItemStyleData(
height: 40,
padding:
EdgeInsets.only(left: 14, right: 14),
),
),
),
],
),
),
SizedBox(height: 5,),
ErrorWidget(context, provider.statusError),
if(provider.statusID!.isNotEmpty)...[
if(provider.statusID!="Pending")...[
Padding(
padding: const EdgeInsets.only(bottom: 5.0),
child: Text(
"FSR Number",
style: TextStyle(
fontFamily: "JakartaMedium",
color: AppColors.semi_black,
],
),
),
),
Container(
height: 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:
provider.fsrNumberController,
keyboardType:
TextInputType.text,
onChanged: (value) {
provider.fsrError = "";
},
decoration: InputDecoration(
hintText:
"Enter FSR Number",
hintStyle: TextStyle(
fontWeight: FontWeight.w400,
color: Color(0xFFB4BEC0),
fontSize: 14
),
enabledBorder:
InputBorder.none,
focusedBorder:
InputBorder.none,
),
),
),
),
SizedBox(height: 5,),
ErrorWidget(context, provider.fsrError)
]
],
Row(
children: [
Expanded(
child: Padding(
padding: const EdgeInsets.symmetric(
horizontal: 5.0,vertical: 3),
child: Text(
"Select Time",
style: TextStyle(
fontFamily: "JakartaMedium",
color: AppColors.semi_black,
),
),
),
),
Expanded(
child: Padding(
padding: const EdgeInsets.symmetric(
horizontal: 20.0),
child: Text(
"Running Hours",
style: TextStyle(
fontWeight: FontWeight.w400,
color: AppColors.semi_black,
),
),
SizedBox(height: 5,),
ErrorWidget(context, provider.statusError),
if(provider.statusID!.isNotEmpty)...[
if(provider.statusID!="Pending")...[
Padding(
padding: const EdgeInsets.only(bottom: 5.0),
child: Text(
"FSR Number",
style: TextStyle(
fontFamily: "JakartaMedium",
color: AppColors.semi_black,
),
),
],
),
Row(
children: [
Expanded(
child: Container(
decoration: BoxDecoration(
color: AppColors.text_field_color,
borderRadius:
BorderRadius.circular(14),
),
child: InkWell(
onTap: () {
provider.selectTime(context);
},
child: Container(
alignment: Alignment.center,
height: 45,
margin:
EdgeInsets.only(
left: 15.0, right: 15.0),
decoration: BoxDecoration(
borderRadius: BorderRadius.circular(
15.0),
),
child: Row(children: [
Text(
provider.selectedTime.hour
.toString() +
":" +
provider.selectedTime.minute
.toString() ??
"Enter in Time",
textAlign: TextAlign.center,
style: TextStyle(
fontWeight: FontWeight.w400),
),
]),
),
)),
),
SizedBox(width: 10,),
Expanded(
child: Container(
),
Container(
height: 50,
alignment: Alignment.center,
decoration: BoxDecoration(
color: AppColors.text_field_color,
......@@ -284,130 +166,250 @@ class _UpdatecomplaintsState extends State<Updatecomplaints> {
10.0, 0.0, 10, 0),
child: TextFormField(
controller:
provider.runningHoursController,
provider.fsrNumberController,
keyboardType:
TextInputType.text,
onChanged: (value) {
provider.runningHoursError = "";
provider.fsrError = "";
},
decoration: InputDecoration(
hintText:
"Enter Running Hours",
"Enter FSR Number",
hintStyle: TextStyle(
fontWeight: FontWeight.w400,
color: Color(0xFFB4BEC0),
fontSize: 14
),
enabledBorder:
InputBorder.none,
focusedBorder:
InputBorder.none,
),
),
),
),
),
],
),
ErrorWidget(context, provider.runningHoursError),
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("Scan Document", style: TextStyle(
color: AppColors.app_blue
),),
),
SizedBox(height: 5,),
ErrorWidget(context, provider.fsrError)
]
],
Row(
children: [
Expanded(
child: Padding(
padding: const EdgeInsets.symmetric(
horizontal: 5.0,vertical: 3),
child: Text(
"Select Time",
style: TextStyle(
fontFamily: "JakartaMedium",
color: AppColors.semi_black,
),
),
),
),
Expanded(
child: Padding(
padding: const EdgeInsets.symmetric(
horizontal: 20.0),
child: Text(
"Running Hours",
style: TextStyle(
fontWeight: FontWeight.w400,
color: AppColors.semi_black,
),
),
),
),
],
),
),
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
Row(
children: [
Expanded(
child: Container(
decoration: BoxDecoration(
color: AppColors.text_field_color,
borderRadius:
BorderRadius.circular(14),
),
child: InkWell(
onTap: () {
provider.selectTime(context);
},
child: Container(
alignment: Alignment.center,
height: 45,
margin:
EdgeInsets.only(
left: 15.0, right: 15.0),
decoration: BoxDecoration(
borderRadius: BorderRadius.circular(
15.0),
),
child: Row(children: [
Text(
provider.selectedTime.hour
.toString() +
":" +
provider.selectedTime.minute
.toString() ??
"Enter in Time",
textAlign: TextAlign.center,
style: TextStyle(
fontWeight: FontWeight.w400),
),
]),
),
)),
),
SizedBox(width: 10,),
Expanded(
child: Container(
height: 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:
provider.runningHoursController,
keyboardType:
TextInputType.text,
onChanged: (value) {
provider.runningHoursError = "";
},
decoration: InputDecoration(
hintText:
"Enter Running Hours",
hintStyle: TextStyle(
fontWeight: FontWeight.w400,
color: Color(0xFFB4BEC0),
fontSize: 14
),
enabledBorder:
InputBorder.none,
focusedBorder:
InputBorder.none,
),
),
),
),
),
],
),
ErrorWidget(context, provider.runningHoursError),
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("Scan Document", style: TextStyle(
color: AppColors.app_blue
),),
InkResponse(
onTap: () {
provider.imagePicked = 0;
provider.imagePath = null;
provider.imageFilePath = null;
},
child: SvgPicture.asset("assets/svg/ic_close.svg",width: 15,height: 15,))
],
),
)
],
Padding(
padding: const EdgeInsets.only(bottom: 5.0),
child: Text(
"Feedback",
style: TextStyle(
fontFamily: "JakartaMedium",
color: AppColors.semi_black,
),
),
),
),
Container(
height: 150,
alignment: Alignment.center,
decoration: BoxDecoration(
color: AppColors.text_field_color,
borderRadius:
BorderRadius.circular(14),
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,))
],
),
)
],
Padding(
padding: const EdgeInsets.only(bottom: 5.0),
child: Text(
"Feedback",
style: TextStyle(
fontFamily: "JakartaMedium",
color: AppColors.semi_black,
),
),
),
child: Padding(
padding:
const EdgeInsets.fromLTRB(
10.0, 0.0, 10, 0),
child: TextFormField(
controller:
provider.feedbackController,
maxLines: 60,
keyboardType:
TextInputType.text,
decoration: InputDecoration(
hintText:
"Enter Feedback",
hintStyle: TextStyle(
fontWeight: FontWeight.w400,
color: Color(0xFFB4BEC0),
fontSize: 14
Container(
height: 150,
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:
provider.feedbackController,
maxLines: 60,
keyboardType:
TextInputType.text,
decoration: InputDecoration(
hintText:
"Enter Feedback",
hintStyle: TextStyle(
fontWeight: FontWeight.w400,
color: Color(0xFFB4BEC0),
fontSize: 14
),
enabledBorder:
InputBorder.none,
focusedBorder:
InputBorder.none,
),
enabledBorder:
InputBorder.none,
focusedBorder:
InputBorder.none,
),
),
),
),
],
],
),
),
),
),
......
......@@ -43,251 +43,253 @@ class _VisitdetailsState extends State<Visitdetails> {
resizeToAvoidBottomInset: true,
appBar: appbar(context, "Visit Details"),
backgroundColor: AppColors.scaffold_bg_color,
body: Container(
child: SingleChildScrollView(
child: Column(
crossAxisAlignment: CrossAxisAlignment.start,
children: [
Text("Customer Details"),
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(4, (j) {
final textheads = [
"${customerDetails.cname}",
"Mobile Number",
"Contact Person Number",
"Mail ID",
];
final textSubheads = [
customerDetails.aname??"-",
customerDetails.mob1??"-",
customerDetails.mob2??"-",
customerDetails.mail??"-",
];
return Container(
padding: EdgeInsets.symmetric(
vertical: 6,
horizontal: 0,
),
child: Row(
mainAxisAlignment:
MainAxisAlignment.spaceBetween,
children: [
if (j == 0) ...[
SvgPicture.asset(
"assets/svg/se_block_head.svg",
),
SizedBox(width: 5),
],
Expanded(
child: SizedBox(
child: Column(
crossAxisAlignment:
CrossAxisAlignment.start,
children: [
Text(textheads[j].toString(),
maxLines: 2,
overflow: TextOverflow.ellipsis,),
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),
body: SafeArea(
child: SizedBox(
child: SingleChildScrollView(
child: Column(
crossAxisAlignment: CrossAxisAlignment.start,
children: [
Text("Customer Details"),
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(4, (j) {
final textheads = [
"${customerDetails.cname}",
"Mobile Number",
"Contact Person Number",
"Mail ID",
];
final textSubheads = [
customerDetails.aname??"-",
customerDetails.mob1??"-",
customerDetails.mob2??"-",
customerDetails.mail??"-",
];
return Container(
padding: EdgeInsets.symmetric(
vertical: 6,
horizontal: 0,
),
child: Row(
mainAxisAlignment:
MainAxisAlignment.spaceBetween,
children: [
if (j == 0) ...[
SvgPicture.asset(
"assets/svg/se_block_head.svg",
),
SizedBox(width: 5),
],
Expanded(
child: SizedBox(
child: Column(
crossAxisAlignment:
CrossAxisAlignment.start,
children: [
Text(textheads[j].toString(),
maxLines: 2,
overflow: TextOverflow.ellipsis,),
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),
),
),
),
),
],
],
),
),
),
),
],
),
);
}),
),
),
Text("Generator Details"),
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(
children: [
Row(
children: [
SvgPicture.asset("assetName"),
Column(
crossAxisAlignment: CrossAxisAlignment.start,
children: List.generate(6, (j) {
final textheads = [
"Gen ID",
"Engine Number",
"Address",
"Product Name",
"Engine Model",
"Date Of Supply",
];
final textSubheads = [
"${generatorDetails.genHashId}",
"${generatorDetails.engineNo}",
"${generatorDetails.address}",
"${generatorDetails.spname}",
"${generatorDetails.engineModel}",
"${complaintDetails.dateOfSupply}",
];
return Container(
padding: EdgeInsets.symmetric(vertical: 3),
child: Column(
children: [
Row(
mainAxisAlignment:
MainAxisAlignment.spaceBetween,
children: [
Container(
padding: EdgeInsets.symmetric(
vertical: 3,
horizontal: 0,
),
child: Column(
crossAxisAlignment:
CrossAxisAlignment.start,
children: [
Text(textheads[j].toString()),
SizedBox(
// height:45,
width:
MediaQuery.of(
context,
).size.width *
0.8,
child: Text(
textSubheads[j],
maxLines: 2,
overflow:
TextOverflow.ellipsis,
style: TextStyle(
color: Color(0xFF818181),
Text("Generator Details"),
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(
children: [
Row(
children: [
SvgPicture.asset("assetName"),
Column(
crossAxisAlignment: CrossAxisAlignment.start,
children: List.generate(6, (j) {
final textheads = [
"Gen ID",
"Engine Number",
"Address",
"Product Name",
"Engine Model",
"Date Of Supply",
];
final textSubheads = [
"${generatorDetails.genHashId}",
"${generatorDetails.engineNo}",
"${generatorDetails.address}",
"${generatorDetails.spname}",
"${generatorDetails.engineModel}",
"${complaintDetails.dateOfSupply}",
];
return Container(
padding: EdgeInsets.symmetric(vertical: 3),
child: Column(
children: [
Row(
mainAxisAlignment:
MainAxisAlignment.spaceBetween,
children: [
Container(
padding: EdgeInsets.symmetric(
vertical: 3,
horizontal: 0,
),
child: Column(
crossAxisAlignment:
CrossAxisAlignment.start,
children: [
Text(textheads[j].toString()),
SizedBox(
// height:45,
width:
MediaQuery.of(
context,
).size.width *
0.8,
child: Text(
textSubheads[j],
maxLines: 2,
overflow:
TextOverflow.ellipsis,
style: TextStyle(
color: Color(0xFF818181),
),
),
),
),
],
],
),
),
),
],
),
],
),
);
}),
),
],
),
],
),
),
Text("Complaint Details"),
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(
children: [
Row(
children: [
SvgPicture.asset("assetName"),
Column(
crossAxisAlignment: CrossAxisAlignment.start,
children: List.generate(4, (j) {
final textheads = [
"Complaint ID",
"Complaint Description",
"Opened Date",
"Complaint Type",
];
final textSubheads = [
"${complaintDetails.complaintId}",
"${complaintDetails.complaintDesc}",
"${complaintDetails.openedDate}",
"${complaintDetails.complaintType}",
];
return Container(
padding: EdgeInsets.symmetric(vertical: 3),
child: Column(
children: [
Row(
mainAxisAlignment:
MainAxisAlignment.spaceBetween,
children: [
Container(
padding: EdgeInsets.symmetric(
vertical: 3,
horizontal: 0,
),
child: Column(
crossAxisAlignment:
CrossAxisAlignment.start,
children: [
Text(textheads[j].toString()),
SizedBox(
// height:45,
width:
MediaQuery.of(
context,
).size.width *
0.8,
child: Text(
textSubheads[j],
maxLines: 2,
overflow:
TextOverflow.ellipsis,
style: TextStyle(
color: Color(0xFF818181),
Text("Complaint Details"),
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(
children: [
Row(
children: [
SvgPicture.asset("assetName"),
Column(
crossAxisAlignment: CrossAxisAlignment.start,
children: List.generate(4, (j) {
final textheads = [
"Complaint ID",
"Complaint Description",
"Opened Date",
"Complaint Type",
];
final textSubheads = [
"${complaintDetails.complaintId}",
"${complaintDetails.complaintDesc}",
"${complaintDetails.openedDate}",
"${complaintDetails.complaintType}",
];
return Container(
padding: EdgeInsets.symmetric(vertical: 3),
child: Column(
children: [
Row(
mainAxisAlignment:
MainAxisAlignment.spaceBetween,
children: [
Container(
padding: EdgeInsets.symmetric(
vertical: 3,
horizontal: 0,
),
child: Column(
crossAxisAlignment:
CrossAxisAlignment.start,
children: [
Text(textheads[j].toString()),
SizedBox(
// height:45,
width:
MediaQuery.of(
context,
).size.width *
0.8,
child: Text(
textSubheads[j],
maxLines: 2,
overflow:
TextOverflow.ellipsis,
style: TextStyle(
color: Color(0xFF818181),
),
),
),
),
],
],
),
),
),
],
),
],
),
);
}),
),
],
),
],
],
),
],
),
);
}),
),
],
),
],
),
),
),
SizedBox(height: 75),
],
SizedBox(height: 75),
],
),
),
),
),
......
......@@ -41,62 +41,64 @@ class _ScancomplaintdetailsState extends State<Scancomplaintdetails> {
resizeToAvoidBottomInset: true,
backgroundColor: AppColors.scaffold_bg_color,
appBar: appbar(context, "Pending Complaints"),
body: Container(
decoration: BoxDecoration(color: Colors.black),
child: Column(
children: [
Spacer(),
Container(
height: 250,
child: QRView(
key: provider.scannerKey,
onQRViewCreated: (p0) {
provider.onQRViewCreated(p0, "pendingComplaints", context);
},
formatsAllowed: [BarcodeFormat.qrcode],
cameraFacing: CameraFacing.back,
overlay: QrScannerOverlayShape(
borderColor: AppColors.app_blue,
borderRadius: 20,
borderLength: 60,
borderWidth: 10,
cutOutSize: 250.0,
body: SafeArea(
child: Container(
decoration: BoxDecoration(color: Colors.black),
child: Column(
children: [
Spacer(),
Container(
height: 250,
child: QRView(
key: provider.scannerKey,
onQRViewCreated: (p0) {
provider.onQRViewCreated(p0, "pendingComplaints", context);
},
formatsAllowed: [BarcodeFormat.qrcode],
cameraFacing: CameraFacing.back,
overlay: QrScannerOverlayShape(
borderColor: AppColors.app_blue,
borderRadius: 20,
borderLength: 60,
borderWidth: 10,
cutOutSize: 250.0,
),
),
),
),
SizedBox(height: 25),
Text(
"Scan QR",
textAlign: TextAlign.center,
style: TextStyle(fontSize: 18, color: Colors.white),
),
Text(
"to open Complaints",
textAlign: TextAlign.center,
style: TextStyle(fontSize: 14, color: Colors.white),
),
Spacer(),
Text(
"or",
textAlign: TextAlign.center,
style: TextStyle(fontSize: 18, color: Colors.white),
),
InkResponse(
onTap: () async {
_showPartIdBottomSheet(context);
},
child: Text(
"Tap To Enter Generator ID",
SizedBox(height: 25),
Text(
"Scan QR",
textAlign: TextAlign.center,
style: TextStyle(fontSize: 18, color: Colors.white),
),
Text(
"to open Complaints",
textAlign: TextAlign.center,
style: TextStyle(fontSize: 14, color: Colors.white),
),
),
SizedBox(height: 50),
],
Spacer(),
Text(
"or",
textAlign: TextAlign.center,
style: TextStyle(fontSize: 18, color: Colors.white),
),
InkResponse(
onTap: () async {
_showPartIdBottomSheet(context);
},
child: Text(
"Tap To Enter Generator ID",
textAlign: TextAlign.center,
style: TextStyle(fontSize: 14, color: Colors.white),
),
),
SizedBox(height: 50),
],
),
),
),
),
......
......@@ -94,223 +94,225 @@ class _ServiceengineerdashboardState extends State<Serviceengineerdashboard> {
),
),
),
body: Container(
child: SingleChildScrollView(
child: Column(
children: [
Container(
margin: EdgeInsets.only(top: 0, bottom: 15),
decoration: BoxDecoration(
color: Colors.white,
borderRadius: BorderRadius.vertical(
bottom: Radius.circular(16),
body: SafeArea(
child: Container(
child: SingleChildScrollView(
child: Column(
children: [
Container(
margin: EdgeInsets.only(top: 0, bottom: 15),
decoration: BoxDecoration(
color: Colors.white,
borderRadius: BorderRadius.vertical(
bottom: Radius.circular(16),
),
),
),
child: Column(
children: [
InkResponse(
onTap: () {
Navigator.push(
context,
MaterialPageRoute(
builder: (context) => Pendingcomplaints(),
child: Column(
children: [
InkResponse(
onTap: () {
Navigator.push(
context,
MaterialPageRoute(
builder: (context) => Pendingcomplaints(),
),
);
},
child: Container(
padding: EdgeInsets.symmetric(
horizontal: 10,
vertical: 15,
),
);
},
child: Container(
padding: EdgeInsets.symmetric(
horizontal: 10,
vertical: 15,
),
margin: EdgeInsets.symmetric(
horizontal: 10,
vertical: 15,
),
decoration: BoxDecoration(
color: Color(0xFFFFEFEF),
borderRadius: BorderRadius.circular(16),
),
child: Row(
mainAxisAlignment: MainAxisAlignment.center,
children: [
Expanded(
child: SizedBox(
child: Column(
crossAxisAlignment:
CrossAxisAlignment.center,
children: [
Text(
"${provider.pendingComplaints}",
style: TextStyle(
fontSize: 30,
color: Color(0xFFED3424),
margin: EdgeInsets.symmetric(
horizontal: 10,
vertical: 15,
),
decoration: BoxDecoration(
color: Color(0xFFFFEFEF),
borderRadius: BorderRadius.circular(16),
),
child: Row(
mainAxisAlignment: MainAxisAlignment.center,
children: [
Expanded(
child: SizedBox(
child: Column(
crossAxisAlignment:
CrossAxisAlignment.center,
children: [
Text(
"${provider.pendingComplaints}",
style: TextStyle(
fontSize: 30,
color: Color(0xFFED3424),
),
),
),
Text("Pending Complaints"),
],
Text("Pending Complaints"),
],
),
),
),
),
],
],
),
),
),
),
],
),
),
Container(
padding: EdgeInsets.only(left: 15),
alignment: Alignment.topLeft,
child: Text(
"Collections & Visits",
style: TextStyle(color: Color(0xFF818181),
fontFamily: "JakartaMedium",
fontSize: 14),
),
),
Container(
margin: EdgeInsets.symmetric(horizontal: 10, vertical: 15),
decoration: BoxDecoration(
color: Colors.white,
borderRadius: BorderRadius.circular(16),
],
),
),
child: GridView.builder(
padding: EdgeInsets.symmetric(
vertical: 15,
horizontal: 10,
Container(
padding: EdgeInsets.only(left: 15),
alignment: Alignment.topLeft,
child: Text(
"Collections & Visits",
style: TextStyle(color: Color(0xFF818181),
fontFamily: "JakartaMedium",
fontSize: 14),
),
itemCount: 4,
shrinkWrap: true,
physics: NeverScrollableScrollPhysics(),
gridDelegate: SliverGridDelegateWithFixedCrossAxisCount(
crossAxisCount: 2,
crossAxisSpacing: 10,
mainAxisSpacing: 10,
childAspectRatio: 22 / 10,
),
Container(
margin: EdgeInsets.symmetric(horizontal: 10, vertical: 15),
decoration: BoxDecoration(
color: Colors.white,
borderRadius: BorderRadius.circular(16),
),
itemBuilder: (context, index) {
final numbers = [
provider.monthlyPaymentCollectionAmount,
provider.paymentCollectionWalletBalanceAmount,
provider.thisMonthsVisits,
provider.todayVisits,
];
final names = [
"Month Collection",
"P.C. Wallet",
"Month Visits",
"Today Visits",
];
final List<int> colorCodes = [
0xFFE7FFE5,
0xFFFFFCD5,
0xFFF3EDFF,
0xFFFFF6F0,
];
final List<int> textColorCodes = [
0xFF0D9C00,
0xFF605C00,
0xFF493272,
0xFF91481B,
];
return InkResponse(
onTap: () {
var route;
switch (index) {
case 0:
route = Monthlycollection();
break;
case 1:
route = Pcwallet();
break;
case 2:
route = Todaymontlyvisists(visitType: "Month");
break;
case 3:
route = Todaymontlyvisists(visitType: "Today");
break;
}
Navigator.push(
context,
MaterialPageRoute(builder: (context) => route),
);
},
child: Container(
padding: EdgeInsets.only(
left: 15,
top: 5,
bottom: 5,
),
decoration: BoxDecoration(
color: Color(colorCodes[index]),
borderRadius: BorderRadius.circular(12),
),
child: Column(
crossAxisAlignment: CrossAxisAlignment.start,
mainAxisAlignment: MainAxisAlignment.center,
children: [
Row(
children: [
if([0,1].contains(index))...[
Text("₹",style: TextStyle(
fontSize: 14,
color: Color(textColorCodes[index]),
),),
],
Padding(
padding: EdgeInsets.only(top: 5),
child: Text(
"${numbers[index].toString()}",
style: TextStyle(
fontSize: 27,
color: Color(textColorCodes[index]),
child: GridView.builder(
padding: EdgeInsets.symmetric(
vertical: 15,
horizontal: 10,
),
itemCount: 4,
shrinkWrap: true,
physics: NeverScrollableScrollPhysics(),
gridDelegate: SliverGridDelegateWithFixedCrossAxisCount(
crossAxisCount: 2,
crossAxisSpacing: 10,
mainAxisSpacing: 10,
childAspectRatio: 22 / 10,
),
itemBuilder: (context, index) {
final numbers = [
provider.monthlyPaymentCollectionAmount,
provider.paymentCollectionWalletBalanceAmount,
provider.thisMonthsVisits,
provider.todayVisits,
];
final names = [
"Month Collection",
"P.C. Wallet",
"Month Visits",
"Today Visits",
];
final List<int> colorCodes = [
0xFFE7FFE5,
0xFFFFFCD5,
0xFFF3EDFF,
0xFFFFF6F0,
];
final List<int> textColorCodes = [
0xFF0D9C00,
0xFF605C00,
0xFF493272,
0xFF91481B,
];
return InkResponse(
onTap: () {
var route;
switch (index) {
case 0:
route = Monthlycollection();
break;
case 1:
route = Pcwallet();
break;
case 2:
route = Todaymontlyvisists(visitType: "Month");
break;
case 3:
route = Todaymontlyvisists(visitType: "Today");
break;
}
Navigator.push(
context,
MaterialPageRoute(builder: (context) => route),
);
},
child: Container(
padding: EdgeInsets.only(
left: 15,
top: 5,
bottom: 5,
),
decoration: BoxDecoration(
color: Color(colorCodes[index]),
borderRadius: BorderRadius.circular(12),
),
child: Column(
crossAxisAlignment: CrossAxisAlignment.start,
mainAxisAlignment: MainAxisAlignment.center,
children: [
Row(
children: [
if([0,1].contains(index))...[
Text("₹",style: TextStyle(
fontSize: 14,
color: Color(textColorCodes[index]),
),),
],
Padding(
padding: EdgeInsets.only(top: 5),
child: Text(
"${numbers[index].toString()}",
style: TextStyle(
fontSize: 27,
color: Color(textColorCodes[index]),
),
),
),
),
],
),
Text(names[index],style: TextStyle(
color: Color(0xFF818181)
),),
],
],
),
Text(names[index],style: TextStyle(
color: Color(0xFF818181)
),),
],
),
),
),
);
},
),
),
InkResponse(
onTap: () {
Navigator.push(context, MaterialPageRoute(builder: (context) => Nearbygenerators(),));
},
child: Container(
height: 60,
margin: EdgeInsets.symmetric(horizontal: 10, vertical: 0),
decoration: BoxDecoration(
color: Colors.white,
borderRadius: BorderRadius.circular(20),
);
},
),
child: Row(
children: [
Expanded(
flex: 1,
child: SvgPicture.asset(
"assets/svg/find_generator.svg",
),
InkResponse(
onTap: () {
Navigator.push(context, MaterialPageRoute(builder: (context) => Nearbygenerators(),));
},
child: Container(
height: 60,
margin: EdgeInsets.symmetric(horizontal: 10, vertical: 0),
decoration: BoxDecoration(
color: Colors.white,
borderRadius: BorderRadius.circular(20),
),
child: Row(
children: [
Expanded(
flex: 1,
child: SvgPicture.asset(
"assets/svg/find_generator.svg",
),
),
),
Expanded(
flex: 4,
child: Text("Find Nearby Generators"),
),
],
Expanded(
flex: 4,
child: Text("Find Nearby Generators"),
),
],
),
),
),
),
],
],
),
),
),
),
......
......@@ -141,18 +141,20 @@ class _SplashState extends State<Splash> {
Widget build(BuildContext context) {
return Scaffold(
resizeToAvoidBottomInset: true,
body: Consumer<SplashVersionNotifier>(
builder: (context, value, child) {
return Container(
alignment: Alignment.center,
child: Container(
body: SafeArea(
child: Consumer<SplashVersionNotifier>(
builder: (context, value, child) {
return Container(
alignment: Alignment.center,
height: 300,
width: 300,
child: splashImage,
),
);
},
child: Container(
alignment: Alignment.center,
height: 300,
width: 300,
child: splashImage,
),
);
},
),
),
);
}
......
......@@ -1652,7 +1652,9 @@ class ApiCalling {
};
final res = await post(data, paymentRequesitionPaymentsListUrl, {});
if (res != null) {
debugPrint(res.body);
print(data);
print("payment req:${res.body}");
return paymentRequisitionPaymentsListResponse.fromJson(
jsonDecode(res.body),
);
......
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