Commit 379460f6 authored by Sai Srinivas's avatar Sai Srinivas
Browse files

04-07-2025 By Sai Srinivas

Test cases and Order Module, Crm Module.
parent 2ccf19cc
...@@ -56,12 +56,12 @@ class _PaymentlistsbymodeState extends State<Paymentlistsbymode> { ...@@ -56,12 +56,12 @@ class _PaymentlistsbymodeState extends State<Paymentlistsbymode> {
provider.resetAll, provider.resetAll,
Row( Row(
children: [ children: [
InkResponse( // InkResponse(
onTap: () { // onTap: () {
_showOptionsSheet(context); // _showOptionsSheet(context);
}, // },
child: SvgPicture.asset("assets/svg/ic_download.svg",), // child: SvgPicture.asset("assets/svg/ic_download.svg",),
), // ),
InkResponse( InkResponse(
onTap: () async { onTap: () async {
......
...@@ -51,12 +51,12 @@ class _TpcagentissuelistState extends State<Tpcagentissuelist> { ...@@ -51,12 +51,12 @@ class _TpcagentissuelistState extends State<Tpcagentissuelist> {
provider.resetAll, provider.resetAll,
Row( Row(
children: [ children: [
InkResponse( // InkResponse(
onTap: () { // onTap: () {
// _showOptionsSheet(context); // // _showOptionsSheet(context);
}, // },
child: SvgPicture.asset("assets/svg/ic_download.svg",), // child: SvgPicture.asset("assets/svg/ic_download.svg",),
), // ),
], ],
......
...@@ -53,12 +53,12 @@ class _TpcagentlistbymodeState extends State<Tpcagentlistbymode> { ...@@ -53,12 +53,12 @@ class _TpcagentlistbymodeState extends State<Tpcagentlistbymode> {
provider.resetAll, provider.resetAll,
Row( Row(
children: [ children: [
InkResponse( // InkResponse(
onTap: () { // onTap: () {
// _showOptionsSheet(context); // // _showOptionsSheet(context);
}, // },
child: SvgPicture.asset("assets/svg/ic_download.svg",), // child: SvgPicture.asset("assets/svg/ic_download.svg",),
), // ),
], ],
......
...@@ -47,7 +47,7 @@ class _AccountsuggestionsState extends State<Accountsuggestions> { ...@@ -47,7 +47,7 @@ class _AccountsuggestionsState extends State<Accountsuggestions> {
alignment: Alignment.center, alignment: Alignment.center,
decoration: BoxDecoration( decoration: BoxDecoration(
color: AppColors.text_field_color, color: AppColors.text_field_color,
borderRadius: BorderRadius.circular(16), borderRadius: BorderRadius.circular(14),
border: border:
searchFocusNode.hasFocus searchFocusNode.hasFocus
? Border.all(color: AppColors.app_blue, width: 0.5) ? Border.all(color: AppColors.app_blue, width: 0.5)
......
...@@ -3,6 +3,7 @@ import 'package:flutter/material.dart'; ...@@ -3,6 +3,7 @@ import 'package:flutter/material.dart';
import 'package:flutter_svg/svg.dart'; import 'package:flutter_svg/svg.dart';
import 'package:generp/Notifiers/PaymentDetailsProvider.dart'; import 'package:generp/Notifiers/PaymentDetailsProvider.dart';
import 'package:generp/Utils/app_colors.dart'; import 'package:generp/Utils/app_colors.dart';
import 'package:generp/Utils/commonServices.dart';
import 'package:generp/Utils/commonWidgets.dart'; import 'package:generp/Utils/commonWidgets.dart';
import 'package:pin_code_fields/pin_code_fields.dart'; import 'package:pin_code_fields/pin_code_fields.dart';
import 'package:provider/provider.dart'; import 'package:provider/provider.dart';
...@@ -27,15 +28,8 @@ class Paymentdetails extends StatefulWidget { ...@@ -27,15 +28,8 @@ class Paymentdetails extends StatefulWidget {
class _PaymentdetailsState extends State<Paymentdetails> { class _PaymentdetailsState extends State<Paymentdetails> {
Dropdowntheme ddtheme = Dropdowntheme(); Dropdowntheme ddtheme = Dropdowntheme();
TextEditingController Amountcontroller = TextEditingController();
TextEditingController Referencecontroller = TextEditingController();
TextEditingController nameController = TextEditingController();
TextEditingController designationController = TextEditingController();
TextEditingController mobController = TextEditingController();
TextEditingController altMobController = TextEditingController();
TextEditingController telController = TextEditingController();
TextEditingController emailController = TextEditingController();
List<FocusNode> focusNodes = List.generate(7, (index) => FocusNode(),);
@override @override
void initState() { void initState() {
// TODO: implement initState // TODO: implement initState
...@@ -47,357 +41,413 @@ class _PaymentdetailsState extends State<Paymentdetails> { ...@@ -47,357 +41,413 @@ class _PaymentdetailsState extends State<Paymentdetails> {
listen: false, listen: false,
); );
provider.LoadNumbersAPI( provider.LoadNumbersAPI(
context, widget.accountName, widget.referenceID, widget.genId); context,
},); widget.accountName,
},); widget.referenceID,
widget.genId,
);
});
});
} }
@override @override
Widget build(BuildContext context) { Widget build(BuildContext context) {
return Consumer<Paymentdetailsprovider>( return Consumer<Paymentdetailsprovider>(
builder: (context, provider, child) { builder: (context, provider, child) {
return WillPopScope( return WillPopScope(
onWillPop: () => onBackPressed(context), onWillPop: () => onBackPressed(context),
child: RefreshIndicator.adaptive(
color: AppColors.app_blue,
onRefresh: () async {
provider.LoadNumbersAPI(
context,
widget.accountName,
widget.referenceID,
widget.genId,
);
},
child: Scaffold( child: Scaffold(
resizeToAvoidBottomInset: true, resizeToAvoidBottomInset: true,
appBar: appbar(context, "Payment Details"), appBar: appbar(context, "Payment Details"),
backgroundColor: AppColors.scaffold_bg_color, backgroundColor: AppColors.scaffold_bg_color,
body: SafeArea( body: SafeArea(
child: Container( child: SingleChildScrollView(
padding: EdgeInsets.symmetric(horizontal: 10, vertical: 10), child: RefreshIndicator.adaptive(
margin: EdgeInsets.symmetric(horizontal: 10, vertical: 10), color: AppColors.app_blue,
decoration: BoxDecoration( onRefresh: () async {
color: Colors.white, provider.LoadNumbersAPI(
borderRadius: BorderRadius.circular(20) context,
), widget.accountName,
child: SingleChildScrollView( widget.referenceID,
child: Column( widget.genId,
crossAxisAlignment: CrossAxisAlignment.start, );
children: [ },
Container( 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: Column(
crossAxisAlignment: CrossAxisAlignment.start,
children: [
Container(
padding: EdgeInsets.symmetric(vertical: 5), padding: EdgeInsets.symmetric(vertical: 5),
child: Text("${widget.name}", child: Text(
"${widget.name}",
style: TextStyle( style: TextStyle(
fontFamily: "JakartaMedium", fontFamily: "JakartaMedium",
color: AppColors.app_blue),)), color: AppColors.app_blue,
SizedBox(height: 10,), ),
Padding( ),
padding: const EdgeInsets.only(bottom: 5.0), ),
child: Text("Phone Number"), SizedBox(height: 10),
), Padding(
DropdownButtonHideUnderline( padding: const EdgeInsets.only(bottom: 5.0),
child: Row( child: Text("Phone Number"),
children: [ ),
Expanded( DropdownButtonHideUnderline(
child: DropdownButton2<Contacts>( child: Row(
isExpanded: true, children: [
hint: const Row( Expanded(
children: [ child: DropdownButton2<Contacts>(
Expanded( isExpanded: true,
child: Text( hint: const Row(
'Select Phone Number', children: [
style: TextStyle( Expanded(
fontSize: 14, child: Text(
'Select Phone Number',
style: TextStyle(fontSize: 14),
overflow: TextOverflow.ellipsis,
), ),
overflow: TextOverflow.ellipsis,
), ),
), ],
], ),
), items: [
items: [ ...provider.contactsDropDown.map((contacts) {
...provider.contactsDropDown.map((contacts) { return DropdownMenuItem<Contacts>(
return DropdownMenuItem<Contacts>( value: contacts,
value: contacts, child: Column(
child: Column( crossAxisAlignment:
crossAxisAlignment: CrossAxisAlignment CrossAxisAlignment.start,
.start, children: [
children: [ Text(
Text( contacts.name ?? "",
contacts.name ?? "", maxLines: 1,
maxLines: 1, style: const TextStyle(
style: const TextStyle( fontSize: 12,
fontSize: 12, ),
overflow: TextOverflow.ellipsis,
), ),
overflow: TextOverflow.ellipsis, Text(
), contacts.mob1 ?? "",
Text( style: const TextStyle(
contacts.mob1 ?? "", fontSize: 12,
style: const TextStyle( ),
fontSize: 12, overflow: TextOverflow.ellipsis,
), ),
overflow: TextOverflow.ellipsis, ],
), ),
], );
), }).toList(),
); DropdownMenuItem<Contacts>(
}).toList(),
DropdownMenuItem<Contacts>(
value: null,
// No value associated with the button
enabled: false,
// To disable selecting this item
child: InkWell(
onTap: () { onTap: () {
_addContactSheet(context);
}, },
child: Container( value: null,
height: 45, // No value associated with the button
decoration: BoxDecoration( enabled: false,
border: Border.all( // To disable selecting this item
color: AppColors.app_blue, child: InkWell(
width: 0.5
), onTap: () {
borderRadius: BorderRadius.circular(12) _addContactSheet(context);
), },
padding: const EdgeInsets.symmetric( child: Container(
vertical: 5, horizontal: 14), height: 45,
child: Row( decoration: BoxDecoration(
mainAxisAlignment: MainAxisAlignment border: Border.all(
.center, color: AppColors.app_blue,
children: const [ width: 0.5,
Text(
'Add Contact',
style: TextStyle(fontSize: 14,
color: Colors.blue),
), ),
], borderRadius: BorderRadius.circular(
12,
),
),
padding: const EdgeInsets.symmetric(
vertical: 5,
horizontal: 14,
),
child: Row(
mainAxisAlignment:
MainAxisAlignment.center,
children: const [
Text(
'Add Contact',
style: TextStyle(
fontSize: 14,
color: Colors.blue,
),
),
],
),
), ),
), ),
), ),
), ],
], // value: provider.selectContact,
value: provider.selectContact, value:
// The selected value is now the entire 'Contacts' object provider.contactsDropDown.contains(
onChanged: (Contacts? value) { provider.selectContact
if (value != null) { )
if (provider.contactsDropDown.isNotEmpty) { ? provider.selectContact
provider.selectContact = : null,
value; // Set the selected contact // The selected value is now the entire 'Contacts' object
provider.contact = value.name ?? onChanged: (Contacts? value) {
""; // Update the contact name if (value != null) {
provider.contactID = value.mob1 ?? if (provider.contactsDropDown.isNotEmpty) {
""; // Update the contact ID provider.selectContact =
debugPrint("Selected Contact: ${value value; // Set the selected contact
.name}, Phone: ${value.mob1}"); 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: ddtheme.buttonStyleData,
buttonStyleData: ddtheme.buttonStyleData, iconStyleData: ddtheme.iconStyleData,
iconStyleData: ddtheme.iconStyleData, menuItemStyleData: ddtheme.menuItemStyleData,
menuItemStyleData: ddtheme.menuItemStyleData, dropdownStyleData: ddtheme.dropdownStyleData,
dropdownStyleData: ddtheme.dropdownStyleData, ),
), ),
), ],
], ),
), ),
), SizedBox(height: 10),
SizedBox(height: 10,), Padding(
Padding( padding: const EdgeInsets.only(bottom: 5.0),
padding: const EdgeInsets.only(bottom: 5.0), child: Text("Payment Type"),
child: Text("Payment Type"), ),
), DropdownButtonHideUnderline(
DropdownButtonHideUnderline( child: Row(
child: Row( children: [
children: [ Expanded(
Expanded( child: DropdownButton2<PaymentModeList>(
child: DropdownButton2<PaymentModeList>( isExpanded: true,
isExpanded: true, hint: const Row(
hint: const Row( children: [
children: [ Expanded(
Expanded( child: Text(
child: Text( 'Select Payment Type',
'Select Payment Type', style: TextStyle(fontSize: 14),
style: TextStyle( overflow: TextOverflow.ellipsis,
fontSize: 14,
),
overflow: TextOverflow.ellipsis,
),
),
],
),
items: provider.paymentModeDropDown
.map((paymentMode) =>
DropdownMenuItem<PaymentModeList>(
value: paymentMode,
child: Text(
paymentMode.name ?? '',
style: const TextStyle(
fontSize: 14,
), ),
overflow: TextOverflow.ellipsis,
), ),
)) ],
.toList(), ),
value: provider.selectPaymentMode, items:
onChanged: (PaymentModeList? value) { provider.paymentModeDropDown
if (value != null) { .map(
if (provider.paymentModeDropDown.isNotEmpty) { (paymentMode) =>
provider.selectPaymentMode = value; DropdownMenuItem<PaymentModeList>(
print( value: paymentMode,
"Selected Complaint Type: ${value child: Text(
.name}, ID: ${value.id}"); paymentMode.name ?? '',
provider.PaymentMode = value?.name; style: const TextStyle(
provider.paymentModeID = value?.id; fontSize: 14,
print("hfjkshfg" + ),
provider.paymentModeID.toString()); 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(),
);
}
} }
} },
}, buttonStyleData: ddtheme.buttonStyleData,
buttonStyleData: ddtheme.buttonStyleData, iconStyleData: ddtheme.iconStyleData,
iconStyleData: ddtheme.iconStyleData, menuItemStyleData: ddtheme.menuItemStyleData,
menuItemStyleData: ddtheme.menuItemStyleData, dropdownStyleData: ddtheme.dropdownStyleData,
dropdownStyleData: ddtheme.dropdownStyleData, ),
), ),
), ],
], ),
), ),
), SizedBox(height: 10),
SizedBox(height: 10,), Padding(
Padding( padding: const EdgeInsets.only(bottom: 5.0),
padding: const EdgeInsets.only(bottom: 5.0), child: Text("Amount"),
child: Text("Amount"),
),
Container(
height: 50,
alignment: Alignment.center,
decoration: BoxDecoration(
color: AppColors.text_field_color,
borderRadius:
BorderRadius.circular(14),
), ),
child: Padding( Container(
padding: height: 50,
const EdgeInsets.fromLTRB(
10.0, 0.0, 10, 0), alignment: Alignment.center,
child: TextFormField( decoration: BoxDecoration(
controller: color: AppColors.text_field_color,
Amountcontroller, borderRadius: BorderRadius.circular(14),
keyboardType: ),
TextInputType.text, child: Padding(
decoration: InputDecoration( padding: const EdgeInsets.fromLTRB(10.0, 0.0, 10, 0),
child: TextFormField(
hintText: controller: provider.Amountcontroller,
"Enter Amount", keyboardType: TextInputType.text,
hintStyle: TextStyle( decoration: InputDecoration(
hintText: "Enter Amount",
hintStyle: TextStyle(
fontWeight: FontWeight.w400, fontWeight: FontWeight.w400,
color: Color(0xFFB4BEC0), color: Color(0xFFB4BEC0),
fontSize: 14 fontSize: 14,
),
enabledBorder: InputBorder.none,
focusedBorder: InputBorder.none,
), ),
enabledBorder:
InputBorder.none,
focusedBorder:
InputBorder.none,
), ),
), ),
), ),
), SizedBox(height: 10),
SizedBox(height: 10,), Padding(
Padding( padding: const EdgeInsets.only(bottom: 5.0),
padding: const EdgeInsets.only(bottom: 5.0), child: Text("Reference Number"),
child: Text("Reference Number"),
),
Container(
height: 50,
alignment: Alignment.center,
decoration: BoxDecoration(
color: AppColors.text_field_color,
borderRadius:
BorderRadius.circular(14),
), ),
child: Padding( Container(
padding: height: 50,
const EdgeInsets.fromLTRB(
10.0, 0.0, 10, 0), alignment: Alignment.center,
child: TextFormField( decoration: BoxDecoration(
controller: color: AppColors.text_field_color,
Referencecontroller, borderRadius: BorderRadius.circular(14),
keyboardType: ),
TextInputType.text, child: Padding(
decoration: InputDecoration( padding: const EdgeInsets.fromLTRB(10.0, 0.0, 10, 0),
child: TextFormField(
hintText: controller: provider.Referencecontroller,
"Enter Reference Number", keyboardType: TextInputType.text,
hintStyle: TextStyle( decoration: InputDecoration(
hintText: "Enter Reference Number",
hintStyle: TextStyle(
fontWeight: FontWeight.w400, fontWeight: FontWeight.w400,
color: Color(0xFFB4BEC0), color: Color(0xFFB4BEC0),
fontSize: 14 fontSize: 14,
),
enabledBorder: InputBorder.none,
focusedBorder: InputBorder.none,
), ),
enabledBorder:
InputBorder.none,
focusedBorder:
InputBorder.none,
), ),
), ),
), ),
), SizedBox(height: 10),
SizedBox(height: 10,), InkResponse(
InkResponse( onTap: () {
onTap: () { _showAttachmentSheet(context);
_showAttachmentSheet(context); },
}, child: Container(
child: Container( margin: EdgeInsets.symmetric(vertical: 10),
margin: EdgeInsets.symmetric(vertical: 10), height: 45,
height: 45, width: MediaQuery.of(context).size.width,
width: MediaQuery decoration: BoxDecoration(
.of(context)
.size
.width,
decoration: BoxDecoration(
color: Color(0xFFE6F6FF), color: Color(0xFFE6F6FF),
borderRadius: BorderRadius.circular(12), borderRadius: BorderRadius.circular(12),
border: Border.all( border: Border.all(
color: AppColors.app_blue, width: 0.5) color: AppColors.app_blue,
), width: 0.5,
child: Center( ),
child: Text("Reference Document", style: TextStyle( ),
fontFamily: "JakartaMedium", child: Center(
color: AppColors.app_blue child: Text(
),), "Reference Document",
style: TextStyle(
fontFamily: "JakartaMedium",
color: AppColors.app_blue,
),
),
),
), ),
), ),
), if (provider.imagePicked == 1 &&
if(provider.imagePicked==1 && provider.imagePath!=null)...[ provider.imagePath != null) ...[
Padding( Padding(
padding: const EdgeInsets.symmetric(vertical: 4.0), padding: const EdgeInsets.symmetric(vertical: 4.0),
child: Row( child: Row(
mainAxisAlignment: MainAxisAlignment.spaceBetween, mainAxisAlignment: MainAxisAlignment.spaceBetween,
children: [ children: [
Text("${provider.imagePath}",style: TextStyle( Text(
color: AppColors.semi_black, "${provider.imagePath}",
fontSize: 11, style: TextStyle(
fontWeight: FontWeight.w600 color: AppColors.semi_black,
),), fontSize: 11,
InkResponse( fontWeight: FontWeight.w600,
),
),
InkResponse(
onTap: () { onTap: () {
provider.imagePicked = 0; provider.imagePicked = 0;
provider.imagePath = null; provider.imagePath = null;
provider.imageFilePath = null; provider.imageFilePath = null;
}, },
child: SvgPicture.asset("assets/svg/ic_close.svg",width: 15,height: 15,)) child: SvgPicture.asset(
], "assets/svg/ic_close.svg",
width: 15,
height: 15,
),
),
],
),
), ),
) ],
], ],
], ),
), ),
), ),
), ),
), ),
floatingActionButtonLocation: FloatingActionButtonLocation floatingActionButtonLocation:
.centerFloat, FloatingActionButtonLocation.centerFloat,
floatingActionButton: InkWell( floatingActionButton: InkWell(
onTap: () { onTap: () {
print("clicked"); print("clicked");
if(provider.contactID==null){
toast(context, "Please Select Contact");
return;
}
if(provider.paymentModeID==null){
toast(context, "Please Select Payment Type");
return;
}
if(provider.image_picked==0){
toast(context, "Please add attachment");
return;
}
provider.PaymentUpdateAPI( provider.PaymentUpdateAPI(
context, Referencecontroller.text, Amountcontroller.text); context,
provider.Referencecontroller.text,
provider.Amountcontroller.text,
);
if (provider.CollectionId != 0) { if (provider.CollectionId != 0) {
showOTPSheetSheet(context); showOTPSheetSheet(context);
} }
...@@ -421,15 +471,18 @@ class _PaymentdetailsState extends State<Paymentdetails> { ...@@ -421,15 +471,18 @@ class _PaymentdetailsState extends State<Paymentdetails> {
textAlign: TextAlign.center, textAlign: TextAlign.center,
style: TextStyle( style: TextStyle(
fontSize: 15, fontSize: 15,
fontFamily: "JakartaMedium", fontFamily: "JakartaMedium",
color: Colors.white), color: Colors.white,
),
), ),
), ),
), ),
), ),
), ),
); ),
}); );
},
);
} }
Future<void> _showAttachmentSheet(BuildContext context) { Future<void> _showAttachmentSheet(BuildContext context) {
...@@ -448,15 +501,11 @@ class _PaymentdetailsState extends State<Paymentdetails> { ...@@ -448,15 +501,11 @@ class _PaymentdetailsState extends State<Paymentdetails> {
child: Consumer<Paymentdetailsprovider>( child: Consumer<Paymentdetailsprovider>(
builder: (context, provider, child) { builder: (context, provider, child) {
return Padding( return Padding(
padding: EdgeInsets.only( padding: EdgeInsets.only(
bottom: bottom:
MediaQuery MediaQuery.of(
.of( context,
context, ).viewInsets.bottom, // This handles keyboard
)
.viewInsets
.bottom, // This handles keyboard
), ),
child: Container( child: Container(
margin: EdgeInsets.only( margin: EdgeInsets.only(
...@@ -476,18 +525,20 @@ class _PaymentdetailsState extends State<Paymentdetails> { ...@@ -476,18 +525,20 @@ class _PaymentdetailsState extends State<Paymentdetails> {
child: Text( child: Text(
"Select Source", "Select Source",
style: TextStyle( style: TextStyle(
color: AppColors.app_blue, color: AppColors.app_blue,
fontSize: 16 fontSize: 16,
), ),
), ),
), ),
SizedBox(height: 15,), SizedBox(height: 15),
InkWell( InkWell(
onTap: () { onTap: () {
Navigator.of(context).pop(false); Navigator.of(context).pop(false);
provider.imgFromGallery( provider.imgFromGallery(
context, Referencecontroller.text, context,
Amountcontroller.text); provider.Referencecontroller.text,
provider.Amountcontroller.text,
);
}, },
child: Container( child: Container(
height: 35, height: 35,
...@@ -499,8 +550,10 @@ class _PaymentdetailsState extends State<Paymentdetails> { ...@@ -499,8 +550,10 @@ class _PaymentdetailsState extends State<Paymentdetails> {
onTap: () { onTap: () {
Navigator.of(context).pop(false); Navigator.of(context).pop(false);
provider.imgFromCamera( provider.imgFromCamera(
context, Referencecontroller.text, context,
Amountcontroller.text); provider.Referencecontroller.text,
provider.Amountcontroller.text,
);
}, },
child: Container( child: Container(
height: 35, height: 35,
...@@ -521,7 +574,6 @@ class _PaymentdetailsState extends State<Paymentdetails> { ...@@ -521,7 +574,6 @@ class _PaymentdetailsState extends State<Paymentdetails> {
); );
} }
Future<void> showOTPSheetSheet(BuildContext context) { Future<void> showOTPSheetSheet(BuildContext context) {
return showModalBottomSheet( return showModalBottomSheet(
useSafeArea: true, useSafeArea: true,
...@@ -538,15 +590,11 @@ class _PaymentdetailsState extends State<Paymentdetails> { ...@@ -538,15 +590,11 @@ class _PaymentdetailsState extends State<Paymentdetails> {
child: Consumer<Paymentdetailsprovider>( child: Consumer<Paymentdetailsprovider>(
builder: (context, provider, child) { builder: (context, provider, child) {
return Padding( return Padding(
padding: EdgeInsets.only( padding: EdgeInsets.only(
bottom: bottom:
MediaQuery MediaQuery.of(
.of( context,
context, ).viewInsets.bottom, // This handles keyboard
)
.viewInsets
.bottom, // This handles keyboard
), ),
child: Container( child: Container(
margin: EdgeInsets.only( margin: EdgeInsets.only(
...@@ -566,12 +614,12 @@ class _PaymentdetailsState extends State<Paymentdetails> { ...@@ -566,12 +614,12 @@ class _PaymentdetailsState extends State<Paymentdetails> {
child: Text( child: Text(
"Enter OTP", "Enter OTP",
style: TextStyle( style: TextStyle(
color: AppColors.app_blue, color: AppColors.app_blue,
fontSize: 16 fontSize: 16,
), ),
), ),
), ),
SizedBox(height: 15,), SizedBox(height: 15),
Column( Column(
children: [ children: [
Container( Container(
...@@ -579,9 +627,10 @@ class _PaymentdetailsState extends State<Paymentdetails> { ...@@ -579,9 +627,10 @@ class _PaymentdetailsState extends State<Paymentdetails> {
height: 50, height: 50,
margin: EdgeInsets.only( margin: EdgeInsets.only(
left: 5.0, right: 5.0), left: 5.0,
right: 5.0,
),
child: PinCodeTextField( child: PinCodeTextField(
appContext: context, appContext: context,
pastedTextStyle: TextStyle( pastedTextStyle: TextStyle(
fontWeight: FontWeight.bold, fontWeight: FontWeight.bold,
...@@ -602,14 +651,14 @@ class _PaymentdetailsState extends State<Paymentdetails> { ...@@ -602,14 +651,14 @@ class _PaymentdetailsState extends State<Paymentdetails> {
borderRadius: BorderRadius.circular(16), borderRadius: BorderRadius.circular(16),
fieldHeight: 60, fieldHeight: 60,
fieldWidth: 60, fieldWidth: 60,
activeFillColor: AppColors activeFillColor:
.text_field_color, AppColors.text_field_color,
activeColor: AppColors.app_blue, activeColor: AppColors.app_blue,
selectedColor: AppColors.text_field_color, selectedColor: AppColors.text_field_color,
selectedFillColor: AppColors selectedFillColor:
.text_field_color, AppColors.text_field_color,
inactiveFillColor: AppColors inactiveFillColor:
.text_field_color, AppColors.text_field_color,
inactiveColor: AppColors.text_field_color, inactiveColor: AppColors.text_field_color,
fieldOuterPadding: EdgeInsets.only( fieldOuterPadding: EdgeInsets.only(
left: 5, left: 5,
...@@ -660,23 +709,25 @@ class _PaymentdetailsState extends State<Paymentdetails> { ...@@ -660,23 +709,25 @@ class _PaymentdetailsState extends State<Paymentdetails> {
), ),
SizedBox(height: 15), SizedBox(height: 15),
Container( Container(
width: 110, alignment: Alignment.center,
height: 45, height: 45,
margin: EdgeInsets.only( margin: EdgeInsets.only(
left: 10.0, right: 10.0), left: 5.0,
decoration: BoxDecoration( right: 5.0,
borderRadius: BorderRadius.circular(15.0), top: 5.0,
bottom: 5.0,
), ),
child: TextButton( child: InkResponse(
onPressed: onTap: () {
() => provider.ResendOtpAPI(context);
{
}, },
child: Text( child: Center(
"Resend", child: Text(
style: TextStyle( "Resend",
fontWeight: FontWeight.w300), style: TextStyle(
fontWeight: FontWeight.w300,
),
),
), ),
), ),
), ),
...@@ -704,9 +755,10 @@ class _PaymentdetailsState extends State<Paymentdetails> { ...@@ -704,9 +755,10 @@ class _PaymentdetailsState extends State<Paymentdetails> {
"Submit", "Submit",
textAlign: TextAlign.center, textAlign: TextAlign.center,
style: TextStyle( style: TextStyle(
fontSize: 15, fontSize: 15,
fontFamily: "JakartaMedium", fontFamily: "JakartaMedium",
color: Colors.white), color: Colors.white,
),
), ),
), ),
), ),
...@@ -728,21 +780,14 @@ class _PaymentdetailsState extends State<Paymentdetails> { ...@@ -728,21 +780,14 @@ class _PaymentdetailsState extends State<Paymentdetails> {
} }
Future<void> _addContactSheet(BuildContext context) { Future<void> _addContactSheet(BuildContext context) {
final controllers = [
nameController,
designationController,
mobController,
altMobController,
telController,
emailController
];
final controllersNames = [ final controllersNames = [
"Name", "Name",
"Designation", "Designation",
"Mobile Number", "Mobile Number",
"Alternate Mobile Number", "Alternate Mobile Number",
"Telephone Number", "Telephone Number",
"Email ID" "Email ID",
]; ];
final hintTextNames = [ final hintTextNames = [
...@@ -751,7 +796,7 @@ class _PaymentdetailsState extends State<Paymentdetails> { ...@@ -751,7 +796,7 @@ class _PaymentdetailsState extends State<Paymentdetails> {
"Enter Mobile Number", "Enter Mobile Number",
"Enter Alternate Mobile Number", "Enter Alternate Mobile Number",
"Enter Telephone Number", "Enter Telephone Number",
"Enter Email ID" "Enter Email ID",
]; ];
return showModalBottomSheet( return showModalBottomSheet(
useSafeArea: true, useSafeArea: true,
...@@ -767,16 +812,20 @@ class _PaymentdetailsState extends State<Paymentdetails> { ...@@ -767,16 +812,20 @@ class _PaymentdetailsState extends State<Paymentdetails> {
return SafeArea( return SafeArea(
child: Consumer<Paymentdetailsprovider>( child: Consumer<Paymentdetailsprovider>(
builder: (context, provider, child) { builder: (context, provider, child) {
final controllers = [
provider.nameController,
provider.designationController,
provider.mobController,
provider.altMobController,
provider.telController,
provider.emailController,
];
return Padding( return Padding(
padding: EdgeInsets.only( padding: EdgeInsets.only(
bottom: bottom:
MediaQuery MediaQuery.of(
.of( context,
context, ).viewInsets.bottom, // This handles keyboard
)
.viewInsets
.bottom, // This handles keyboard
), ),
child: Container( child: Container(
margin: EdgeInsets.only( margin: EdgeInsets.only(
...@@ -797,75 +846,87 @@ class _PaymentdetailsState extends State<Paymentdetails> { ...@@ -797,75 +846,87 @@ class _PaymentdetailsState extends State<Paymentdetails> {
child: Text( child: Text(
"Add Contact", "Add Contact",
style: TextStyle( style: TextStyle(
color: AppColors.app_blue, color: AppColors.app_blue,
fontSize: 16 fontSize: 16,
), ),
), ),
), ),
...List.generate(controllers.length, (index) { ...List.generate(controllers.length, (index) {
return Column( return Column(
crossAxisAlignment: CrossAxisAlignment.start, crossAxisAlignment: CrossAxisAlignment.start,
children: [ children: [
Text( Text("${controllersNames[index]}"),
"${controllersNames[index]}",
),
Container( Container(
height: 50, height: 50,
margin: EdgeInsets.symmetric(vertical: 5),
alignment: Alignment.center, alignment: Alignment.center,
decoration: BoxDecoration( decoration: BoxDecoration(
color: AppColors.text_field_color, color: AppColors.text_field_color,
borderRadius: borderRadius: BorderRadius.circular(14),
BorderRadius.circular(25),
), ),
child: Padding( child: Padding(
padding: padding: const EdgeInsets.fromLTRB(
const EdgeInsets.fromLTRB( 10.0,
10.0, 0.0, 10, 0), 0.0,
10,
0,
),
child: TextFormField( child: TextFormField(
controller: controller: controllers[index],
controllers[index], focusNode:focusNodes[index],
keyboardType:
TextInputType.text, maxLength:
[
"Mobile Number",
"Alternate Mobile Number",
].contains(
controllersNames[index],
)
? 10
: 998895646546561356,
maxLines: 1,
keyboardType: [
"Mobile Number",
"Alternate Mobile Number",
"Mobile Number",
].contains(
controllersNames[index],
)?TextInputType.numberWithOptions():TextInputType.text,
textInputAction:index==5?TextInputAction.done: TextInputAction.next,
decoration: InputDecoration( decoration: InputDecoration(
counterText: "",
hintText: hintText: "${hintTextNames[index]}",
"${hintTextNames[index]}",
hintStyle: TextStyle( hintStyle: TextStyle(
fontWeight: FontWeight.w400, fontWeight: FontWeight.w400,
color: Color(0xFFB4BEC0), color: Color(0xFFB4BEC0),
fontSize: 14 fontSize: 14,
), ),
enabledBorder: enabledBorder: InputBorder.none,
InputBorder.none, focusedBorder: InputBorder.none,
focusedBorder:
InputBorder.none,
), ),
), ),
), ),
), ),
], ],
); );
},), }),
InkWell( InkWell(
onTap: () { onTap: () {
provider.AddContactAPIFunction( provider.AddContactAPIFunction(
context, context,
widget.accountName, widget.accountName,
widget.genId, widget.genId==""? widget.referenceID:widget.genId ,
nameController.text, provider.nameController.text,
designationController.text, provider.designationController.text,
mobController.text, provider.mobController.text,
altMobController.text, provider.altMobController.text,
telController.text, provider.telController.text,
emailController.text); provider.emailController.text,
);
}, },
child: Container( child: Container(
alignment: Alignment.center, alignment: Alignment.center,
...@@ -878,7 +939,7 @@ class _PaymentdetailsState extends State<Paymentdetails> { ...@@ -878,7 +939,7 @@ class _PaymentdetailsState extends State<Paymentdetails> {
), ),
decoration: BoxDecoration( decoration: BoxDecoration(
color: AppColors.app_blue, //1487C9 color: AppColors.app_blue, //1487C9
borderRadius: BorderRadius.circular(30.0), borderRadius: BorderRadius.circular(14.0),
), ),
child: Center( child: Center(
child: Text( child: Text(
...@@ -900,6 +961,21 @@ class _PaymentdetailsState extends State<Paymentdetails> { ...@@ -900,6 +961,21 @@ class _PaymentdetailsState extends State<Paymentdetails> {
}, },
); );
}, },
); ).whenComplete(() {
WidgetsBinding.instance.addPostFrameCallback((_) {
Future.microtask(() {
var provider = Provider.of<Paymentdetailsprovider>(
context,
listen: false,
);
provider.LoadNumbersAPI(
context,
widget.accountName,
widget.referenceID,
widget.genId,
);
});
});
},);
} }
} }
...@@ -49,7 +49,13 @@ class _VisitdetailsState extends State<Visitdetails> { ...@@ -49,7 +49,13 @@ class _VisitdetailsState extends State<Visitdetails> {
child: Column( child: Column(
crossAxisAlignment: CrossAxisAlignment.start, crossAxisAlignment: CrossAxisAlignment.start,
children: [ children: [
Text("Customer Details"), Container(
padding: EdgeInsets.symmetric(horizontal: 8),
child: Text("Customer Details",style: TextStyle(
fontSize: 14,
color: AppColors.grey_thick,
),),
),
Container( Container(
margin: EdgeInsets.symmetric( margin: EdgeInsets.symmetric(
horizontal: 10, horizontal: 10,
...@@ -83,34 +89,56 @@ class _VisitdetailsState extends State<Visitdetails> { ...@@ -83,34 +89,56 @@ class _VisitdetailsState extends State<Visitdetails> {
vertical: 6, vertical: 6,
horizontal: 0, horizontal: 0,
), ),
child: Row( child: Column(
mainAxisAlignment:
MainAxisAlignment.spaceBetween,
children: [ children: [
if (j == 0) ...[ Row(
SvgPicture.asset( mainAxisAlignment:
"assets/svg/se_block_head.svg", MainAxisAlignment.spaceBetween,
), children: [
SizedBox(width: 5), if (j == 0) ...[
], SvgPicture.asset(
Expanded( "assets/svg/se_block_head.svg",
child: SizedBox( ),
child: Column( SizedBox(width: 5),
crossAxisAlignment: Expanded(
CrossAxisAlignment.start, child: SizedBox(
children: [ child: Column(
Text( crossAxisAlignment:
textheads[j].toString(), CrossAxisAlignment.start,
maxLines: 2, children: [
overflow: TextOverflow.ellipsis, Text(
"${customerDetails.cname}",
maxLines: 2,
overflow: TextOverflow.ellipsis,
),
SizedBox(
// height:45,
width:
MediaQuery.of(
context,
).size.width *
0.75,
child: Text(
textSubheads[j] == ""
? "-"
: customerDetails.aname ?? "-",
maxLines: 2,
overflow: TextOverflow.ellipsis,
style: TextStyle(
color: Color(0xFF818181),
),
),
),
],
),
), ),
SizedBox( ),
// height:45, ]else...[
width: Expanded(
MediaQuery.of( child: Text(textheads[j].toString()),
context, ),
).size.width * Expanded(
0.75, child: SizedBox(
child: Text( child: Text(
textSubheads[j] == "" textSubheads[j] == ""
? "-" ? "-"
...@@ -122,18 +150,25 @@ class _VisitdetailsState extends State<Visitdetails> { ...@@ -122,18 +150,25 @@ class _VisitdetailsState extends State<Visitdetails> {
), ),
), ),
), ),
], ),
), ],
),
],
), ),
], ],
), )
); );
}), }),
), ),
), ),
Text("Generator Details"), Container(
padding: EdgeInsets.symmetric(horizontal: 8),
child: Text("Generator Details",style: TextStyle(
fontSize: 14,
color: AppColors.grey_thick,
),),
),
Container( Container(
margin: EdgeInsets.symmetric( margin: EdgeInsets.symmetric(
horizontal: 10, horizontal: 10,
...@@ -149,89 +184,66 @@ class _VisitdetailsState extends State<Visitdetails> { ...@@ -149,89 +184,66 @@ class _VisitdetailsState extends State<Visitdetails> {
), ),
child: Column( child: Column(
children: [ children: [
Row( ...List.generate(6, (j) {
children: [ final textheads = [
SvgPicture.asset("assetName"), "Gen ID",
Column( "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: 6,
horizontal: 0,
),
child: Row(
crossAxisAlignment: CrossAxisAlignment.start, crossAxisAlignment: CrossAxisAlignment.start,
children: List.generate(6, (j) { children: [
final textheads = [ Expanded(
"Gen ID", child: Text(textheads[j].toString()),
"Engine Number", ),
"Address", Expanded(
"Product Name", child: SizedBox(
"Engine Model", child: Text(
"Date Of Supply", textSubheads[j] == ""
]; ? "-"
final textSubheads = [ : textSubheads[j],
"${generatorDetails.genHashId}", maxLines: 2,
"${generatorDetails.engineNo}", overflow: TextOverflow.ellipsis,
"${generatorDetails.address}", style: TextStyle(
"${generatorDetails.spname}", color: Color(0xFF818181),
"${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] == ""
? "-"
: textSubheads[j],
maxLines: 2,
overflow:
TextOverflow
.ellipsis,
style: TextStyle(
color: Color(
0xFF818181,
),
),
),
),
],
),
),
],
), ),
], ),
), ),
); ),
}), ],
), ),
], );
), }),
], ],
), ),
), ),
Text("Complaint Details"), Container(
padding: EdgeInsets.symmetric(horizontal: 8),
child: Text(
"Complaint Details",
style: TextStyle(
fontSize: 14,
color: AppColors.grey_thick,
),
),
),
Container( Container(
margin: EdgeInsets.symmetric( margin: EdgeInsets.symmetric(
horizontal: 10, horizontal: 10,
...@@ -247,79 +259,51 @@ class _VisitdetailsState extends State<Visitdetails> { ...@@ -247,79 +259,51 @@ class _VisitdetailsState extends State<Visitdetails> {
), ),
child: Column( child: Column(
children: [ children: [
Row( ...List.generate(4, (j) {
children: [ final textheads = [
Column( "Complaint ID",
"Complaint Description",
"Opened Date",
"Complaint Type",
];
final textSubheads = [
"${complaintDetails.complaintId}",
"${complaintDetails.complaintDesc}",
"${complaintDetails.openedDate}",
"${complaintDetails.complaintType}",
];
return Container(
padding: EdgeInsets.symmetric(vertical: 6),
child: Row(
crossAxisAlignment: CrossAxisAlignment.start, crossAxisAlignment: CrossAxisAlignment.start,
children: List.generate(4, (j) { children: [
final textheads = [ Expanded(
"Complaint ID", child: Text(textheads[j].toString()),
"Complaint Description", ),
"Opened Date", Expanded(
"Complaint Type", child: SizedBox(
]; // height:45,
final textSubheads = [ // width:
"${complaintDetails.complaintId}", // MediaQuery.of(
"${complaintDetails.complaintDesc}", // context,
"${complaintDetails.openedDate}", // ).size.width *
"${complaintDetails.complaintType}", // 0.8,
]; child: Text(
return Container( textSubheads[j] == ""
padding: EdgeInsets.symmetric( ? "-"
vertical: 3, : textSubheads[j],
), maxLines: 2,
child: Column( overflow: TextOverflow.ellipsis,
children: [ style: TextStyle(
Row( color: Color(0xFF818181),
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] == ""
? "-"
: textSubheads[j],
maxLines: 2,
overflow:
TextOverflow
.ellipsis,
style: TextStyle(
color: Color(
0xFF818181,
),
),
),
),
],
),
),
],
), ),
], ),
), ),
); ),
}), ],
), ),
], );
), }),
], ],
), ),
), ),
......
...@@ -105,6 +105,7 @@ import '../Models/ordersModels/ordersPdiIdByEngNumberResponse.dart'; ...@@ -105,6 +105,7 @@ import '../Models/ordersModels/ordersPdiIdByEngNumberResponse.dart';
import '../Models/ordersModels/paymentDetailsByModeFilterResponse.dart'; import '../Models/ordersModels/paymentDetailsByModeFilterResponse.dart';
import '../Models/ordersModels/paymentListByModeFilterResponse.dart'; import '../Models/ordersModels/paymentListByModeFilterResponse.dart';
import '../Models/ordersModels/paymentListByModeResponse.dart'; import '../Models/ordersModels/paymentListByModeResponse.dart';
import '../Models/ordersModels/technicianAddPaymentResendOTPResponse.dart';
import '../Notifiers/financeProvider/approveRejectPaymentRequestResponse.dart'; import '../Notifiers/financeProvider/approveRejectPaymentRequestResponse.dart';
import '../Utils/commonServices.dart'; import '../Utils/commonServices.dart';
...@@ -928,6 +929,7 @@ class ApiCalling { ...@@ -928,6 +929,7 @@ class ApiCalling {
'gen_id': (gen_id).toString(), 'gen_id': (gen_id).toString(),
'account_id': (account_id).toString(), 'account_id': (account_id).toString(),
}; };
print(data);
final res = await post(data, technicianAddPaymentUrl, {}); final res = await post(data, technicianAddPaymentUrl, {});
if (res != null) { if (res != null) {
// debugPrint(res.body); // debugPrint(res.body);
...@@ -986,7 +988,7 @@ class ApiCalling { ...@@ -986,7 +988,7 @@ class ApiCalling {
// debugPrint("Null Response"); // debugPrint("Null Response");
// return null; // return null;
// } // }
print("send otp:${data}");
if (payment_proof != null) { if (payment_proof != null) {
res = await postImageNew( res = await postImageNew(
data, data,
...@@ -998,14 +1000,15 @@ class ApiCalling { ...@@ -998,14 +1000,15 @@ class ApiCalling {
print("Add Payment $res"); print("Add Payment $res");
res = jsonDecode(res); res = jsonDecode(res);
return TechnicianAddPaymentCollectionResponse.fromJson(res);
} else { } else {
print("Add Payment $res"); print("Add Payment $res");
res = await post(data, technicianAddPaymentCollectionUrl, {}); res = await post(data, technicianAddPaymentCollectionUrl, {});
res = jsonDecode(res.body); res = jsonDecode(res.body);
return TechnicianAddPaymentCollectionResponse.fromJson(res); // return TechnicianAddPaymentCollectionResponse.fromJson(res);
} }
return TechnicianAddPaymentCollectionResponse.fromJson(res);
} catch (e) { } catch (e) {
debugPrint('hello bev=bug $e '); debugPrint('hello bev=bug $e ');
return null; return null;
...@@ -1041,6 +1044,33 @@ class ApiCalling { ...@@ -1041,6 +1044,33 @@ class ApiCalling {
return null; return null;
} }
} }
static Future<Technicianaddpaymentresendotpresponse?>
TechnicianPaymentOTPResendAPI(
empId,
session,
payment_collection_id,
) async {
try {
Map<String, String> data = {
'emp_id': (empId).toString(),
'session_id': (session).toString(),
'payment_collection_id': (payment_collection_id).toString(),
};
final res = await post(data, technicianAddPaymentResendOTPUrl, {});
if (res != null) {
debugPrint("OTP${res.body}");
return Technicianaddpaymentresendotpresponse.fromJson(
jsonDecode(res.body),
);
} else {
debugPrint("Null Response");
return null;
}
} catch (e) {
debugPrint('hello bev=bug $e ');
return null;
}
}
static Future<PaymentCollectionResponse?> paymentCollectionListAPI( static Future<PaymentCollectionResponse?> paymentCollectionListAPI(
empId, empId,
...@@ -1165,9 +1195,10 @@ class ApiCalling { ...@@ -1165,9 +1195,10 @@ class ApiCalling {
'type': (type).toString(), 'type': (type).toString(),
'account_id': (account_id).toString(), 'account_id': (account_id).toString(),
}; };
print(data);
final res = await post(data, technicianAddContactUrl, {}); final res = await post(data, technicianAddContactUrl, {});
if (res != null) { if (res != null) {
// debugPrint(res.body); debugPrint(res.body);
return AddContactResponse.fromJson(jsonDecode(res.body)); return AddContactResponse.fromJson(jsonDecode(res.body));
} else { } else {
debugPrint("Null Response"); debugPrint("Null Response");
...@@ -2073,7 +2104,7 @@ class ApiCalling { ...@@ -2073,7 +2104,7 @@ class ApiCalling {
}; };
final res = await post(data, commonAccountListUrl, {}); final res = await post(data, commonAccountListUrl, {});
if (res != null) { if (res != null) {
debugPrint(res.body); debugPrint("adad:${res.body}");
return commonAccountlistResponse.fromJson(jsonDecode(res.body)); return commonAccountlistResponse.fromJson(jsonDecode(res.body));
} else { } else {
debugPrint("Null Response"); debugPrint("Null Response");
......
...@@ -44,6 +44,7 @@ const technicianMonthlyVisitsUrl= "${baseUrl}home/technician_monthly_visits"; ...@@ -44,6 +44,7 @@ const technicianMonthlyVisitsUrl= "${baseUrl}home/technician_monthly_visits";
const technicianNearbyGeneratorsUrl= "${baseUrl}home/technician_nearby_generators"; const technicianNearbyGeneratorsUrl= "${baseUrl}home/technician_nearby_generators";
const technicianAddPaymentUrl= "${baseUrl}home/technician_add_payment_det"; const technicianAddPaymentUrl= "${baseUrl}home/technician_add_payment_det";
const technicianAddPaymentCollectionUrl= "${baseUrl}home/technician_add_payment_collection"; const technicianAddPaymentCollectionUrl= "${baseUrl}home/technician_add_payment_collection";
const technicianAddPaymentResendOTPUrl= "${baseUrl}home/technician_add_payment_collection_resend_otp";
const technicianPaymentCollectionOtpUrl= "${baseUrl}home/technician_payment_collection_validate_otp"; const technicianPaymentCollectionOtpUrl= "${baseUrl}home/technician_payment_collection_validate_otp";
const technicianPaymentCollectionUrl= "${baseUrl}home/technician_payment_collection_list"; const technicianPaymentCollectionUrl= "${baseUrl}home/technician_payment_collection_list";
const technicianWalletCollectionUrl= "${baseUrl}home/technician_payment_collection_wallet"; const technicianWalletCollectionUrl= "${baseUrl}home/technician_payment_collection_wallet";
......
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