Commit 381932be authored by Sai Srinivas's avatar Sai Srinivas
Browse files

27-06-2025 By Sai Srinivas

Add Order Module Test cases.
parent 722d6c9c
...@@ -24,6 +24,12 @@ import '../HomeScreenNotifier.dart'; ...@@ -24,6 +24,12 @@ import '../HomeScreenNotifier.dart';
class Addorderprovider extends ChangeNotifier {TextEditingController dropDownSearchController = TextEditingController(); class Addorderprovider extends ChangeNotifier {TextEditingController dropDownSearchController = TextEditingController();
TextEditingController dropDownTpcSearchController = TextEditingController(); TextEditingController dropDownTpcSearchController = TextEditingController();
TextEditingController billingStateSearchController = TextEditingController();
TextEditingController billingDistrictSearchController = TextEditingController();
TextEditingController billingSubLocSearchController = TextEditingController();
TextEditingController dispatchStateSearchController = TextEditingController();
TextEditingController dispatchDistrictSearchController = TextEditingController();
TextEditingController dispatchSubLocSearchController = TextEditingController();
TextEditingController billingNameController = TextEditingController(); TextEditingController billingNameController = TextEditingController();
TextEditingController billingAddressController = TextEditingController(); TextEditingController billingAddressController = TextEditingController();
...@@ -802,13 +808,13 @@ void updateRowCalculations(int index) { ...@@ -802,13 +808,13 @@ void updateRowCalculations(int index) {
if (data != null) { if (data != null) {
if (data.error == "0") { if (data.error == "0") {
_tpcApplicable = ["Yes","No"]; _tpcApplicable = ["Yes","No"];
_erectionScope = data.erectionScope!; _erectionScope = data.erectionScope??[];
_unloadingScope = data.unloadingScope!; _unloadingScope = data.unloadingScope??[];
_freightScope = data.freightScope!; _freightScope = data.freightScope??[];
_employees = data.employees!; _employees = data.employees??[];
_billingStates = data.states!; _billingStates = data.states??[];
_dispatchStates = data.states!; _dispatchStates = data.states??[];
_saleProducts = data.saleProducts!; _saleProducts = data.saleProducts??[];
checkDropdownselected(); checkDropdownselected();
...@@ -1314,6 +1320,14 @@ void updateRowCalculations(int index) { ...@@ -1314,6 +1320,14 @@ void updateRowCalculations(int index) {
billingPincodeController.clear(); billingPincodeController.clear();
dispatchAddressController.clear(); dispatchAddressController.clear();
dispatchPincodeController.clear(); dispatchPincodeController.clear();
billingStateSearchController.clear();
billingDistrictSearchController.clear();
billingSubLocSearchController.clear();
dispatchStateSearchController.clear();
dispatchDistrictSearchController.clear();
dispatchSubLocSearchController.clear();
gstController.clear(); gstController.clear();
orderReceivedDateController.clear(); orderReceivedDateController.clear();
tpcAmountController.clear(); tpcAmountController.clear();
......
...@@ -153,13 +153,17 @@ textInputAction, ...@@ -153,13 +153,17 @@ textInputAction,
onChanged: onChanged, onChanged: onChanged,
focusNode: focusNode, focusNode: focusNode,
onTapUpOutside: (event) { onTapUpOutside: (event) {
if(focusNode!=null){
if(focusNode.hasFocus){ if(focusNode.hasFocus){
focusNode.unfocus(); focusNode.unfocus();
} }
}
}, },
textInputAction: textInputAction, textInputAction: textInputAction,
onEditingComplete: () { onEditingComplete: () {
if(focusNode!=null){
focusNode.unfocus(); focusNode.unfocus();
}
if(focusNode2!=null){ if(focusNode2!=null){
focusNode2.requestFocus(); focusNode2.requestFocus();
} }
......
...@@ -38,6 +38,7 @@ class _AddcommonpaymentState extends State<Addcommonpayment>{ ...@@ -38,6 +38,7 @@ class _AddcommonpaymentState extends State<Addcommonpayment>{
@override @override
void dispose() { void dispose() {
focusNodes.map((e) => e.dispose(),);
super.dispose(); super.dispose();
} }
......
...@@ -25,6 +25,7 @@ class AddorderScreen extends StatefulWidget { ...@@ -25,6 +25,7 @@ class AddorderScreen extends StatefulWidget {
class _AddorderScreenState extends State<AddorderScreen> { class _AddorderScreenState extends State<AddorderScreen> {
FocusNode focusNode = FocusNode(); FocusNode focusNode = FocusNode();
FocusNode focusNodetpc = FocusNode(); FocusNode focusNodetpc = FocusNode();
List<FocusNode> focusNodes = List.generate(10, (index) => FocusNode());
Dropdowntheme ddtheme = Dropdowntheme(); Dropdowntheme ddtheme = Dropdowntheme();
@override @override
void initState() { void initState() {
...@@ -43,6 +44,9 @@ Dropdowntheme ddtheme = Dropdowntheme(); ...@@ -43,6 +44,9 @@ Dropdowntheme ddtheme = Dropdowntheme();
@override @override
void dispose() { void dispose() {
focusNodes.map((e)=>e.dispose());
focusNode.dispose();
focusNodetpc.dispose();
super.dispose(); super.dispose();
} }
...@@ -76,13 +80,28 @@ Dropdowntheme ddtheme = Dropdowntheme(); ...@@ -76,13 +80,28 @@ Dropdowntheme ddtheme = Dropdowntheme();
crossAxisAlignment: CrossAxisAlignment.start, crossAxisAlignment: CrossAxisAlignment.start,
children: [ children: [
TextWidget(context, "Account"), TextWidget(context, "Account"),
Container( InkResponse(
onTap: () {
if (focusNode.hasFocus) {
focusNode.unfocus();
} else {
FocusScope.of(context).requestFocus(focusNode);
}
},
child: Container(
alignment: Alignment.center, alignment: Alignment.center,
decoration: BoxDecoration( decoration: BoxDecoration(
color: AppColors.text_field_color, color: AppColors.text_field_color,
borderRadius: BorderRadius.circular(14), borderRadius: BorderRadius.circular(14),
), ),
child: ListTile( child: ListTile(
onTap: (){
if (focusNode.hasFocus) {
focusNode.unfocus();
} else {
FocusScope.of(context).requestFocus(focusNode);
}
},
title: TextFormField( title: TextFormField(
focusNode: focusNode, focusNode: focusNode,
onTapUpOutside: (event) { onTapUpOutside: (event) {
...@@ -108,11 +127,12 @@ Dropdowntheme ddtheme = Dropdowntheme(); ...@@ -108,11 +127,12 @@ Dropdowntheme ddtheme = Dropdowntheme();
focusedBorder: InputBorder.none, focusedBorder: InputBorder.none,
isDense: true, isDense: true,
contentPadding: const EdgeInsets.symmetric( contentPadding: const EdgeInsets.symmetric(
horizontal: 10, horizontal: 0,
vertical: 8, vertical: 8,
), ),
hintText: 'Select Account Type', hintText: 'Select Account Type',
hintStyle: const TextStyle(fontSize: 12), hintStyle: const TextStyle(fontSize: 14),
border: OutlineInputBorder( border: OutlineInputBorder(
borderRadius: BorderRadius.circular(8), borderRadius: BorderRadius.circular(8),
), ),
...@@ -135,13 +155,14 @@ Dropdowntheme ddtheme = Dropdowntheme(); ...@@ -135,13 +155,14 @@ Dropdowntheme ddtheme = Dropdowntheme();
), ),
), ),
), ),
),
if (provider.accountList.isNotEmpty && if (provider.accountList.isNotEmpty &&
focusNode.hasFocus) ...[ focusNode.hasFocus) ...[
Card( Card(
margin: EdgeInsets.symmetric(horizontal: 0), margin: EdgeInsets.symmetric(horizontal: 0),
child: Container( child: Container(
padding: EdgeInsets.symmetric(horizontal: 10), padding: EdgeInsets.symmetric(horizontal: 10),
height: 150, height: widget.mode=="self"?50:150,
decoration: BoxDecoration( decoration: BoxDecoration(
borderRadius: BorderRadius.circular(16), borderRadius: BorderRadius.circular(16),
), ),
...@@ -306,6 +327,9 @@ Dropdowntheme ddtheme = Dropdowntheme(); ...@@ -306,6 +327,9 @@ Dropdowntheme ddtheme = Dropdowntheme();
TextInputType.text, TextInputType.text,
false, false,
null, null,
focusNodes[0],
null,
TextInputAction.done
), ),
errorWidget(context, provider.billingNameError), errorWidget(context, provider.billingNameError),
TextWidget(context, "Billing State"), TextWidget(context, "Billing State"),
...@@ -355,6 +379,44 @@ Dropdowntheme ddtheme = Dropdowntheme(); ...@@ -355,6 +379,44 @@ Dropdowntheme ddtheme = Dropdowntheme();
); );
} }
}, },
dropdownSearchData: DropdownSearchData(
searchInnerWidgetHeight: 50,
searchController:provider.billingStateSearchController,
searchInnerWidget: Padding(
padding: const EdgeInsets.all(8),
child: TextFormField(
controller:
provider.billingStateSearchController,
decoration: InputDecoration(
isDense: true,
contentPadding:
const EdgeInsets.symmetric(
horizontal: 10,
vertical: 8,
),
hintText: 'Search Sate...',
border: OutlineInputBorder(
borderRadius:
BorderRadius.circular(8),
),
),
),
),
searchMatchFn: (item, searchValue) {
return item.value?.name
?.toLowerCase()
.contains(
searchValue.toLowerCase(),
) ??
false;
},
),
onMenuStateChange: (isOpen) {
if (!isOpen) {
provider.billingStateSearchController
.clear();
}
},
buttonStyleData: ddtheme.buttonStyleData, buttonStyleData: ddtheme.buttonStyleData,
iconStyleData: ddtheme.iconStyleData, iconStyleData: ddtheme.iconStyleData,
menuItemStyleData: ddtheme.menuItemStyleData, menuItemStyleData: ddtheme.menuItemStyleData,
...@@ -410,6 +472,44 @@ Dropdowntheme ddtheme = Dropdowntheme(); ...@@ -410,6 +472,44 @@ Dropdowntheme ddtheme = Dropdowntheme();
); );
} }
}, },
dropdownSearchData: DropdownSearchData(
searchInnerWidgetHeight: 50,
searchController:provider.billingDistrictSearchController,
searchInnerWidget: Padding(
padding: const EdgeInsets.all(8),
child: TextFormField(
controller:
provider.billingDistrictSearchController,
decoration: InputDecoration(
isDense: true,
contentPadding:
const EdgeInsets.symmetric(
horizontal: 10,
vertical: 8,
),
hintText: 'Search District...',
border: OutlineInputBorder(
borderRadius:
BorderRadius.circular(8),
),
),
),
),
searchMatchFn: (item, searchValue) {
return item.value?.district
?.toLowerCase()
.contains(
searchValue.toLowerCase(),
) ??
false;
},
),
onMenuStateChange: (isOpen) {
if (!isOpen) {
provider.billingDistrictSearchController
.clear();
}
},
buttonStyleData: ddtheme.buttonStyleData, buttonStyleData: ddtheme.buttonStyleData,
iconStyleData: ddtheme.iconStyleData, iconStyleData: ddtheme.iconStyleData,
menuItemStyleData: ddtheme.menuItemStyleData, menuItemStyleData: ddtheme.menuItemStyleData,
...@@ -453,6 +553,44 @@ Dropdowntheme ddtheme = Dropdowntheme(); ...@@ -453,6 +553,44 @@ Dropdowntheme ddtheme = Dropdowntheme();
value!.subLocality!; value!.subLocality!;
} }
}, },
dropdownSearchData: DropdownSearchData(
searchInnerWidgetHeight: 50,
searchController:provider.billingSubLocSearchController,
searchInnerWidget: Padding(
padding: const EdgeInsets.all(8),
child: TextFormField(
controller:
provider.billingSubLocSearchController,
decoration: InputDecoration(
isDense: true,
contentPadding:
const EdgeInsets.symmetric(
horizontal: 10,
vertical: 8,
),
hintText: 'Search Sub Location...',
border: OutlineInputBorder(
borderRadius:
BorderRadius.circular(8),
),
),
),
),
searchMatchFn: (item, searchValue) {
return item.value?.subLocality
?.toLowerCase()
.contains(
searchValue.toLowerCase(),
) ??
false;
},
),
onMenuStateChange: (isOpen) {
if (!isOpen) {
provider.billingSubLocSearchController
.clear();
}
},
buttonStyleData: ddtheme.buttonStyleData, buttonStyleData: ddtheme.buttonStyleData,
iconStyleData: ddtheme.iconStyleData, iconStyleData: ddtheme.iconStyleData,
menuItemStyleData: ddtheme.menuItemStyleData, menuItemStyleData: ddtheme.menuItemStyleData,
...@@ -470,6 +608,9 @@ Dropdowntheme ddtheme = Dropdowntheme(); ...@@ -470,6 +608,9 @@ Dropdowntheme ddtheme = Dropdowntheme();
TextInputType.text, TextInputType.text,
false, false,
null, null,
focusNodes[1],
focusNodes[2],
TextInputAction.next
), ),
errorWidget(context, provider.billingAddressError), errorWidget(context, provider.billingAddressError),
...@@ -481,6 +622,10 @@ Dropdowntheme ddtheme = Dropdowntheme(); ...@@ -481,6 +622,10 @@ Dropdowntheme ddtheme = Dropdowntheme();
TextInputType.number, TextInputType.number,
false, false,
FilteringTextInputFormatter.digitsOnly, FilteringTextInputFormatter.digitsOnly,
focusNodes[2],
null,
TextInputAction.done,
6
), ),
errorWidget(context, provider.billingPincodeError), errorWidget(context, provider.billingPincodeError),
...@@ -529,6 +674,44 @@ Dropdowntheme ddtheme = Dropdowntheme(); ...@@ -529,6 +674,44 @@ Dropdowntheme ddtheme = Dropdowntheme();
); );
} }
}, },
dropdownSearchData: DropdownSearchData(
searchInnerWidgetHeight: 50,
searchController:provider.dispatchStateSearchController,
searchInnerWidget: Padding(
padding: const EdgeInsets.all(8),
child: TextFormField(
controller:
provider.dispatchStateSearchController,
decoration: InputDecoration(
isDense: true,
contentPadding:
const EdgeInsets.symmetric(
horizontal: 10,
vertical: 8,
),
hintText: 'Search Sate...',
border: OutlineInputBorder(
borderRadius:
BorderRadius.circular(8),
),
),
),
),
searchMatchFn: (item, searchValue) {
return item.value?.name
?.toLowerCase()
.contains(
searchValue.toLowerCase(),
) ??
false;
},
),
onMenuStateChange: (isOpen) {
if (!isOpen) {
provider.dispatchStateSearchController
.clear();
}
},
buttonStyleData: ddtheme.buttonStyleData, buttonStyleData: ddtheme.buttonStyleData,
iconStyleData: ddtheme.iconStyleData, iconStyleData: ddtheme.iconStyleData,
menuItemStyleData: ddtheme.menuItemStyleData, menuItemStyleData: ddtheme.menuItemStyleData,
...@@ -588,6 +771,44 @@ Dropdowntheme ddtheme = Dropdowntheme(); ...@@ -588,6 +771,44 @@ Dropdowntheme ddtheme = Dropdowntheme();
); );
} }
}, },
dropdownSearchData: DropdownSearchData(
searchInnerWidgetHeight: 50,
searchController:provider.dispatchDistrictSearchController,
searchInnerWidget: Padding(
padding: const EdgeInsets.all(8),
child: TextFormField(
controller:
provider.dispatchDistrictSearchController,
decoration: InputDecoration(
isDense: true,
contentPadding:
const EdgeInsets.symmetric(
horizontal: 10,
vertical: 8,
),
hintText: 'Search District...',
border: OutlineInputBorder(
borderRadius:
BorderRadius.circular(8),
),
),
),
),
searchMatchFn: (item, searchValue) {
return item.value?.district
?.toLowerCase()
.contains(
searchValue.toLowerCase(),
) ??
false;
},
),
onMenuStateChange: (isOpen) {
if (!isOpen) {
provider.dispatchDistrictSearchController
.clear();
}
},
buttonStyleData: ddtheme.buttonStyleData, buttonStyleData: ddtheme.buttonStyleData,
iconStyleData: ddtheme.iconStyleData, iconStyleData: ddtheme.iconStyleData,
menuItemStyleData: ddtheme.menuItemStyleData, menuItemStyleData: ddtheme.menuItemStyleData,
...@@ -631,6 +852,44 @@ Dropdowntheme ddtheme = Dropdowntheme(); ...@@ -631,6 +852,44 @@ Dropdowntheme ddtheme = Dropdowntheme();
value!.subLocality!; value!.subLocality!;
} }
}, },
dropdownSearchData: DropdownSearchData(
searchInnerWidgetHeight: 50,
searchController:provider.dispatchSubLocSearchController,
searchInnerWidget: Padding(
padding: const EdgeInsets.all(8),
child: TextFormField(
controller:
provider.dispatchSubLocSearchController,
decoration: InputDecoration(
isDense: true,
contentPadding:
const EdgeInsets.symmetric(
horizontal: 10,
vertical: 8,
),
hintText: 'Search Sub Location...',
border: OutlineInputBorder(
borderRadius:
BorderRadius.circular(8),
),
),
),
),
searchMatchFn: (item, searchValue) {
return item.value?.subLocality
?.toLowerCase()
.contains(
searchValue.toLowerCase(),
) ??
false;
},
),
onMenuStateChange: (isOpen) {
if (!isOpen) {
provider.dispatchSubLocSearchController
.clear();
}
},
buttonStyleData: ddtheme.buttonStyleData, buttonStyleData: ddtheme.buttonStyleData,
iconStyleData: ddtheme.iconStyleData, iconStyleData: ddtheme.iconStyleData,
menuItemStyleData: ddtheme.menuItemStyleData, menuItemStyleData: ddtheme.menuItemStyleData,
...@@ -649,6 +908,9 @@ Dropdowntheme ddtheme = Dropdowntheme(); ...@@ -649,6 +908,9 @@ Dropdowntheme ddtheme = Dropdowntheme();
TextInputType.text, TextInputType.text,
false, false,
null, null,
focusNodes[3],
focusNodes[4],
TextInputAction.next
), ),
errorWidget(context, provider.dispatchAddressError), errorWidget(context, provider.dispatchAddressError),
...@@ -660,6 +922,10 @@ Dropdowntheme ddtheme = Dropdowntheme(); ...@@ -660,6 +922,10 @@ Dropdowntheme ddtheme = Dropdowntheme();
TextInputType.number, TextInputType.number,
false, false,
FilteringTextInputFormatter.digitsOnly, FilteringTextInputFormatter.digitsOnly,
focusNodes[4],
focusNodes[5],
TextInputAction.next,
6
), ),
errorWidget(context, provider.dispatchPincodeError), errorWidget(context, provider.dispatchPincodeError),
...@@ -668,9 +934,12 @@ Dropdowntheme ddtheme = Dropdowntheme(); ...@@ -668,9 +934,12 @@ Dropdowntheme ddtheme = Dropdowntheme();
provider.gstController, provider.gstController,
"GST Number", "GST Number",
provider.onChangedGst, provider.onChangedGst,
TextInputType.number, TextInputType.text,
false, false,
FilteringTextInputFormatter.digitsOnly, null,
focusNodes[5],
null,
TextInputAction.done
), ),
errorWidget(context, provider.gstError), errorWidget(context, provider.gstError),
...@@ -965,11 +1234,11 @@ Dropdowntheme ddtheme = Dropdowntheme(); ...@@ -965,11 +1234,11 @@ Dropdowntheme ddtheme = Dropdowntheme();
focusedBorder: InputBorder.none, focusedBorder: InputBorder.none,
isDense: true, isDense: true,
contentPadding: const EdgeInsets.symmetric( contentPadding: const EdgeInsets.symmetric(
horizontal: 10, horizontal: 0,
vertical: 8, vertical: 8,
), ),
hintText: 'Select TPC Agent', hintText: 'Select TPC Agent',
hintStyle: const TextStyle(fontSize: 12), hintStyle: const TextStyle(fontSize: 14),
border: OutlineInputBorder( border: OutlineInputBorder(
borderRadius: BorderRadius.circular(8), borderRadius: BorderRadius.circular(8),
), ),
...@@ -1062,6 +1331,9 @@ Dropdowntheme ddtheme = Dropdowntheme(); ...@@ -1062,6 +1331,9 @@ Dropdowntheme ddtheme = Dropdowntheme();
TextInputType.number, TextInputType.number,
false, false,
FilteringTextInputFormatter.digitsOnly, FilteringTextInputFormatter.digitsOnly,
focusNodes[6],
focusNodes[7],
TextInputAction.next
), ),
errorWidget(context, provider.tpcAmountError), errorWidget(context, provider.tpcAmountError),
], ],
...@@ -1223,8 +1495,9 @@ Dropdowntheme ddtheme = Dropdowntheme(); ...@@ -1223,8 +1495,9 @@ Dropdowntheme ddtheme = Dropdowntheme();
} }
class OrderForm extends StatelessWidget { class OrderForm extends StatelessWidget {
const OrderForm({super.key}); OrderForm({super.key});
FocusNode focusNode = FocusNode();
@override @override
Widget build(BuildContext context) { Widget build(BuildContext context) {
...@@ -1329,9 +1602,11 @@ class OrderForm extends StatelessWidget { ...@@ -1329,9 +1602,11 @@ class OrderForm extends StatelessWidget {
), ),
) )
.toList(), .toList(),
value: provider.saleProducts.firstWhere( value:
provider.saleProducts.contains(provider.selectedSaleProducts)?
provider.saleProducts.firstWhere(
(product) => product.id == provider.selectedSaleProductID[index], (product) => product.id == provider.selectedSaleProductID[index],
), ):null,
onChanged: (SaleProducts? value) { onChanged: (SaleProducts? value) {
if (value != null) { if (value != null) {
if (provider if (provider
...@@ -1372,6 +1647,10 @@ class OrderForm extends StatelessWidget { ...@@ -1372,6 +1647,10 @@ class OrderForm extends StatelessWidget {
TextInputType.number, TextInputType.number,
false, false,
FilteringTextInputFormatter.digitsOnly, FilteringTextInputFormatter.digitsOnly,
null,
null,
TextInputAction.next
), ),
), ),
const SizedBox(width: 8.0), const SizedBox(width: 8.0),
...@@ -1405,6 +1684,9 @@ class OrderForm extends StatelessWidget { ...@@ -1405,6 +1684,9 @@ class OrderForm extends StatelessWidget {
TextInputType.number, TextInputType.number,
false, false,
FilteringTextInputFormatter.digitsOnly, FilteringTextInputFormatter.digitsOnly,
null,
null,
TextInputAction.next
), ),
), ),
], ],
...@@ -1441,6 +1723,9 @@ class OrderForm extends StatelessWidget { ...@@ -1441,6 +1723,9 @@ class OrderForm extends StatelessWidget {
TextInputType.number, TextInputType.number,
false, false,
FilteringTextInputFormatter.digitsOnly, FilteringTextInputFormatter.digitsOnly,
null,
null,
TextInputAction.next
), ),
), ),
const SizedBox(width: 8.0), const SizedBox(width: 8.0),
...@@ -1473,6 +1758,9 @@ class OrderForm extends StatelessWidget { ...@@ -1473,6 +1758,9 @@ class OrderForm extends StatelessWidget {
TextInputType.number, TextInputType.number,
false, false,
FilteringTextInputFormatter.digitsOnly, FilteringTextInputFormatter.digitsOnly,
null,
null,
TextInputAction.next
), ),
), ),
const SizedBox(width: 8.0), const SizedBox(width: 8.0),
...@@ -1505,6 +1793,9 @@ class OrderForm extends StatelessWidget { ...@@ -1505,6 +1793,9 @@ class OrderForm extends StatelessWidget {
TextInputType.number, TextInputType.number,
false, false,
FilteringTextInputFormatter.digitsOnly, FilteringTextInputFormatter.digitsOnly,
null,
null,
TextInputAction.next
), ),
), ),
], ],
...@@ -1537,6 +1828,9 @@ class OrderForm extends StatelessWidget { ...@@ -1537,6 +1828,9 @@ class OrderForm extends StatelessWidget {
TextInputType.number, TextInputType.number,
true, true,
null, null,
null,
null,
TextInputAction.next
), ),
), ),
// const SizedBox(width: 8.0), // const SizedBox(width: 8.0),
...@@ -1575,6 +1869,9 @@ class OrderForm extends StatelessWidget { ...@@ -1575,6 +1869,9 @@ class OrderForm extends StatelessWidget {
TextInputType.text, TextInputType.text,
true, true,
FilteringTextInputFormatter.digitsOnly, FilteringTextInputFormatter.digitsOnly,
null,
null,
TextInputAction.none
), ),
textControllerWidget( textControllerWidget(
context, context,
...@@ -1584,6 +1881,9 @@ class OrderForm extends StatelessWidget { ...@@ -1584,6 +1881,9 @@ class OrderForm extends StatelessWidget {
TextInputType.text, TextInputType.text,
true, true,
FilteringTextInputFormatter.digitsOnly, FilteringTextInputFormatter.digitsOnly,
null,
null,
TextInputAction.none
), ),
textControllerWidget( textControllerWidget(
context, context,
...@@ -1593,6 +1893,9 @@ class OrderForm extends StatelessWidget { ...@@ -1593,6 +1893,9 @@ class OrderForm extends StatelessWidget {
TextInputType.text, TextInputType.text,
true, true,
FilteringTextInputFormatter.digitsOnly, FilteringTextInputFormatter.digitsOnly,
null,
null,
TextInputAction.none
), ),
textControllerWidget( textControllerWidget(
context, context,
...@@ -1602,6 +1905,9 @@ class OrderForm extends StatelessWidget { ...@@ -1602,6 +1905,9 @@ class OrderForm extends StatelessWidget {
TextInputType.text, TextInputType.text,
true, true,
FilteringTextInputFormatter.digitsOnly, FilteringTextInputFormatter.digitsOnly,
null,
null,
TextInputAction.none
), ),
textControllerWidget( textControllerWidget(
context, context,
...@@ -1611,6 +1917,9 @@ class OrderForm extends StatelessWidget { ...@@ -1611,6 +1917,9 @@ class OrderForm extends StatelessWidget {
TextInputType.text, TextInputType.text,
true, true,
FilteringTextInputFormatter.digitsOnly, FilteringTextInputFormatter.digitsOnly,
null,
null,
TextInputAction.none
), ),
textControllerWidget( textControllerWidget(
context, context,
...@@ -1618,8 +1927,11 @@ class OrderForm extends StatelessWidget { ...@@ -1618,8 +1927,11 @@ class OrderForm extends StatelessWidget {
"Note", "Note",
(p0) {}, (p0) {},
TextInputType.text, TextInputType.text,
true, false,
FilteringTextInputFormatter.digitsOnly, null,
focusNode,
null,
TextInputAction.done
), ),
], ],
), ),
......
...@@ -17,6 +17,7 @@ import '../../Utils/dropdownTheme.dart'; ...@@ -17,6 +17,7 @@ import '../../Utils/dropdownTheme.dart';
class AddpaymentScreen extends StatefulWidget { class AddpaymentScreen extends StatefulWidget {
final pageTitleName; final pageTitleName;
final mode; final mode;
const AddpaymentScreen({super.key, this.pageTitleName, this.mode}); const AddpaymentScreen({super.key, this.pageTitleName, this.mode});
@override @override
...@@ -26,21 +27,18 @@ class AddpaymentScreen extends StatefulWidget { ...@@ -26,21 +27,18 @@ class AddpaymentScreen extends StatefulWidget {
class _AddpaymentScreenState extends State<AddpaymentScreen> { class _AddpaymentScreenState extends State<AddpaymentScreen> {
Timer? _debounce; Timer? _debounce;
FocusNode focusNode = FocusNode(); FocusNode focusNode = FocusNode();
List<FocusNode> focusNodes = List.generate(5, (index) => FocusNode());
Dropdowntheme ddtheme = Dropdowntheme(); Dropdowntheme ddtheme = Dropdowntheme();
String? selectedValue; String? selectedValue;
final TextEditingController textEditingController = TextEditingController(); final TextEditingController textEditingController = TextEditingController();
@override @override
void initState() { void initState() {
// TODO: implement initState // TODO: implement initState
super.initState(); super.initState();
WidgetsBinding.instance.addPostFrameCallback((timeStamp) { WidgetsBinding.instance.addPostFrameCallback((timeStamp) {
var provider = Provider.of<Addpaymentprovider>( var provider = Provider.of<Addpaymentprovider>(context, listen: false);
context,
listen: false,
);
if (provider.dateNow == null) { if (provider.dateNow == null) {
provider.setDate(DateTime.now()); provider.setDate(DateTime.now());
} }
...@@ -56,6 +54,7 @@ class _AddpaymentScreenState extends State<AddpaymentScreen> { ...@@ -56,6 +54,7 @@ class _AddpaymentScreenState extends State<AddpaymentScreen> {
@override @override
void dispose() { void dispose() {
focusNodes.map((e)=>e.dispose());
super.dispose(); super.dispose();
} }
...@@ -68,12 +67,16 @@ class _AddpaymentScreenState extends State<AddpaymentScreen> { ...@@ -68,12 +67,16 @@ class _AddpaymentScreenState extends State<AddpaymentScreen> {
Widget build(BuildContext context) { Widget build(BuildContext context) {
return Consumer<Addpaymentprovider>( return Consumer<Addpaymentprovider>(
builder: (context, provider, child) { builder: (context, provider, child) {
return WillPopScope( return WillPopScope(
child: Scaffold( child: Scaffold(
resizeToAvoidBottomInset: true, resizeToAvoidBottomInset: true,
backgroundColor: AppColors.white, backgroundColor: AppColors.white,
appBar: appbar2(context, "${widget.pageTitleName}",provider.resetForm,SizedBox(width: 0,)), appBar: appbar2(
context,
"${widget.pageTitleName}",
provider.resetForm,
SizedBox(width: 0),
),
body: Container( body: Container(
padding: EdgeInsets.symmetric(horizontal: 10), padding: EdgeInsets.symmetric(horizontal: 10),
decoration: BoxDecoration( decoration: BoxDecoration(
...@@ -84,7 +87,6 @@ class _AddpaymentScreenState extends State<AddpaymentScreen> { ...@@ -84,7 +87,6 @@ class _AddpaymentScreenState extends State<AddpaymentScreen> {
child: Column( child: Column(
crossAxisAlignment: CrossAxisAlignment.start, crossAxisAlignment: CrossAxisAlignment.start,
children: [ children: [
TextWidget(context, "Account"), TextWidget(context, "Account"),
Container( Container(
alignment: Alignment.center, alignment: Alignment.center,
...@@ -100,17 +102,18 @@ class _AddpaymentScreenState extends State<AddpaymentScreen> { ...@@ -100,17 +102,18 @@ class _AddpaymentScreenState extends State<AddpaymentScreen> {
}, },
controller: provider.dropDownSearchController, controller: provider.dropDownSearchController,
onChanged: (value) async { onChanged: (value) async {
Future.delayed(Duration(milliseconds: 100),() async { Future.delayed(
await provider.ordersAddPaymentSelectAccountAPIFunction( Duration(milliseconds: 100),
() async {
await provider
.ordersAddPaymentSelectAccountAPIFunction(
context, context,
widget.mode, widget.mode,
provider.selectedAccountID, provider.selectedAccountID,
value, value,
); );
},); },
);
}, },
decoration: InputDecoration( decoration: InputDecoration(
enabledBorder: InputBorder.none, enabledBorder: InputBorder.none,
...@@ -145,7 +148,8 @@ class _AddpaymentScreenState extends State<AddpaymentScreen> { ...@@ -145,7 +148,8 @@ class _AddpaymentScreenState extends State<AddpaymentScreen> {
), ),
), ),
if(provider.accountList.isNotEmpty && focusNode.hasFocus)...[ if (provider.accountList.isNotEmpty &&
focusNode.hasFocus) ...[
Card( Card(
margin: EdgeInsets.symmetric(horizontal: 0), margin: EdgeInsets.symmetric(horizontal: 0),
child: Container( child: Container(
...@@ -153,7 +157,6 @@ class _AddpaymentScreenState extends State<AddpaymentScreen> { ...@@ -153,7 +157,6 @@ class _AddpaymentScreenState extends State<AddpaymentScreen> {
height: 150, height: 150,
decoration: BoxDecoration( decoration: BoxDecoration(
borderRadius: BorderRadius.circular(16), borderRadius: BorderRadius.circular(16),
), ),
child: Scrollbar( child: Scrollbar(
thickness: 2.5, thickness: 2.5,
...@@ -165,31 +168,50 @@ class _AddpaymentScreenState extends State<AddpaymentScreen> { ...@@ -165,31 +168,50 @@ class _AddpaymentScreenState extends State<AddpaymentScreen> {
physics: AlwaysScrollableScrollPhysics(), physics: AlwaysScrollableScrollPhysics(),
itemBuilder: (context, index) { itemBuilder: (context, index) {
return InkResponse( return InkResponse(
onTap: () async{ onTap: () async {
if (provider.accountList.isNotEmpty) { if (provider.accountList.isNotEmpty) {
provider.selectedAccountList = provider.accountList[index]; provider.selectedAccountList =
provider.accountList[index];
print("Selected Complaint Type: ${provider.accountList[index].text}, ID: ${provider.accountList[index].id}"); print(
provider.selectedAccountID = provider.accountList[index].id!; "Selected Complaint Type: ${provider.accountList[index].text}, ID: ${provider.accountList[index].id}",
provider.selectedAccountName = provider.accountList[index].text!; );
print("hfjkshfg" + provider.selectedAccountID.toString()); provider.selectedAccountID =
provider.dropDownSearchController.text = provider.accountList[index].text!; provider.accountList[index].id!;
provider.selectedAccountName =
provider.accountList[index].text!;
print(
"hfjkshfg" +
provider.selectedAccountID
.toString(),
);
provider.dropDownSearchController.text =
provider.accountList[index].text!;
} }
provider.ordersAddPaymentSelectOrderAPIFunction(context, provider.selectedAccountID); provider
.ordersAddPaymentSelectOrderAPIFunction(
context,
provider.selectedAccountID,
);
provider.accountList = []; provider.accountList = [];
}, },
child: SizedBox( child: SizedBox(
height: 45, height: 45,
child: Align( child: Align(
alignment: Alignment.centerLeft, alignment: Alignment.centerLeft,
child: Text(provider.accountList[index].text!)))); child: Text(
},), provider.accountList[index].text!,
),
),
),
);
},
),
),
), ),
), ),
)
], ],
// DropdownButtonHideUnderline( // DropdownButtonHideUnderline(
// child: Row( // child: Row(
// children: [ // children: [
...@@ -481,9 +503,6 @@ class _AddpaymentScreenState extends State<AddpaymentScreen> { ...@@ -481,9 +503,6 @@ class _AddpaymentScreenState extends State<AddpaymentScreen> {
// ], // ],
// ), // ),
// ), // ),
errorWidget(context, provider.selectAccountError), errorWidget(context, provider.selectAccountError),
textControllerWidget( textControllerWidget(
...@@ -491,11 +510,17 @@ class _AddpaymentScreenState extends State<AddpaymentScreen> { ...@@ -491,11 +510,17 @@ class _AddpaymentScreenState extends State<AddpaymentScreen> {
provider.amountController, provider.amountController,
"Amount", "Amount",
provider.onChangeAmount, provider.onChangeAmount,
TextInputType.number,false,FilteringTextInputFormatter.digitsOnly TextInputType.number,
false,
FilteringTextInputFormatter.digitsOnly,
focusNodes[0],
null,
TextInputAction.next
), ),
errorWidget(context, provider.amountError), errorWidget(context, provider.amountError),
///Addorderbutton ///Addorderbutton
if(provider.selectedAccountID!.isNotEmpty)...[ if (provider.selectedAccountID!.isNotEmpty) ...[
InkResponse( InkResponse(
onTap: () { onTap: () {
// if (provider.selectedOrderIds.length < provider.orderList.length) { // if (provider.selectedOrderIds.length < provider.orderList.length) {
...@@ -531,76 +556,116 @@ class _AddpaymentScreenState extends State<AddpaymentScreen> { ...@@ -531,76 +556,116 @@ class _AddpaymentScreenState extends State<AddpaymentScreen> {
), ),
), ),
), ),
if(provider.orderAmountControllers.length>0)...[ if (provider.orderAmountControllers.length > 0) ...[
Row( Row(
children: [ children: [
Expanded( Expanded(
child: ListView.builder( child: ListView.builder(
itemCount: provider.orderAmountControllers.length, itemCount:
provider.orderAmountControllers.length,
physics: NeverScrollableScrollPhysics(), physics: NeverScrollableScrollPhysics(),
shrinkWrap: true, shrinkWrap: true,
itemBuilder: (context, index) { itemBuilder: (context, index) {
return Row( return Row(
children: [ children: [
Expanded( Expanded(
flex:3, flex: 3,
child: SizedBox( child: SizedBox(
child: Column( child: Column(
crossAxisAlignment: CrossAxisAlignment.start, crossAxisAlignment:
CrossAxisAlignment.start,
children: [ children: [
TextWidget(context, "Order"), TextWidget(context, "Order"),
Row( Row(
children: [ children: [
Expanded( Expanded(
child: DropdownButtonHideUnderline( child: DropdownButtonHideUnderline(
child: DropdownButton2<OrderList>( child: DropdownButton2<
OrderList
>(
isExpanded: true, isExpanded: true,
hint: Text( hint: Text(
'Select Account Type', 'Select Account Type',
style: TextStyle(fontSize: 14), style: TextStyle(
overflow: TextOverflow.ellipsis, fontSize: 14,
),
overflow:
TextOverflow
.ellipsis,
), ),
items: items:
provider.orderList provider.orderList
.map( .map(
(ord) => (
DropdownMenuItem<OrderList>( ord,
) => DropdownMenuItem<
OrderList
>(
value: ord, value: ord,
child: Text( child: Text(
"(Order Number: ${ord.orderNumber}) + (Order Amount: ${ord.totalAmount}) + (Balance Amount: ${ord.balanceAmount}) + (Date Time: ${ord.createdDatetime})" ?? '', "(Order Number: ${ord.orderNumber}) + (Order Amount: ${ord.totalAmount}) + (Balance Amount: ${ord.balanceAmount}) + (Date Time: ${ord.createdDatetime})" ??
'',
style: const TextStyle( style: const TextStyle(
fontSize: 14, fontSize:
14,
), ),
overflow: TextOverflow.ellipsis, overflow:
TextOverflow
.ellipsis,
), ),
), ),
) )
.toList(), .toList(),
// value: provider.selectedOrderLists, // value: provider.selectedOrderLists,
value: provider.orderList.firstWhere( value: provider
(product) => product.orderId == provider.selectedOrderIds[index], .orderList
), .firstWhere(
onChanged: (OrderList? value) { (product) =>
product
.orderId ==
provider
.selectedOrderIds[index],
),
onChanged: (
OrderList? value,
) {
if (value != null) { if (value != null) {
if (provider.orderList.isNotEmpty) { if (provider
provider.selectedOrderLists = value; .orderList
.isNotEmpty) {
provider.selectedOrderLists =
value;
print( print(
"Selected Complaint Type: ${value.orderId}, ID: ${value.orderNumber}", "Selected Complaint Type: ${value.orderId}, ID: ${value.orderNumber}",
); );
provider.updateSelectedOrderId(index,provider.selectedOrderLists); provider.updateSelectedOrderId(
index,
provider
.selectedOrderLists,
);
// provider.selectedOrderIds = value!.orderId!; // provider.selectedOrderIds = value!.orderId!;
// provider.selectedOrderNumbers = value!.orderNumber!; // provider.selectedOrderNumbers = value!.orderNumber!;
print( print(
"hfjkshfg" + "hfjkshfg" +
provider.selectedOrderIds.toString(), provider
.selectedOrderIds
.toString(),
); );
} }
} }
}, },
buttonStyleData: ddtheme.buttonStyleData, buttonStyleData:
iconStyleData: ddtheme.iconStyleData, ddtheme
menuItemStyleData: ddtheme.menuItemStyleData, .buttonStyleData,
dropdownStyleData: ddtheme.dropdownStyleData, iconStyleData:
ddtheme
.iconStyleData,
menuItemStyleData:
ddtheme
.menuItemStyleData,
dropdownStyleData:
ddtheme
.dropdownStyleData,
), ),
), ),
), ),
...@@ -614,9 +679,18 @@ class _AddpaymentScreenState extends State<AddpaymentScreen> { ...@@ -614,9 +679,18 @@ class _AddpaymentScreenState extends State<AddpaymentScreen> {
SizedBox(width: 10), SizedBox(width: 10),
Expanded( Expanded(
flex: 2, flex: 2,
child: textControllerWidget(context, provider.orderAmountControllers[index], "Enter Order Amount", (p0) { child: textControllerWidget(
context,
},TextInputType.number,false,FilteringTextInputFormatter.digitsOnly), provider
.orderAmountControllers[index],
"Enter Order Amount",
(p0) {},
TextInputType.number,
false,
FilteringTextInputFormatter
.digitsOnly,
null,null,TextInputAction.next
),
), ),
// SizedBox(width: 10), // SizedBox(width: 10),
// //
...@@ -633,7 +707,6 @@ class _AddpaymentScreenState extends State<AddpaymentScreen> { ...@@ -633,7 +707,6 @@ class _AddpaymentScreenState extends State<AddpaymentScreen> {
), ),
], ],
), ),
], ],
], ],
...@@ -642,7 +715,12 @@ class _AddpaymentScreenState extends State<AddpaymentScreen> { ...@@ -642,7 +715,12 @@ class _AddpaymentScreenState extends State<AddpaymentScreen> {
provider.orderAdjustedAmountController, provider.orderAdjustedAmountController,
"Order Adjusted Amount", "Order Adjusted Amount",
provider.onChangeorderAdjustedAmount, provider.onChangeorderAdjustedAmount,
TextInputType.number,false,FilteringTextInputFormatter.digitsOnly TextInputType.number,
false,
FilteringTextInputFormatter.digitsOnly,
focusNodes[1],
null,
TextInputAction.done
), ),
errorWidget(context, provider.orderAdjustedAmountError), errorWidget(context, provider.orderAdjustedAmountError),
TextWidget(context, "Description"), TextWidget(context, "Description"),
...@@ -698,19 +776,16 @@ class _AddpaymentScreenState extends State<AddpaymentScreen> { ...@@ -698,19 +776,16 @@ class _AddpaymentScreenState extends State<AddpaymentScreen> {
), ),
errorWidget(context, provider.descriptionError), errorWidget(context, provider.descriptionError),
TextWidget(context, "Payment Received Date"), TextWidget(context, "Payment Received Date"),
GestureDetector( GestureDetector(
onTap: () { onTap: () {
provider.showDatePickerDialog(context); provider.showDatePickerDialog(context);
}, },
child: Row( child: Row(
crossAxisAlignment: CrossAxisAlignment.center, crossAxisAlignment: CrossAxisAlignment.center,
children: [ children: [
Expanded( Expanded(
child: Container( child: Container(
height: 50, height: 50,
alignment: Alignment.center, alignment: Alignment.center,
decoration: BoxDecoration( decoration: BoxDecoration(
...@@ -718,16 +793,20 @@ class _AddpaymentScreenState extends State<AddpaymentScreen> { ...@@ -718,16 +793,20 @@ class _AddpaymentScreenState extends State<AddpaymentScreen> {
borderRadius: BorderRadius.circular(14), borderRadius: BorderRadius.circular(14),
), ),
child: Padding( child: Padding(
padding: const EdgeInsets.fromLTRB(10.0, 0.0, 10, 0), padding: const EdgeInsets.fromLTRB(
10.0,
0.0,
10,
0,
),
child: TextFormField( child: TextFormField(
controller: provider.paymentReceivedDateController, controller:
provider.paymentReceivedDateController,
keyboardType: TextInputType.text, keyboardType: TextInputType.text,
enabled: false, enabled: false,
maxLines: 1, maxLines: 1,
readOnly: true, readOnly: true,
onChanged: (value) { onChanged: (value) {},
},
decoration: InputDecoration( decoration: InputDecoration(
hintText: "Enter Date", hintText: "Enter Date",
hintStyle: TextStyle( hintStyle: TextStyle(
...@@ -802,16 +881,20 @@ class _AddpaymentScreenState extends State<AddpaymentScreen> { ...@@ -802,16 +881,20 @@ class _AddpaymentScreenState extends State<AddpaymentScreen> {
), ),
errorWidget(context, provider.paymentModeError), errorWidget(context, provider.paymentModeError),
textControllerWidget( textControllerWidget(
context, context,
provider.paymentRefController, provider.paymentRefController,
"Payment Reference No. / Cheque No. / UTR No. tf", "Payment Reference No. / Cheque No. / UTR No. tf",
provider.onChangepaymentRef,TextInputType.text,false,null provider.onChangepaymentRef,
TextInputType.text,
false,
null,
focusNodes[2],
null,
TextInputAction.done
), ),
errorWidget(context, provider.paymentRefError), errorWidget(context, provider.paymentRefError),
InkResponse( InkResponse(
onTap: () { onTap: () {
_showAttachmentSheet(context); _showAttachmentSheet(context);
...@@ -839,27 +922,36 @@ class _AddpaymentScreenState extends State<AddpaymentScreen> { ...@@ -839,27 +922,36 @@ class _AddpaymentScreenState extends State<AddpaymentScreen> {
), ),
), ),
), ),
if(provider.imagePicked==1 && provider.imagePath!=null)...[ if (provider.imagePicked == 1 &&
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(
"${provider.imagePath}",
style: TextStyle(
color: AppColors.semi_black, color: AppColors.semi_black,
fontSize: 11, fontSize: 11,
fontWeight: FontWeight.w600 fontWeight: FontWeight.w600,
),), ),
),
InkResponse( 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,
),
),
], ],
), ),
) ),
], ],
], ],
), ),
...@@ -871,12 +963,18 @@ class _AddpaymentScreenState extends State<AddpaymentScreen> { ...@@ -871,12 +963,18 @@ class _AddpaymentScreenState extends State<AddpaymentScreen> {
onTap: () { onTap: () {
provider.selectedOrders = provider.getFormData(); provider.selectedOrders = provider.getFormData();
print(provider.selectedOrders); print(provider.selectedOrders);
provider.ordersAddPaymentAPISubmitFunction(context, provider.selectedAccountID, provider.selectedDescription, provider.selectedOrders, provider.selectedPaymentMode); provider.ordersAddPaymentAPISubmitFunction(
context,
provider.selectedAccountID,
provider.selectedDescription,
provider.selectedOrders,
provider.selectedPaymentMode,
);
}, },
child: Container( child: Container(
height: 45, height: 45,
alignment: Alignment.center, alignment: Alignment.center,
margin: EdgeInsets.symmetric(horizontal: 10,vertical: 15), margin: EdgeInsets.symmetric(horizontal: 10, vertical: 15),
padding: EdgeInsets.symmetric(horizontal: 10, vertical: 5), padding: EdgeInsets.symmetric(horizontal: 10, vertical: 5),
decoration: BoxDecoration( decoration: BoxDecoration(
color: AppColors.app_blue, color: AppColors.app_blue,
...@@ -902,7 +1000,6 @@ class _AddpaymentScreenState extends State<AddpaymentScreen> { ...@@ -902,7 +1000,6 @@ class _AddpaymentScreenState extends State<AddpaymentScreen> {
); );
} }
Future<void> _showAttachmentSheet(BuildContext context) { Future<void> _showAttachmentSheet(BuildContext context) {
return showModalBottomSheet( return showModalBottomSheet(
useSafeArea: true, useSafeArea: true,
...@@ -985,7 +1082,3 @@ class _AddpaymentScreenState extends State<AddpaymentScreen> { ...@@ -985,7 +1082,3 @@ class _AddpaymentScreenState extends State<AddpaymentScreen> {
); );
} }
} }
...@@ -17,20 +17,17 @@ class AddtpcagentScreen extends StatefulWidget { ...@@ -17,20 +17,17 @@ class AddtpcagentScreen extends StatefulWidget {
class _AddtpcagentScreenState extends State<AddtpcagentScreen> { class _AddtpcagentScreenState extends State<AddtpcagentScreen> {
Dropdowntheme ddtheme = Dropdowntheme(); Dropdowntheme ddtheme = Dropdowntheme();
List<FocusNode> focusNodes = List.generate(10, (index) => FocusNode());
@override @override
void initState() { void initState() {
// TODO: implement initState // TODO: implement initState
super.initState(); super.initState();
WidgetsBinding.instance.addPostFrameCallback((timeStamp) { WidgetsBinding.instance.addPostFrameCallback((timeStamp) {
var provider = Provider.of<Tpcagentsprovider>( var provider = Provider.of<Tpcagentsprovider>(context, listen: false);
context,
listen: false,
);
}); });
} }
@override @override
Widget build(BuildContext context) { Widget build(BuildContext context) {
return Consumer<Tpcagentsprovider>( return Consumer<Tpcagentsprovider>(
...@@ -38,8 +35,12 @@ class _AddtpcagentScreenState extends State<AddtpcagentScreen> { ...@@ -38,8 +35,12 @@ class _AddtpcagentScreenState extends State<AddtpcagentScreen> {
return WillPopScope( return WillPopScope(
child: Scaffold( child: Scaffold(
resizeToAvoidBottomInset: true, resizeToAvoidBottomInset: true,
appBar: appbar2(context, "Add TPC Agent", provider.resetAll, appBar: appbar2(
SizedBox(width: 0,),), context,
"Add TPC Agent",
provider.resetAll,
SizedBox(width: 0),
),
backgroundColor: AppColors.scaffold_bg_color, backgroundColor: AppColors.scaffold_bg_color,
body: Container( body: Container(
child: SingleChildScrollView( child: SingleChildScrollView(
...@@ -50,22 +51,47 @@ class _AddtpcagentScreenState extends State<AddtpcagentScreen> { ...@@ -50,22 +51,47 @@ class _AddtpcagentScreenState extends State<AddtpcagentScreen> {
color: Colors.white, color: Colors.white,
borderRadius: BorderRadius.circular(16), borderRadius: BorderRadius.circular(16),
), ),
margin: EdgeInsets.symmetric(vertical: 10, horizontal: 10), margin: EdgeInsets.symmetric(
padding: EdgeInsets.symmetric(vertical: 10, horizontal: 10), vertical: 10,
horizontal: 10,
),
padding: EdgeInsets.symmetric(
vertical: 10,
horizontal: 10,
),
child: Column( child: Column(
crossAxisAlignment: CrossAxisAlignment.start, crossAxisAlignment: CrossAxisAlignment.start,
mainAxisSize: MainAxisSize.min, mainAxisSize: MainAxisSize.min,
children: [ children: [
textControllerWidget(
context,
textControllerWidget(context,provider.tpcNameController,"Enter Name",provider.onChangetpcName,TextInputType.text,false,null), provider.tpcNameController,
if(provider.tpcNameError!=null)...[ "Enter Name",
errorWidget(context, provider.tpcNameError) provider.onChangetpcName,
TextInputType.text,
false,
null,
focusNodes[0],
focusNodes[1],
TextInputAction.next
),
if (provider.tpcNameError != null) ...[
errorWidget(context, provider.tpcNameError),
], ],
textControllerWidget(context,provider.tpcMobileNumberController,"Enter Mobile Number",provider.onChangetpcMobileNumber,TextInputType.number,false,FilteringTextInputFormatter.digitsOnly), textControllerWidget(
if(provider.tpcMobileNumberError!=null)...[ context,
errorWidget(context, provider.tpcMobileNumberError) provider.tpcMobileNumberController,
"Enter Mobile Number",
provider.onChangetpcMobileNumber,
TextInputType.number,
false,
FilteringTextInputFormatter.digitsOnly,
focusNodes[1],
focusNodes[2],TextInputAction.next,10
),
if (provider.tpcMobileNumberError != null) ...[
errorWidget(context, provider.tpcMobileNumberError),
], ],
InkResponse( InkResponse(
...@@ -95,53 +121,115 @@ class _AddtpcagentScreenState extends State<AddtpcagentScreen> { ...@@ -95,53 +121,115 @@ class _AddtpcagentScreenState extends State<AddtpcagentScreen> {
), ),
), ),
), ),
if(provider.imagePicked==1 && provider.imagePath!=null)...[ if (provider.imagePicked == 1 &&
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(
"${provider.imagePath}",
style: TextStyle(
color: AppColors.semi_black, color: AppColors.semi_black,
fontSize: 11, fontSize: 11,
fontWeight: FontWeight.w600 fontWeight: FontWeight.w600,
),), ),
),
InkResponse( 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,
),
),
], ],
), ),
) ),
], ],
textControllerWidget(context,provider.tpcBankNameController,"Enter Bank Name",provider.onChangetpcBankName,TextInputType.text,false,null), textControllerWidget(
if(provider.tpcBankNameError!=null)...[ context,
errorWidget(context, provider.tpcBankNameError) provider.tpcBankNameController,
"Enter Bank Name",
provider.onChangetpcBankName,
TextInputType.text,
false,
null,
focusNodes[2],focusNodes[3],TextInputAction.next
),
if (provider.tpcBankNameError != null) ...[
errorWidget(context, provider.tpcBankNameError),
], ],
textControllerWidget(
textControllerWidget(context,provider.tpcBankBeneficiaryNameController,"Enter Bank Beneficiary Name",provider.onChangetpcBankBeneficiaryName,TextInputType.text,false,null), context,
if(provider.tpcBankBeneficiaryNameError!=null)...[ provider.tpcBankBeneficiaryNameController,
errorWidget(context, provider.tpcBankBeneficiaryNameError) "Enter Bank Beneficiary Name",
provider.onChangetpcBankBeneficiaryName,
TextInputType.text,
false,
null,
focusNodes[3],focusNodes[4],TextInputAction.next
),
if (provider.tpcBankBeneficiaryNameError != null) ...[
errorWidget(
context,
provider.tpcBankBeneficiaryNameError,
),
], ],
textControllerWidget(context,provider.tpcBankAccountNumberController,"Enter Bank Account Number",provider.onChangetpcBankAccountNumber,TextInputType.number,false,FilteringTextInputFormatter.digitsOnly), textControllerWidget(
if(provider.tpcBankAccountNumberError!=null)...[ context,
errorWidget(context, provider.tpcBankAccountNumberError) provider.tpcBankAccountNumberController,
"Enter Bank Account Number",
provider.onChangetpcBankAccountNumber,
TextInputType.number,
false,
FilteringTextInputFormatter.digitsOnly,
focusNodes[4],focusNodes[5],TextInputAction.next
),
if (provider.tpcBankAccountNumberError != null) ...[
errorWidget(
context,
provider.tpcBankAccountNumberError,
),
], ],
textControllerWidget(context,provider.tpcBankIFSCController,"Enter Bank IFSC",provider.onChangetpcBankIFSC,TextInputType.text,false,null), textControllerWidget(
if(provider.tpcBankIFSCError!=null)...[ context,
errorWidget(context, provider.tpcBankIFSCError) provider.tpcBankIFSCController,
"Enter Bank IFSC",
provider.onChangetpcBankIFSC,
TextInputType.text,
false,
null,
focusNodes[5],focusNodes[6],TextInputAction.next
),
if (provider.tpcBankIFSCError != null) ...[
errorWidget(context, provider.tpcBankIFSCError),
], ],
textControllerWidget(context,provider.tpcNoteController,"Enter Description",provider.onChangetpcNote,TextInputType.text,false,null), textControllerWidget(
if(provider.tpcNoteError!=null)...[ context,
errorWidget(context, provider.tpcNoteError) provider.tpcNoteController,
"Enter Description",
provider.onChangetpcNote,
TextInputType.text,
false,
null,
focusNodes[6],focusNodes[7],TextInputAction.next
),
if (provider.tpcNoteError != null) ...[
errorWidget(context, provider.tpcNoteError),
], ],
InkWell( InkWell(
onTap: () { onTap: () {
...@@ -173,17 +261,13 @@ class _AddtpcagentScreenState extends State<AddtpcagentScreen> { ...@@ -173,17 +261,13 @@ class _AddtpcagentScreenState extends State<AddtpcagentScreen> {
], ],
), ),
), ),
], ],
), ),
), ),
), ),
), ),
onWillPop: () { onWillPop: () {
return onBackPressed(context); return onBackPressed(context);
}, },
); );
...@@ -191,8 +275,6 @@ class _AddtpcagentScreenState extends State<AddtpcagentScreen> { ...@@ -191,8 +275,6 @@ class _AddtpcagentScreenState extends State<AddtpcagentScreen> {
); );
} }
Future<void> _showAttachmentSheet(BuildContext context) { Future<void> _showAttachmentSheet(BuildContext context) {
return showModalBottomSheet( return showModalBottomSheet(
useSafeArea: true, useSafeArea: true,
...@@ -207,18 +289,13 @@ class _AddtpcagentScreenState extends State<AddtpcagentScreen> { ...@@ -207,18 +289,13 @@ class _AddtpcagentScreenState extends State<AddtpcagentScreen> {
builder: (context, setState) { builder: (context, setState) {
return SafeArea( return SafeArea(
child: Consumer<Tpcagentsprovider>( child: Consumer<Tpcagentsprovider>(
builder: (context, tcpProvider, child) {
builder: (context,tcpProvider, 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(
...@@ -239,11 +316,11 @@ class _AddtpcagentScreenState extends State<AddtpcagentScreen> { ...@@ -239,11 +316,11 @@ class _AddtpcagentScreenState extends State<AddtpcagentScreen> {
"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);
...@@ -258,8 +335,7 @@ class _AddtpcagentScreenState extends State<AddtpcagentScreen> { ...@@ -258,8 +335,7 @@ class _AddtpcagentScreenState extends State<AddtpcagentScreen> {
InkWell( InkWell(
onTap: () { onTap: () {
Navigator.of(context).pop(false); Navigator.of(context).pop(false);
tcpProvider.imgFromCamera( tcpProvider.imgFromCamera(context);
context);
}, },
child: Container( child: Container(
height: 35, height: 35,
......
...@@ -30,6 +30,8 @@ class Editadjustedorderlist extends StatefulWidget { ...@@ -30,6 +30,8 @@ class Editadjustedorderlist extends StatefulWidget {
class _EditadjustedorderlistState extends State<Editadjustedorderlist> { class _EditadjustedorderlistState extends State<Editadjustedorderlist> {
Dropdowntheme ddtheme = Dropdowntheme(); Dropdowntheme ddtheme = Dropdowntheme();
List<FocusNode> focusNodes = List.generate(3, (index) => FocusNode());
@override @override
void initState() { void initState() {
super.initState(); super.initState();
...@@ -69,6 +71,7 @@ class _EditadjustedorderlistState extends State<Editadjustedorderlist> { ...@@ -69,6 +71,7 @@ class _EditadjustedorderlistState extends State<Editadjustedorderlist> {
@override @override
void dispose() { void dispose() {
focusNodes.map((e)=>e.dispose());
super.dispose(); super.dispose();
} }
...@@ -216,8 +219,14 @@ class _EditadjustedorderlistState extends State<Editadjustedorderlist> { ...@@ -216,8 +219,14 @@ class _EditadjustedorderlistState extends State<Editadjustedorderlist> {
// value: // value:
// editProvider // editProvider
// .selectedPaidList, // .selectedPaidList,
value: editProvider.paidList.firstWhere( value: editProvider
(product) => product.orderId == editProvider.selectedPaidOrderIDs[index], .paidList
.firstWhere(
(product) =>
product
.orderId ==
editProvider
.selectedPaidOrderIDs[index],
), ),
// value:editProvider.paidList.firstWhere( // value:editProvider.paidList.firstWhere(
// ( // (
...@@ -256,10 +265,18 @@ class _EditadjustedorderlistState extends State<Editadjustedorderlist> { ...@@ -256,10 +265,18 @@ class _EditadjustedorderlistState extends State<Editadjustedorderlist> {
} }
} }
}, },
buttonStyleData: ddtheme.buttonStyleData, buttonStyleData:
iconStyleData: ddtheme.iconStyleData, ddtheme
menuItemStyleData: ddtheme.menuItemStyleData, .buttonStyleData,
dropdownStyleData: ddtheme.dropdownStyleData, iconStyleData:
ddtheme
.iconStyleData,
menuItemStyleData:
ddtheme
.menuItemStyleData,
dropdownStyleData:
ddtheme
.dropdownStyleData,
), ),
), ),
), ),
...@@ -282,7 +299,14 @@ class _EditadjustedorderlistState extends State<Editadjustedorderlist> { ...@@ -282,7 +299,14 @@ class _EditadjustedorderlistState extends State<Editadjustedorderlist> {
editProvider editProvider
.editOrderAmountControllers[index], .editOrderAmountControllers[index],
"Enter Order Amount", "Enter Order Amount",
(p0) {},TextInputType.number,false,FilteringTextInputFormatter.digitsOnly (p0) {},
TextInputType.number,
false,
FilteringTextInputFormatter
.digitsOnly,
focusNodes[0],
focusNodes[1],
TextInputAction.next
), ),
), ),
], ],
...@@ -429,10 +453,18 @@ class _EditadjustedorderlistState extends State<Editadjustedorderlist> { ...@@ -429,10 +453,18 @@ class _EditadjustedorderlistState extends State<Editadjustedorderlist> {
} }
} }
}, },
buttonStyleData: ddtheme.buttonStyleData, buttonStyleData:
iconStyleData: ddtheme.iconStyleData, ddtheme
menuItemStyleData: ddtheme.menuItemStyleData, .buttonStyleData,
dropdownStyleData: ddtheme.dropdownStyleData, iconStyleData:
ddtheme
.iconStyleData,
menuItemStyleData:
ddtheme
.menuItemStyleData,
dropdownStyleData:
ddtheme
.dropdownStyleData,
), ),
), ),
), ),
...@@ -455,7 +487,14 @@ class _EditadjustedorderlistState extends State<Editadjustedorderlist> { ...@@ -455,7 +487,14 @@ class _EditadjustedorderlistState extends State<Editadjustedorderlist> {
editProvider editProvider
.editOrderAmountControllers2[j], .editOrderAmountControllers2[j],
"Enter Order Amount", "Enter Order Amount",
(p0) {},TextInputType.number,false,FilteringTextInputFormatter.digitsOnly (p0) {},
TextInputType.number,
false,
FilteringTextInputFormatter
.digitsOnly,
null,
null,
TextInputAction.done
), ),
), ),
], ],
...@@ -486,13 +525,22 @@ class _EditadjustedorderlistState extends State<Editadjustedorderlist> { ...@@ -486,13 +525,22 @@ class _EditadjustedorderlistState extends State<Editadjustedorderlist> {
floatingActionButtonLocation: floatingActionButtonLocation:
FloatingActionButtonLocation.centerFloat, FloatingActionButtonLocation.centerFloat,
bottomNavigationBar: InkResponse( bottomNavigationBar: InkResponse(
onTap: editProvider.submitLoading?null:() { onTap:
editProvider.submitLoading
? null
: () {
editProvider.submitLoading = true; editProvider.submitLoading = true;
final updatedData = editProvider.getFormDataUpdate(); final updatedData = editProvider.getFormDataUpdate();
print(updatedData); print(updatedData);
final insertedData = editProvider.getFormData(); final insertedData = editProvider.getFormData();
print(insertedData); print(insertedData);
editProvider.editPaymentDetailsAdjustedOrdersUpdateAPIFunction(context, widget.values["payment_id"], updatedData, insertedData); editProvider
.editPaymentDetailsAdjustedOrdersUpdateAPIFunction(
context,
widget.values["payment_id"],
updatedData,
insertedData,
);
}, },
child: Container( child: Container(
height: 45, height: 45,
...@@ -503,9 +551,14 @@ class _EditadjustedorderlistState extends State<Editadjustedorderlist> { ...@@ -503,9 +551,14 @@ class _EditadjustedorderlistState extends State<Editadjustedorderlist> {
color: AppColors.app_blue, color: AppColors.app_blue,
borderRadius: BorderRadius.circular(15), borderRadius: BorderRadius.circular(15),
), ),
child:editProvider.submitLoading?CircularProgressIndicator.adaptive( child:
valueColor: AlwaysStoppedAnimation(AppColors.app_blue), editProvider.submitLoading
): Text( ? CircularProgressIndicator.adaptive(
valueColor: AlwaysStoppedAnimation(
AppColors.app_blue,
),
)
: Text(
"Submit", "Submit",
style: TextStyle( style: TextStyle(
fontSize: 15, fontSize: 15,
...@@ -524,6 +577,4 @@ class _EditadjustedorderlistState extends State<Editadjustedorderlist> { ...@@ -524,6 +577,4 @@ class _EditadjustedorderlistState extends State<Editadjustedorderlist> {
}, },
); );
} }
} }
...@@ -26,6 +26,7 @@ class Editorderaccountdetails extends StatefulWidget { ...@@ -26,6 +26,7 @@ class Editorderaccountdetails extends StatefulWidget {
class _EditorderaccountdetailsState extends State<Editorderaccountdetails> { class _EditorderaccountdetailsState extends State<Editorderaccountdetails> {
FocusNode focusNode = FocusNode(); FocusNode focusNode = FocusNode();
FocusNode focusNodetpc = FocusNode(); FocusNode focusNodetpc = FocusNode();
List<FocusNode> focusNodes = List.generate(5, (index) => FocusNode(),);
Dropdowntheme ddtheme = Dropdowntheme(); Dropdowntheme ddtheme = Dropdowntheme();
@override @override
void initState() { void initState() {
...@@ -39,6 +40,7 @@ class _EditorderaccountdetailsState extends State<Editorderaccountdetails> { ...@@ -39,6 +40,7 @@ class _EditorderaccountdetailsState extends State<Editorderaccountdetails> {
@override @override
void dispose() { void dispose() {
focusNodes.map((e)=>e.dispose());
super.dispose(); super.dispose();
} }
...@@ -237,6 +239,7 @@ class _EditorderaccountdetailsState extends State<Editorderaccountdetails> { ...@@ -237,6 +239,7 @@ class _EditorderaccountdetailsState extends State<Editorderaccountdetails> {
TextInputType.text, TextInputType.text,
false, false,
null, null,
focusNodes[0],focusNodes[1],TextInputAction.next
), ),
errorWidget(context, provider.dispatchAddressError), errorWidget(context, provider.dispatchAddressError),
...@@ -248,6 +251,7 @@ class _EditorderaccountdetailsState extends State<Editorderaccountdetails> { ...@@ -248,6 +251,7 @@ class _EditorderaccountdetailsState extends State<Editorderaccountdetails> {
TextInputType.number, TextInputType.number,
false, false,
FilteringTextInputFormatter.digitsOnly, FilteringTextInputFormatter.digitsOnly,
focusNodes[1],focusNodes[2],TextInputAction.next
), ),
errorWidget(context, provider.dispatchPincodeError), errorWidget(context, provider.dispatchPincodeError),
textControllerWidget( textControllerWidget(
...@@ -258,6 +262,7 @@ class _EditorderaccountdetailsState extends State<Editorderaccountdetails> { ...@@ -258,6 +262,7 @@ class _EditorderaccountdetailsState extends State<Editorderaccountdetails> {
TextInputType.text, TextInputType.text,
false, false,
null, null,
focusNodes[2],focusNodes[3],TextInputAction.done
), ),
errorWidget(context, provider.noteError), errorWidget(context, provider.noteError),
......
...@@ -17,30 +17,34 @@ class Editpaymentdetailsbymode extends StatefulWidget { ...@@ -17,30 +17,34 @@ class Editpaymentdetailsbymode extends StatefulWidget {
final mode; final mode;
final pageTitleName; final pageTitleName;
final values; final values;
const Editpaymentdetailsbymode({super.key, this.mode, this.pageTitleName, this.values});
const Editpaymentdetailsbymode({
super.key,
this.mode,
this.pageTitleName,
this.values,
});
@override @override
State<Editpaymentdetailsbymode> createState() => _EditpaymentdetailsbymodeState(); State<Editpaymentdetailsbymode> createState() =>
_EditpaymentdetailsbymodeState();
} }
class _EditpaymentdetailsbymodeState extends State<Editpaymentdetailsbymode> { class _EditpaymentdetailsbymodeState extends State<Editpaymentdetailsbymode> {
Timer? _debounce; Timer? _debounce;
FocusNode focusNode = FocusNode(); FocusNode focusNode = FocusNode();
String? selectedValue; String? selectedValue;
final TextEditingController textEditingController = TextEditingController(); final TextEditingController textEditingController = TextEditingController();
List<FocusNode> focusNodes = List.generate(5, (index) => FocusNode());
Dropdowntheme ddtheme = Dropdowntheme(); Dropdowntheme ddtheme = Dropdowntheme();
@override @override
void initState() { void initState() {
// TODO: implement initState // TODO: implement initState
super.initState(); super.initState();
WidgetsBinding.instance.addPostFrameCallback((timeStamp) { WidgetsBinding.instance.addPostFrameCallback((timeStamp) {
var provider = Provider.of<Addpaymentprovider>( var provider = Provider.of<Addpaymentprovider>(context, listen: false);
context,
listen: false,
);
if (provider.dateNow == null) { if (provider.dateNow == null) {
provider.setDate(DateTime.now()); provider.setDate(DateTime.now());
} }
...@@ -60,13 +64,14 @@ class _EditpaymentdetailsbymodeState extends State<Editpaymentdetailsbymode> { ...@@ -60,13 +64,14 @@ class _EditpaymentdetailsbymodeState extends State<Editpaymentdetailsbymode> {
provider.amountController.text = widget.values['amount']; provider.amountController.text = widget.values['amount'];
provider.selectedPaymentMode = widget.values['payment_mode']; provider.selectedPaymentMode = widget.values['payment_mode'];
provider.paymentRefController.text = widget.values['pay_ref']; provider.paymentRefController.text = widget.values['pay_ref'];
provider.paymentReceivedDateController.text = widget.values['pay_received_date']; provider.paymentReceivedDateController.text =
widget.values['pay_received_date'];
}); });
} }
@override @override
void dispose() { void dispose() {
focusNodes.map((e) => e.dispose());
super.dispose(); super.dispose();
} }
...@@ -77,14 +82,18 @@ class _EditpaymentdetailsbymodeState extends State<Editpaymentdetailsbymode> { ...@@ -77,14 +82,18 @@ class _EditpaymentdetailsbymodeState extends State<Editpaymentdetailsbymode> {
@override @override
Widget build(BuildContext context) { Widget build(BuildContext context) {
return Consumer2<Addpaymentprovider,Editpaymentprovider>( return Consumer2<Addpaymentprovider, Editpaymentprovider>(
builder: (context, provider,editProvider, child) { builder: (context, provider, editProvider, child) {
return WillPopScope( return WillPopScope(
child: Scaffold( child: Scaffold(
resizeToAvoidBottomInset: true, resizeToAvoidBottomInset: true,
backgroundColor: AppColors.white, backgroundColor: AppColors.white,
appBar: appbar2(context, "${widget.pageTitleName}",provider.resetForm,SizedBox(width: 0,)), appBar: appbar2(
context,
"${widget.pageTitleName}",
provider.resetForm,
SizedBox(width: 0),
),
body: Container( body: Container(
padding: EdgeInsets.symmetric(horizontal: 10), padding: EdgeInsets.symmetric(horizontal: 10),
decoration: BoxDecoration( decoration: BoxDecoration(
...@@ -152,7 +161,12 @@ class _EditpaymentdetailsbymodeState extends State<Editpaymentdetailsbymode> { ...@@ -152,7 +161,12 @@ class _EditpaymentdetailsbymodeState extends State<Editpaymentdetailsbymode> {
provider.amountController, provider.amountController,
"Amount", "Amount",
provider.onChangeAmount, provider.onChangeAmount,
TextInputType.number,false,FilteringTextInputFormatter.digitsOnly TextInputType.number,
false,
FilteringTextInputFormatter.digitsOnly,
focusNodes[0],
null,
TextInputAction.done
), ),
errorWidget(context, provider.amountError), errorWidget(context, provider.amountError),
...@@ -209,26 +223,29 @@ class _EditpaymentdetailsbymodeState extends State<Editpaymentdetailsbymode> { ...@@ -209,26 +223,29 @@ class _EditpaymentdetailsbymodeState extends State<Editpaymentdetailsbymode> {
), ),
errorWidget(context, provider.paymentModeError), errorWidget(context, provider.paymentModeError),
textControllerWidget( textControllerWidget(
context, context,
provider.paymentRefController, provider.paymentRefController,
"Payment Reference No. / Cheque No. / UTR No. tf", "Payment Reference No. / Cheque No. / UTR No. tf",
provider.onChangepaymentRef,TextInputType.text,false,null provider.onChangepaymentRef,
TextInputType.text,
false,
null,
focusNodes[1],
null,
TextInputAction.done
), ),
errorWidget(context, provider.paymentRefError), errorWidget(context, provider.paymentRefError),
TextWidget(context, "Payment Received Date"), TextWidget(context, "Payment Received Date"),
GestureDetector( GestureDetector(
onTap: () { onTap: () {
provider.showDatePickerDialog(context); provider.showDatePickerDialog(context);
}, },
child: Row( child: Row(
crossAxisAlignment: CrossAxisAlignment.center, crossAxisAlignment: CrossAxisAlignment.center,
children: [ children: [
Expanded( Expanded(
child: Container( child: Container(
height: 50, height: 50,
alignment: Alignment.center, alignment: Alignment.center,
decoration: BoxDecoration( decoration: BoxDecoration(
...@@ -236,16 +253,20 @@ class _EditpaymentdetailsbymodeState extends State<Editpaymentdetailsbymode> { ...@@ -236,16 +253,20 @@ class _EditpaymentdetailsbymodeState extends State<Editpaymentdetailsbymode> {
borderRadius: BorderRadius.circular(14), borderRadius: BorderRadius.circular(14),
), ),
child: Padding( child: Padding(
padding: const EdgeInsets.fromLTRB(10.0, 0.0, 10, 0), padding: const EdgeInsets.fromLTRB(
10.0,
0.0,
10,
0,
),
child: TextFormField( child: TextFormField(
controller: provider.paymentReceivedDateController, controller:
provider.paymentReceivedDateController,
keyboardType: TextInputType.text, keyboardType: TextInputType.text,
enabled: false, enabled: false,
maxLines: 1, maxLines: 1,
readOnly: true, readOnly: true,
onChanged: (value) { onChanged: (value) {},
},
decoration: InputDecoration( decoration: InputDecoration(
hintText: "Enter Date", hintText: "Enter Date",
hintStyle: TextStyle( hintStyle: TextStyle(
...@@ -266,9 +287,6 @@ class _EditpaymentdetailsbymodeState extends State<Editpaymentdetailsbymode> { ...@@ -266,9 +287,6 @@ class _EditpaymentdetailsbymodeState extends State<Editpaymentdetailsbymode> {
), ),
), ),
errorWidget(context, provider.dateError), errorWidget(context, provider.dateError),
], ],
), ),
), ),
...@@ -276,29 +294,38 @@ class _EditpaymentdetailsbymodeState extends State<Editpaymentdetailsbymode> { ...@@ -276,29 +294,38 @@ class _EditpaymentdetailsbymodeState extends State<Editpaymentdetailsbymode> {
floatingActionButtonLocation: floatingActionButtonLocation:
FloatingActionButtonLocation.centerFloat, FloatingActionButtonLocation.centerFloat,
bottomNavigationBar: InkResponse( bottomNavigationBar: InkResponse(
onTap: editProvider.submitLoading?null:() { onTap:
editProvider.submitLoading
? null
: () {
editProvider.submitLoading = true; editProvider.submitLoading = true;
editProvider.editPaymentDetailsAPIFunction(context, widget.values["payment_id"], editProvider.editPaymentDetailsAPIFunction(
context,
widget.values["payment_id"],
provider.selectedDescription, provider.selectedDescription,
provider.selectedPaymentMode, provider.selectedPaymentMode,
provider.paymentRefController.text, provider.paymentRefController.text,
provider.paymentReceivedDateController.text, provider.paymentReceivedDateController.text,
provider.amountController.text provider.amountController.text,
); );
}, },
child: Container( child: Container(
height: 45, height: 45,
alignment: Alignment.center, alignment: Alignment.center,
margin: EdgeInsets.symmetric(horizontal: 10,vertical: 15), margin: EdgeInsets.symmetric(horizontal: 10, vertical: 15),
padding: EdgeInsets.symmetric(horizontal: 10, vertical: 5), padding: EdgeInsets.symmetric(horizontal: 10, vertical: 5),
decoration: BoxDecoration( decoration: BoxDecoration(
color: AppColors.app_blue, color: AppColors.app_blue,
borderRadius: BorderRadius.circular(15), borderRadius: BorderRadius.circular(15),
), ),
child:editProvider.submitLoading?CircularProgressIndicator.adaptive( child:
editProvider.submitLoading
? CircularProgressIndicator.adaptive(
valueColor: AlwaysStoppedAnimation<Color>( valueColor: AlwaysStoppedAnimation<Color>(
AppColors.white AppColors.white,
)):Text( ),
)
: Text(
"Submit", "Submit",
style: TextStyle( style: TextStyle(
fontSize: 15, fontSize: 15,
...@@ -317,6 +344,4 @@ class _EditpaymentdetailsbymodeState extends State<Editpaymentdetailsbymode> { ...@@ -317,6 +344,4 @@ class _EditpaymentdetailsbymodeState extends State<Editpaymentdetailsbymode> {
}, },
); );
} }
} }
...@@ -2272,7 +2272,7 @@ class ApiCalling { ...@@ -2272,7 +2272,7 @@ class ApiCalling {
'tpc_agent_id': tpc_agent_id.toString(), 'tpc_agent_id': tpc_agent_id.toString(),
}; };
var res; var res;
print(data); print("add order:${data}");
if (po != null) { if (po != null) {
res = await postImageNew(data, {}, ordersAddOrderSubmitUrl, po, "po"); res = await postImageNew(data, {}, ordersAddOrderSubmitUrl, po, "po");
res = jsonDecode(res); res = jsonDecode(res);
......
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