Commit 12aa06e4 authored by Sai Srinivas's avatar Sai Srinivas
Browse files

13-08-2025 By Sai Srinivas

Test Cases
parent 2a5b9635
...@@ -127,7 +127,7 @@ class OrderDetails { ...@@ -127,7 +127,7 @@ class OrderDetails {
String? tpcaAgentName; String? tpcaAgentName;
OrderDetails( OrderDetails(
{this.id, { this.id,
this.orderNumber, this.orderNumber,
this.orderNumberHash, this.orderNumberHash,
this.balanceAmount, this.balanceAmount,
......
...@@ -844,10 +844,10 @@ class Addnewleadsandprospectsprovider extends ChangeNotifier { ...@@ -844,10 +844,10 @@ class Addnewleadsandprospectsprovider extends ChangeNotifier {
nameError = "Please Enter Name"; nameError = "Please Enter Name";
isValid = false; isValid = false;
} }
// if(customerMailIdController.text.trim().isEmpty){ if(customerMailIdController.text.trim().isNotEmpty && !RegExp(r'\S+@\S+\.\S+').hasMatch(customerMailIdController.text)){
// mailIdError = "Please enter Email Id"; mailIdError = "Please enter a proper Email ID";
// isValid = false; isValid = false;
// } }
if(mobileController.text.trim().isEmpty){ if(mobileController.text.trim().isEmpty){
mobileError = "Please enter Mobile Number"; mobileError = "Please enter Mobile Number";
isValid = false; isValid = false;
......
...@@ -566,66 +566,63 @@ String? productsEmptyError ; ...@@ -566,66 +566,63 @@ String? productsEmptyError ;
notifyListeners(); notifyListeners();
} }
dynamic get basicAmount { // dynamic get basicAmount {
double total = 0; // double total = 0;
for (var controller in TaxableValueControllers) { // total += double.tryParse(TaxableValueController.text)?.round() ?? 0.0;
total += double.tryParse(controller.text)?.round() ?? 0.0; // basicAmountReadOnlyController.text = total.toStringAsFixed(2);
} // return total;
basicAmountReadOnlyController.text = total.toStringAsFixed(2); // }
return total; //
} // dynamic get cgstAmount {
// double total = 0;
dynamic get cgstAmount { //
double total = 0; // final taxableValue =
for (int i = 0; i < ProductControllers.length; i++) { // double.tryParse(TaxableValueController.text) ?? 0.0;
final taxableValue = // final cgst = double.tryParse(CGSTController.text) ?? 0.0;
double.tryParse(TaxableValueControllers[i].text) ?? 0.0; // total += (taxableValue * cgst) / 100;
final cgst = double.tryParse(CGSTControllers[i].text) ?? 0.0; //
total += (taxableValue * cgst) / 100; // cgstReadOnlyController.text = total.toStringAsFixed(2);
} // return total;
cgstReadOnlyController.text = total.toStringAsFixed(2); // }
return total; //
} // dynamic get sgstAmount {
// double total = 0;
dynamic get sgstAmount { //
double total = 0; // final taxableValue =
for (int i = 0; i < ProductControllers.length; i++) { // double.tryParse(TaxableValueController.text) ?? 0.0;
final taxableValue = // final sgst = double.tryParse(SGSTController.text) ?? 0.0;
double.tryParse(TaxableValueControllers[i].text) ?? 0.0; // total += (taxableValue * sgst).round() / 100;
final sgst = double.tryParse(SGSTControllers[i].text) ?? 0.0; //
total += (taxableValue * sgst).round() / 100; // sgstReadOnlyController.text = total.toStringAsFixed(2);
} // return total;
sgstReadOnlyController.text = total.toStringAsFixed(2); // }
return total; //
} // dynamic get igstAmount {
// double total = 0;
dynamic get igstAmount { //
double total = 0; // final taxableValue =
for (int i = 0; i < ProductControllers.length; i++) { // double.tryParse(TaxableValueController.text) ?? 0.0;
final taxableValue = // final igst = double.tryParse(IGSTController.text) ?? 0.0;
double.tryParse(TaxableValueControllers[i].text) ?? 0.0; // total += (taxableValue * igst).round() / 100;
final igst = double.tryParse(IGSTControllers[i].text) ?? 0.0; //
total += (taxableValue * igst).round() / 100; // igstReadOnlyController.text = total.toStringAsFixed(2);
} // return total;
igstReadOnlyController.text = total.toStringAsFixed(2); // }
return total; //
} // dynamic get totalAmount {
// double total = basicAmount + cgstAmount + sgstAmount + igstAmount;
dynamic get totalAmount { // totalReadOnlyAmountController.text = total.round().toStringAsFixed(2);
double total = basicAmount + cgstAmount + sgstAmount + igstAmount; // return total!;
totalReadOnlyAmountController.text = total.round().toStringAsFixed(2); // }
return total!;
}
void addProduct(Map<String, dynamic> product) { void addProduct(Map<String, dynamic> product) {
productRows.add(product); productRows.add(product);
updateSummaryCalculations();
notifyListeners(); notifyListeners();
} }
void updateProduct(int index, Map<String, dynamic> updatedProduct) { void updateProduct(int index, Map<String, dynamic> updatedProduct) {
productRows[index] = updatedProduct; productRows[index] = updatedProduct;
updateSummaryCalculations();
notifyListeners(); notifyListeners();
} }
...@@ -649,6 +646,61 @@ String? productsEmptyError ; ...@@ -649,6 +646,61 @@ String? productsEmptyError ;
notifyListeners(); notifyListeners();
} }
void updateSummaryCalculations() {
double basicAmount = 0.0;
double cgstAmount = 0.0;
double sgstAmount = 0.0;
double igstAmount = 0.0;
for (var product in productRows) {
final price = double.tryParse(product['price']?.toString() ?? '0') ?? 0.0;
final qty = double.tryParse(product['qty']?.toString() ?? '0') ?? 0.0;
final cgst = double.tryParse(product['cgst_p']?.toString() ?? '0') ?? 0.0;
final sgst = double.tryParse(product['sgst_p']?.toString() ?? '0') ?? 0.0;
final igst = double.tryParse(product['igst_p']?.toString() ?? '0') ?? 0.0;
final taxableValue = price * qty;
basicAmount += taxableValue;
cgstAmount += (taxableValue * cgst) / 100;
sgstAmount += (taxableValue * sgst) / 100;
igstAmount += (taxableValue * igst) / 100;
}
final totalAmount = basicAmount + cgstAmount + sgstAmount + igstAmount;
basicAmountReadOnlyController.text = basicAmount.toStringAsFixed(2);
cgstReadOnlyController.text = cgstAmount.toStringAsFixed(2);
sgstReadOnlyController.text = sgstAmount.toStringAsFixed(2);
igstReadOnlyController.text = igstAmount.toStringAsFixed(2);
totalReadOnlyAmountController.text = totalAmount.toStringAsFixed(2);
notifyListeners();
}
String getJsonEncodedProducts() {
return jsonEncode(productRows);
}
dynamic get basicAmount {
return double.tryParse(basicAmountReadOnlyController.text) ?? 0.0;
}
dynamic get cgstAmount {
return double.tryParse(cgstReadOnlyController.text) ?? 0.0;
}
dynamic get sgstAmount {
return double.tryParse(sgstReadOnlyController.text) ?? 0.0;
}
dynamic get igstAmount {
return double.tryParse(igstReadOnlyController.text) ?? 0.0;
}
dynamic get totalAmount {
return double.tryParse(totalReadOnlyAmountController.text) ?? 0.0;
}
void updateSelectedSingleProduct(SaleProducts? product) { void updateSelectedSingleProduct(SaleProducts? product) {
_selectedSaleProducts = product; _selectedSaleProducts = product;
_selectedSingleSaleProductID= product!.id; _selectedSingleSaleProductID= product!.id;
...@@ -675,99 +727,99 @@ String? productsEmptyError ; ...@@ -675,99 +727,99 @@ String? productsEmptyError ;
notifyListeners(); notifyListeners();
} }
String getJsonEncodedProducts() {
return jsonEncode(productRows);
}
void addNewRow() {
ProductControllers.add(TextEditingController());
PriceControllers.add(TextEditingController());
QuantityControllers.add(TextEditingController(text: '1'));
CGSTControllers.add(TextEditingController(text: '9'));
SGSTControllers.add(TextEditingController(text: '9'));
IGSTControllers.add(TextEditingController(text: '0'));
TaxableValueControllers.add(TextEditingController());
TotalPriceControllers.add(TextEditingController());
selectedSaleProductID.add(null);
notifyListeners();
}
void removeRow(int index) {
if (index >= 0 && index < ProductControllers.length) {
ProductControllers[index].dispose();
PriceControllers[index].dispose();
QuantityControllers[index].dispose();
CGSTControllers[index].dispose();
SGSTControllers[index].dispose();
IGSTControllers[index].dispose();
TaxableValueControllers[index].dispose();
TotalPriceControllers[index].dispose();
ProductControllers.removeAt(index);
PriceControllers.removeAt(index);
QuantityControllers.removeAt(index);
CGSTControllers.removeAt(index);
SGSTControllers.removeAt(index);
IGSTControllers.removeAt(index);
TaxableValueControllers.removeAt(index);
TotalPriceControllers.removeAt(index);
selectedSaleProductID.removeAt(index);
notifyListeners();
}
}
void updateSelectedProduct(int index, SaleProducts? product) {
if (index >= 0 && index < _saleProducts.length) {
_selectedSaleProducts = product;
_selectedSaleProductID[index] = product!.id;
PriceControllers[index].text = product!.price!;
updateRowCalculations(index);
notifyListeners();
}
}
void updateRowCalculations(int index) {
if (index >= 0 && index < PriceControllers.length) {
final inclusivePrice =
double.tryParse(PriceControllers[index].text) ?? 0.0;
final quantity = double.tryParse(QuantityControllers[index].text) ?? 1.0;
final cgst = double.tryParse(CGSTControllers[index].text) ?? 0.0;
final sgst = double.tryParse(SGSTControllers[index].text) ?? 0.0;
final igst = double.tryParse(IGSTControllers[index].text) ?? 0.0;
final totalTaxRate = (cgst + sgst + igst) / 100;
// Calculate taxable value per unit
final taxableValuePerUnit = inclusivePrice / (1 + totalTaxRate);
// Total taxable value = taxable value per unit * quantity
final totalTaxableValue = taxableValuePerUnit * quantity;
TaxableValueControllers[index].text = totalTaxableValue.toStringAsFixed(
0,
);
notifyListeners();
}
}
Map<String, dynamic> getFormData() {
final List<Map<String, dynamic>> orders = []; // void addNewRow() {
for (int i = 0; i < ProductControllers.length; i++) { // ProductControllers.add(TextEditingController());
orders.add({ // PriceControllers.add(TextEditingController());
'product_id': selectedSaleProductID[i], // QuantityControllers.add(TextEditingController(text: '1'));
'qty': QuantityControllers[i].text, // CGSTControllers.add(TextEditingController(text: '9'));
'price': PriceControllers[i].text, // SGSTControllers.add(TextEditingController(text: '9'));
'cgst_p': CGSTControllers[i].text, // IGSTControllers.add(TextEditingController(text: '0'));
'sgst_p': SGSTControllers[i].text, // TaxableValueControllers.add(TextEditingController());
'igst_p': IGSTControllers[i].text, // TotalPriceControllers.add(TextEditingController());
'total_price': TaxableValueControllers[i].text, //
}); // selectedSaleProductID.add(null);
} // notifyListeners();
return { // }
'orders': orders, //
'basic_amount': basicAmount.toStringAsFixed(2), // void removeRow(int index) {
'cgst_amount': cgstAmount.toStringAsFixed(2), // if (index >= 0 && index < ProductControllers.length) {
'sgst_amount': sgstAmount.toStringAsFixed(2), // ProductControllers[index].dispose();
'igst_amount': igstAmount.toStringAsFixed(2), // PriceControllers[index].dispose();
'total_amount': totalAmount.toStringAsFixed(2), // QuantityControllers[index].dispose();
'note': noteController.text, // CGSTControllers[index].dispose();
}; // SGSTControllers[index].dispose();
} // IGSTControllers[index].dispose();
// TaxableValueControllers[index].dispose();
// TotalPriceControllers[index].dispose();
// ProductControllers.removeAt(index);
// PriceControllers.removeAt(index);
// QuantityControllers.removeAt(index);
// CGSTControllers.removeAt(index);
// SGSTControllers.removeAt(index);
// IGSTControllers.removeAt(index);
// TaxableValueControllers.removeAt(index);
// TotalPriceControllers.removeAt(index);
// selectedSaleProductID.removeAt(index);
// notifyListeners();
// }
// }
//
// void updateSelectedProduct(int index, SaleProducts? product) {
// if (index >= 0 && index < _saleProducts.length) {
// _selectedSaleProducts = product;
// _selectedSaleProductID[index] = product!.id;
// PriceControllers[index].text = product!.price!;
// updateRowCalculations(index);
// notifyListeners();
// }
// }
//
// void updateRowCalculations(int index) {
// if (index >= 0 && index < PriceControllers.length) {
// final inclusivePrice =
// double.tryParse(PriceControllers[index].text) ?? 0.0;
// final quantity = double.tryParse(QuantityControllers[index].text) ?? 1.0;
// final cgst = double.tryParse(CGSTControllers[index].text) ?? 0.0;
// final sgst = double.tryParse(SGSTControllers[index].text) ?? 0.0;
// final igst = double.tryParse(IGSTControllers[index].text) ?? 0.0;
// final totalTaxRate = (cgst + sgst + igst) / 100;
// // Calculate taxable value per unit
// final taxableValuePerUnit = inclusivePrice / (1 + totalTaxRate);
// // Total taxable value = taxable value per unit * quantity
// final totalTaxableValue = taxableValuePerUnit * quantity;
// TaxableValueControllers[index].text = totalTaxableValue.toStringAsFixed(
// 0,
// );
// notifyListeners();
// }
// }
//
// Map<String, dynamic> getFormData() {
// final List<Map<String, dynamic>> orders = [];
// for (int i = 0; i < ProductControllers.length; i++) {
// orders.add({
// 'product_id': selectedSaleProductID[i],
// 'qty': QuantityControllers[i].text,
// 'price': PriceControllers[i].text,
// 'cgst_p': CGSTControllers[i].text,
// 'sgst_p': SGSTControllers[i].text,
// 'igst_p': IGSTControllers[i].text,
// 'total_price': TaxableValueControllers[i].text,
// });
// }
// return {
// 'orders': orders,
// 'basic_amount': basicAmount.toStringAsFixed(2),
// 'cgst_amount': cgstAmount.toStringAsFixed(2),
// 'sgst_amount': sgstAmount.toStringAsFixed(2),
// 'igst_amount': igstAmount.toStringAsFixed(2),
// 'total_amount': totalAmount.toStringAsFixed(2),
// 'note': noteController.text,
// };
// }
Future<void> ordersAddOrderAPIViewFunction(context, mode) async { Future<void> ordersAddOrderAPIViewFunction(context, mode) async {
try { try {
...@@ -878,14 +930,21 @@ String? productsEmptyError ; ...@@ -878,14 +930,21 @@ String? productsEmptyError ;
_accountDetails = data.accountDetails!; _accountDetails = data.accountDetails!;
data.accountDetails!.accManagerId!; data.accountDetails!.accManagerId!;
billingNameController.text = data.accountDetails!.name!; billingNameController.text = data.accountDetails!.name!;
_selectedBillingStateID = data.accountDetails!.state!;
print("data.accountDetails!.state ${data.accountDetails!.state}");
if(_selectedBillingStateID!=null){ if(_selectedBillingStateID!=null){
getDistrictAPI(context,_selectedBillingStateID); getDistrictAPI(context,_selectedBillingStateID);
} }
_selectedBillingDistrictID = data.accountDetails!.district!;
if(_selectedBillingDistrictID!=null){ if(_selectedBillingDistrictID!=null){
getSubLocationAPI(context,_selectedBillingDistrictID); getSubLocationAPI(context,_selectedBillingDistrictID);
} }
_selectedBillingStates = billingStates!.firstWhere((e) => e.id == data.accountDetails!.state!);
_selectedBillingStateID = data.accountDetails!.state!;
_selectedBillingStateName = billingStates!.firstWhere((e) => e.id == data.accountDetails!.state!).name;
_selectedBillingDistrictID = data.accountDetails!.district!;
_selectedBillingSubLocID = data.accountDetails!.subLocality!; _selectedBillingSubLocID = data.accountDetails!.subLocality!;
billingPincodeController.text = data.accountDetails!.pincode!; billingPincodeController.text = data.accountDetails!.pincode!;
...@@ -918,6 +977,9 @@ String? productsEmptyError ; ...@@ -918,6 +977,9 @@ String? productsEmptyError ;
if (data != null) { if (data != null) {
if (data.error == "0") { if (data.error == "0") {
_billingDistricts = data.districts!; _billingDistricts = data.districts!;
_selectedBillingDistricts = data.districts!.firstWhere((e) => e.id == accountDetails!.district!);
_selectedBillingDistrictValue = data.districts!.firstWhere((e) => e.id == accountDetails!.district!).district;
notifyListeners(); notifyListeners();
} }
...@@ -958,6 +1020,9 @@ String? productsEmptyError ; ...@@ -958,6 +1020,9 @@ String? productsEmptyError ;
if (data != null) { if (data != null) {
if (data.error == "0") { if (data.error == "0") {
_billingSubLocations = data.subLocations!; _billingSubLocations = data.subLocations!;
_selectedBillingSubLocations = data.subLocations!.firstWhere((e) => e.id == accountDetails!.subLocality!);
_selectedBillingSubLocValue = data.subLocations!.firstWhere((e) => e.id == accountDetails!.subLocality!).subLocality;
notifyListeners(); notifyListeners();
} }
...@@ -1003,6 +1068,31 @@ String? productsEmptyError ; ...@@ -1003,6 +1068,31 @@ String? productsEmptyError ;
} catch (e, s) {} } catch (e, s) {}
} }
Future<List<TpcList>> fetchTPCAccountsfromAPI(context, mode, text) async {
try {
final provider = Provider.of<HomescreenNotifier>(context, listen: false);
final data = await ApiCalling.addOrderTPCAgentListAPI(
provider.empId,
provider.session,
mode,
text,
);
if (data != null) {
if (data.error == "0") {
_tpcAgent = data.tpcList!;
notifyListeners();
return _tpcAgent;
} else {
return [];
}
} else {
return [];
}
} catch (e, s) {
return [];
}
}
Future<void> ordersAddOrderAPISubmitFunction( Future<void> ordersAddOrderAPISubmitFunction(
context, context,
mode, mode,
...@@ -1178,7 +1268,7 @@ String? productsEmptyError ; ...@@ -1178,7 +1268,7 @@ String? productsEmptyError ;
) async { ) async {
print(search); print(search);
try { try {
if (search.isEmpty) { if (search==null) {
_accountList = []; _accountList = [];
_isLoading = false; _isLoading = false;
notifyListeners(); notifyListeners();
...@@ -1222,6 +1312,65 @@ String? productsEmptyError ; ...@@ -1222,6 +1312,65 @@ String? productsEmptyError ;
} }
} }
Future<List<AccountList>> fetchAccountsFromApi(
context,
mode,
accountId,
search,
) async {
print(search);
try {
if (search==null) {
_accountList = [];
_isLoading = false;
notifyListeners();
return _accountList;
}
_isLoading = true;
notifyListeners();
final provider = Provider.of<HomescreenNotifier>(context, listen: false);
final data = await ApiCalling.AddOrderPaymentSelectAccountAPI(
provider.empId,
provider.session,
mode,
search,
);
if (data != null) {
if (data.error == "0") {
_accountList = data.accountList!;
if (_selectedAccountList != null &&
!_accountList.contains(_selectedAccountList)) {
_selectedAccountList = null;
_selectedAccountID = null;
_selectedAccountName = null;
}
_isLoading = false;
notifyListeners();
return _accountList;
} else {
selectAccountError = data?.message ?? "Failed to load accounts";
_isLoading = false;
notifyListeners();
return [];
}
} else {
selectAccountError = "No data received from server";
_isLoading = false;
notifyListeners();
return [];
}
} catch (e, s) {
selectAccountError = "An error occurred while fetching accounts";
_isLoading = false;
notifyListeners();
return [];
}
}
imgFromCamera(context) async { imgFromCamera(context) async {
// Capture a photo // Capture a photo
try { try {
......
...@@ -202,6 +202,24 @@ class Editorderprovider extends ChangeNotifier { ...@@ -202,6 +202,24 @@ class Editorderprovider extends ChangeNotifier {
_erectionScope = ["Included", "Excluded"]; _erectionScope = ["Included", "Excluded"];
_unloadingScope = ["Included", "Excluded"]; _unloadingScope = ["Included", "Excluded"];
_freightScope = ["Included", "Excluded"]; _freightScope = ["Included", "Excluded"];
if(data.orderDetails!.dispatchStateId!=null){
getDispatchDistrictAPI(context,data.orderDetails!.dispatchStateId!);
}
if(data.orderDetails!.dispatchDistrictId!=null){
getDispatchSubLocationAPI(context,data.orderDetails!.dispatchDistrictId!);
}
_selectedDispatchStates = data.states!.firstWhere((e) => e.id == data.orderDetails!.dispatchStateId!);
_selectedDispatchStateID = data.orderDetails!.dispatchStateId!;
_selectedDispatchStateName = data.states!.firstWhere((e) => e.id == data.orderDetails!.dispatchStateId!).name;
_selectedDispatchDistrictID = data.orderDetails!.dispatchDistrictId!;
_selectedDispatchSubLocID = data.orderDetails!.dispatchSubLocationId!;
dispatchAddressController.text = data.orderDetails!.dispatchAddress!;
dispatchPincodeController.text = data.orderDetails!.dispatchPincode!;
noteController.text = data.orderDetails!.note!;
_selectedUnloadingScope = data.orderDetails!.unloadingScope!;
_selectedErectionScope = data.orderDetails!.erectionScope!;
_selectedFreightScope = data.orderDetails!.freightScope!;
notifyListeners(); notifyListeners();
} else {} } else {}
...@@ -222,7 +240,8 @@ class Editorderprovider extends ChangeNotifier { ...@@ -222,7 +240,8 @@ class Editorderprovider extends ChangeNotifier {
if (data != null) { if (data != null) {
if (data.error == "0") { if (data.error == "0") {
_dispatchDistricts = data.districts!; _dispatchDistricts = data.districts!;
_selectedDispatchDistricts = data.districts!.firstWhere((e) => e.id == orderDetails!.dispatchDistrictId!);
_selectedDispatchDistrictValue = data.districts!.firstWhere((e) => e.id == orderDetails!.dispatchDistrictId!).district;
notifyListeners(); notifyListeners();
} }
} }
...@@ -242,6 +261,8 @@ class Editorderprovider extends ChangeNotifier { ...@@ -242,6 +261,8 @@ class Editorderprovider extends ChangeNotifier {
if (data != null) { if (data != null) {
if (data.error == "0") { if (data.error == "0") {
_dispatchSubLocations = data.subLocations!; _dispatchSubLocations = data.subLocations!;
_selectedDispatchSubLocations = data.subLocations!.firstWhere((e) => e.id == orderDetails!.dispatchSubLocationId!);
_selectedDispatchSubLocValue = data.subLocations!.firstWhere((e) => e.id == orderDetails!.dispatchSubLocationId!).subLocality;
notifyListeners(); notifyListeners();
} }
......
...@@ -362,10 +362,73 @@ class Pagesdashboardprovider extends ChangeNotifier { ...@@ -362,10 +362,73 @@ class Pagesdashboardprovider extends ChangeNotifier {
orderId, orderId,
); );
if (data != null) { if (data != null) {
_isLoading = true; // _isLoading = true;
notifyListeners(); notifyListeners();
if (data.error == "0") { if (data.error == "0") {
_orderDetails = data.orderDetails!; _orderDetails = data.orderDetails??OrderDetails(
id:"",
orderNumber:"",
orderNumberHash:"",
balanceAmount:"",
accId:"",
refType:"",
refId:"",
salesPersonEmpId:"",
enteredEmpId:"",
dispatchStateId:"",
dispatchDistrictId:"",
dispatchSubLocationId:"",
dispatchPincode:"",
dispatchAddress:"",
basicAmount:"",
cgstAmount:"",
sgstAmount:"",
igstAmount:"",
paidAmount:"",
totalAmount:"",
status:"",
orderReceivedDate:"",
scheduledDispatchDate:"",
otp:"",
note:"",
poViewFileName:"",
poDirFilePath:"",
unloadingScope:"",
freightScope:"",
erectionScope:"",
saleOrderNumber:"",
invoiceNumber:"",
vehicleNumber:"",
driverName:"",
driverMobileNumber:"",
tpcApplicable:"",
requestedTpcAmount:"",
level1TpcApprovedAmount:"",
level2TpcApprovedAmount:"",
tpcPaymentMode:"",
tpcPaymentReferenceNo:"",
tpcPaymentAttachmentDirFilePath:"",
tpcPaymentAttachementViewFileName:"",
tpcStatus:"",
tpcAgentId:"",
isExist:"",
createdDatetime:"",
updatedDatetime:"",
accountName:"",
gstNumber:"",
billingAddress:"",
billingDistrict:"",
billingState:"",
billingSubLocality:"",
billingPincode:"",
stateName:"",
districtName:"",
subLocationName:"",
adjustedAmount:"",
enteredEmpName:"",
salesPersonEmpName:"",
tpcaAgentName: ""
);
_productsHistory = data.products!; _productsHistory = data.products!;
_feedbackHistory = data.feedbackHistory!; _feedbackHistory = data.feedbackHistory!;
_paymentHistory = data.paymentHistory!; _paymentHistory = data.paymentHistory!;
......
...@@ -4,6 +4,7 @@ import 'package:camera/camera.dart'; ...@@ -4,6 +4,7 @@ import 'package:camera/camera.dart';
import 'package:flutter/cupertino.dart'; import 'package:flutter/cupertino.dart';
import 'package:flutter/foundation.dart'; import 'package:flutter/foundation.dart';
import 'package:generp/Models/ordersModels/TPCListResponse.dart'; import 'package:generp/Models/ordersModels/TPCListResponse.dart';
import 'package:get/get.dart';
import 'package:image_picker/image_picker.dart'; import 'package:image_picker/image_picker.dart';
import 'package:provider/provider.dart'; import 'package:provider/provider.dart';
...@@ -303,6 +304,10 @@ class Tpcagentsprovider extends ChangeNotifier{ ...@@ -303,6 +304,10 @@ class Tpcagentsprovider extends ChangeNotifier{
tpcMobileNumberError = "PLease Enter Your Mobile Number"; tpcMobileNumberError = "PLease Enter Your Mobile Number";
isValid = false; isValid = false;
} }
if(tpcMobileNumberController.text.trim().isNotEmpty && tpcMobileNumberController.text.length<10){
tpcMobileNumberError = "Please Enter a Valid Mobile Number";
isValid = false;
}
if(_image_picked==0){ if(_image_picked==0){
imageError = "Please select ID Proof"; imageError = "Please select ID Proof";
......
...@@ -899,9 +899,11 @@ class _AddleadsprospectsscreenState extends State<Addleadsprospectsscreen> { ...@@ -899,9 +899,11 @@ class _AddleadsprospectsscreenState extends State<Addleadsprospectsscreen> {
), ),
], ],
if(provider.productsEmptyError!.trim().isNotEmpty)...[ if(provider.productRows.isEmpty)...[
if(provider.productsEmptyError!=null)...[
errorWidget(context, provider.productsEmptyError) errorWidget(context, provider.productsEmptyError)
] ]
]
], ],
), ),
), ),
......
import 'dart:async';
import 'dart:io'; import 'dart:io';
import 'package:dotted_line/dotted_line.dart'; import 'package:dotted_line/dotted_line.dart';
...@@ -12,11 +13,14 @@ import 'package:generp/screens/notifierExports.dart'; ...@@ -12,11 +13,14 @@ import 'package:generp/screens/notifierExports.dart';
import 'package:generp/screens/order/addOrderAddProduct.dart'; import 'package:generp/screens/order/addOrderAddProduct.dart';
import 'package:provider/provider.dart'; import 'package:provider/provider.dart';
import '../../Models/ordersModels/AddOrderPaymentSelectAccountResponse.dart';
import '../../Models/ordersModels/AddOrderViewResponse.dart'; import '../../Models/ordersModels/AddOrderViewResponse.dart';
import '../../Models/ordersModels/addOrderTpcAgentListResponse.dart';
import '../../Utils/app_colors.dart'; import '../../Utils/app_colors.dart';
import '../../Utils/commonWidgets.dart'; import '../../Utils/commonWidgets.dart';
import 'package:connectivity_plus/connectivity_plus.dart'; import 'package:connectivity_plus/connectivity_plus.dart';
import 'package:generp/Utils/commonServices.dart'; import 'package:generp/Utils/commonServices.dart';
import 'package:dropdown_search/dropdown_search.dart';
class AddorderScreen extends StatefulWidget { class AddorderScreen extends StatefulWidget {
final pageTitleName; final pageTitleName;
...@@ -37,6 +41,7 @@ class _AddorderScreenState extends State<AddorderScreen> { ...@@ -37,6 +41,7 @@ class _AddorderScreenState extends State<AddorderScreen> {
final _formKey = GlobalKey<FormState>(); final _formKey = GlobalKey<FormState>();
Map _source = {ConnectivityResult.mobile: true}; Map _source = {ConnectivityResult.mobile: true};
final MyConnectivity _connectivity = MyConnectivity.instance; final MyConnectivity _connectivity = MyConnectivity.instance;
final GlobalKey<DropdownButton2State<AccountList>> _dropdownKey = GlobalKey();
@override @override
void initState() { void initState() {
...@@ -51,9 +56,16 @@ class _AddorderScreenState extends State<AddorderScreen> { ...@@ -51,9 +56,16 @@ class _AddorderScreenState extends State<AddorderScreen> {
if (provider.dateNow == null) { if (provider.dateNow == null) {
provider.setDate(DateTime.now()); provider.setDate(DateTime.now());
} }
provider.getLocationPermission(context); provider.getLocationPermission(context);
provider.getCurrentLocation(); provider.getCurrentLocation();
provider.ordersAddOrderAPIViewFunction(context, widget.mode); provider.ordersAddOrderAPIViewFunction(context, widget.mode);
provider.ordersAddOrderSelectAccountAPIFunction(
context,
widget.mode,
provider.selectedAccountID,
'',
);
}); });
} }
...@@ -207,179 +219,366 @@ class _AddorderScreenState extends State<AddorderScreen> { ...@@ -207,179 +219,366 @@ class _AddorderScreenState extends State<AddorderScreen> {
crossAxisAlignment: CrossAxisAlignment.start, crossAxisAlignment: CrossAxisAlignment.start,
children: [ children: [
TextWidget(context, "Account"), TextWidget(context, "Account"),
InkResponse( DropdownSearch<AccountList>(
onTap: () { compareFn: (item1, item2) => true,
if (focusNode.hasFocus) { popupProps: PopupProps.menu(
focusNode.unfocus(); showSearchBox: true,
} else { searchFieldProps: TextFieldProps(
FocusScope.of(
context,
).requestFocus(focusNode);
}
},
child: Container(
alignment: Alignment.center,
decoration: BoxDecoration(
color: AppColors.text_field_color,
borderRadius: BorderRadius.circular(14),
),
child: ListTile(
onTap: () {
if (focusNode.hasFocus) {
focusNode.unfocus();
} else {
FocusScope.of(
context,
).requestFocus(focusNode);
}
},
title: TextFormField(
focusNode: focusNode,
onTapUpOutside: (event) {
focusNode.unfocus();
},
controller: controller:
provider.dropDownSearchController, provider.dropDownSearchController,
onChanged: (value) async {
Future.delayed(
Duration(milliseconds: 100),
() async {
await provider
.ordersAddOrderSelectAccountAPIFunction(
context,
widget.mode,
provider.selectedAccountID,
value,
);
},
);
},
decoration: InputDecoration( decoration: InputDecoration(
enabledBorder: InputBorder.none,
focusedBorder: InputBorder.none,
isDense: true, isDense: true,
contentPadding: contentPadding:
const EdgeInsets.symmetric( const EdgeInsets.symmetric(
horizontal: 0, horizontal: 10,
vertical: 8, vertical: 8,
), ),
hintText: 'Search Account...',
hintText: 'Select Account Type',
hintStyle: const TextStyle(
fontSize: 14,
),
border: OutlineInputBorder( border: OutlineInputBorder(
borderRadius: BorderRadius.circular( borderSide: BorderSide(
8, color: AppColors.semi_black,
), ),
borderRadius: BorderRadius.circular(8),
), ),
suffixIcon:
provider.isLoading
? const CircularProgressIndicator()
: null,
), ),
onChanged: (value) {
Timer(
const Duration(milliseconds: 500),
() {
print('Search query: $value');
// Items are fetched via the items parameter
},
);
},
), ),
trailing: InkResponse( fit: FlexFit.loose,
onTap: () { menuProps: MenuProps(
if (focusNode.hasFocus) { borderRadius: BorderRadius.circular(8),
focusNode.unfocus(); elevation: 8,
} else {
FocusScope.of(
context,
).requestFocus(focusNode);
}
},
child: SvgPicture.asset(
"assets/svg/arrow_dropdown.svg",
height: 25,
width: 20,
), ),
itemBuilder:
(context, item, isDisabled, isSelected) =>
Padding(
padding: EdgeInsets.symmetric(
horizontal: 12,
vertical: 10,
), ),
child: SizedBox(
height: 20,
child: Text(
item.text!,
style: const TextStyle(
fontSize: 14,
), ),
), ),
), ),
if (provider.accountList.isNotEmpty &&
focusNode.hasFocus) ...[
Card(
margin: EdgeInsets.symmetric(horizontal: 0),
child: Container(
padding: EdgeInsets.symmetric(
horizontal: 10,
), ),
height:
provider.accountList.isNotEmpty
? 150
: 50,
decoration: BoxDecoration(
borderRadius: BorderRadius.circular(16),
), ),
child: Scrollbar( items: (filter, infiniteScrollProps) async {
thickness: 2.5, print('Fetching items for filter: $filter');
radius: Radius.circular(6), return provider.fetchAccountsFromApi(
thumbVisibility: true, context,
child: ListView.builder( widget.mode,
itemCount: provider.accountList.length, provider.selectedAccountID,
shrinkWrap: true, filter,
physics:
AlwaysScrollableScrollPhysics(),
itemBuilder: (context, index) {
return InkResponse(
onTap: () async {
if (provider
.accountList
.isNotEmpty) {
provider.selectedAccountList =
provider.accountList[index];
print(
"Selected Complaint Type: ${provider.accountList[index].text}, ID: ${provider.accountList[index].id}",
);
provider.selectedAccountID =
provider
.accountList[index]
.id!;
provider.selectedAccountName =
provider
.accountList[index]
.text!;
print(
"hfjkshfg" +
provider.selectedAccountID
.toString(),
); );
provider },
.dropDownSearchController itemAsString:
.text = provider (AccountList? item) => item?.text ?? '',
.accountList[index] onChanged: (AccountList? value) {
.text!; if (value != null) {
print('Selected account: ${value.text}');
provider.selectedAccountList = (value);
provider.selectedAccountID = value!.id!;
provider.selectedAccountName = value!.text!;
provider provider
.ordersAddOrderAccountDetailsAPIFunction( .ordersAddOrderAccountDetailsAPIFunction(
context, context,
provider value.id,
.selectedAccountID,
); );
} }
// provider.ordersAddPaymentSelectOrderAPIFunction(context, provider.selectedAccountID);
provider.accountList = [];
provider.selectAccountError = "";
provider.notifyListeners();
}, },
child: SizedBox( selectedItem: provider.selectedAccountList,
height: 45, decoratorProps: DropDownDecoratorProps(
child: Align( decoration: InputDecoration(
alignment: Alignment.centerLeft, hintText: 'Select Account',
child: Text( hintStyle: TextStyle(
provider fontSize: 14,
.accountList[index] color: AppColors.grey_thick,
.text!,
), ),
// labelText: 'Select Account',
enabledBorder: OutlineInputBorder(
borderSide: BorderSide.none,
borderRadius: BorderRadius.circular(14),
), ),
focusedBorder: OutlineInputBorder(
borderSide: BorderSide(
color: AppColors.cyan_blue,
), ),
); borderRadius: BorderRadius.circular(14),
},
), ),
disabledBorder: OutlineInputBorder(
borderSide: BorderSide.none,
borderRadius: BorderRadius.circular(14),
), ),
errorBorder: OutlineInputBorder(
borderSide: BorderSide.none,
borderRadius: BorderRadius.circular(14),
), ),
border: OutlineInputBorder(
borderSide: BorderSide.none,
borderRadius: BorderRadius.circular(8),
),
contentPadding:
ddtheme.buttonStyleData.padding,
fillColor: AppColors.text_field_color,
filled: true,
),
),
onBeforePopupOpening: (selectedItem) async {
provider.dropDownSearchController.clear();
return Future.value();
},
// onBeforePopupOpening: () {
// print('Dropdown closed, clearing search');
// provider.dropDownSearchController.clear();
// },
), ),
],
// DropdownSearch<AccountList>(
// filterFn: (item, filter) {
// return provider.ordersAddOrderSelectAccountAPIFunction(
// widget.mode,
// provider.selectedAccountID,
// filter,
// );
// },
// popupProps: PopupProps.menu(
// showSearchBox: true,
// searchFieldProps: TextFieldProps(
// controller: provider.dropDownSearchController,
// decoration: InputDecoration(
// isDense: true,
// contentPadding: const EdgeInsets.symmetric(horizontal: 10, vertical: 8),
// hintText: 'Search Account...',
// border: OutlineInputBorder(
// borderRadius: BorderRadius.circular(8),
// ),
// suffixIcon: provider.isLoading ? const CircularProgressIndicator() : null,
// ),
// ),
// emptyBuilder: (context, searchEntry) => const Padding(
// padding: EdgeInsets.all(8.0),
// child: Text('No accounts found, please search'),
// ),
// ),
//
// itemAsString: (AccountList? item) => item?.text ?? '',
// onChanged: (AccountList? value) {
// if (value != null) {
// print('Selected account: ${value.text}');
// provider.selectedAccountList = value;
// provider.selectedAccountID = value!.id!;
// provider.selectedAccountName
// provider.ordersAddOrderAccountDetailsAPIFunction(
// context,
// value.id,
// );
// }
// },
// selectedItem: provider.selectedAccountList,
//
// decoratorProps: DropDownDecoratorProps(
//
// decoration: InputDecoration(
// labelText: 'Select Account',
// border: OutlineInputBorder(
// borderRadius: BorderRadius.circular(8),
// ),
// ),
// ),
//
//
// ),
// InkResponse(
// onTap: () {
// if (focusNode.hasFocus) {
// focusNode.unfocus();
// } else {
// FocusScope.of(
// context,
// ).requestFocus(focusNode);
// }
// },
// child: Container(
// alignment: Alignment.center,
// decoration: BoxDecoration(
// color: AppColors.text_field_color,
// borderRadius: BorderRadius.circular(14),
// ),
// child: ListTile(
// onTap: () {
// if (focusNode.hasFocus) {
// focusNode.unfocus();
// } else {
// FocusScope.of(
// context,
// ).requestFocus(focusNode);
// }
// },
// title: TextFormField(
// focusNode: focusNode,
// onTapUpOutside: (event) {
// focusNode.unfocus();
// },
// controller:
// provider.dropDownSearchController,
// onChanged: (value) async {
// Future.delayed(
// Duration(milliseconds: 100),
// () async {
// await provider
// .ordersAddOrderSelectAccountAPIFunction(
// context,
// widget.mode,
// provider.selectedAccountID,
// value,
// );
// },
// );
// },
// decoration: InputDecoration(
// enabledBorder: InputBorder.none,
// focusedBorder: InputBorder.none,
// isDense: true,
// contentPadding:
// const EdgeInsets.symmetric(
// horizontal: 0,
// vertical: 8,
// ),
//
// hintText: 'Select Account Type',
// hintStyle: const TextStyle(
// fontSize: 14,
// ),
// border: OutlineInputBorder(
// borderRadius: BorderRadius.circular(
// 8,
// ),
// ),
// ),
// ),
//
// trailing: InkResponse(
// onTap: () {
// if (focusNode.hasFocus) {
// focusNode.unfocus();
// } else {
// FocusScope.of(
// context,
// ).requestFocus(focusNode);
// }
// },
// child: SvgPicture.asset(
// "assets/svg/arrow_dropdown.svg",
// height: 25,
// width: 20,
// ),
// ),
// ),
// ),
// ),
// if (provider.accountList.isNotEmpty &&
// focusNode.hasFocus) ...[
// Card(
// margin: EdgeInsets.symmetric(horizontal: 0),
// child: Container(
// padding: EdgeInsets.symmetric(
// horizontal: 10,
// ),
// height:
// provider.accountList.isNotEmpty
// ? 150
// : 50,
// decoration: BoxDecoration(
// borderRadius: BorderRadius.circular(16),
// ),
// child: Scrollbar(
// thickness: 2.5,
// radius: Radius.circular(6),
// thumbVisibility: true,
// child: ListView.builder(
// itemCount: provider.accountList.length,
// shrinkWrap: true,
// physics:
// AlwaysScrollableScrollPhysics(),
// itemBuilder: (context, index) {
// return InkResponse(
// onTap: () async {
// if (provider
// .accountList
// .isNotEmpty) {
// provider.selectedAccountList =
// provider.accountList[index];
//
// print(
// "Selected Complaint Type: ${provider.accountList[index].text}, ID: ${provider.accountList[index].id}",
// );
// provider.selectedAccountID =
// provider
// .accountList[index]
// .id!;
// provider.selectedAccountName =
// provider
// .accountList[index]
// .text!;
// print(
// "hfjkshfg" +
// provider.selectedAccountID
// .toString(),
// );
// provider
// .dropDownSearchController
// .text = provider
// .accountList[index]
// .text!;
// provider
// .ordersAddOrderAccountDetailsAPIFunction(
// context,
// provider
// .selectedAccountID,
// );
// }
// // provider.ordersAddPaymentSelectOrderAPIFunction(context, provider.selectedAccountID);
// provider.accountList = [];
// provider.selectAccountError = "";
// provider.notifyListeners();
// },
// child: SizedBox(
// height: 45,
// child: Align(
// alignment: Alignment.centerLeft,
// child: Text(
// provider
// .accountList[index]
// .text!,
// ),
// ),
// ),
// );
// },
// ),
// ),
// ),
// ),
// ],
if (provider.selectAccountError != null) ...[ if (provider.selectAccountError != null) ...[
errorWidget( errorWidget(
context, context,
...@@ -686,16 +885,31 @@ class _AddorderScreenState extends State<AddorderScreen> { ...@@ -686,16 +885,31 @@ class _AddorderScreenState extends State<AddorderScreen> {
provider.billingDistricts.isNotEmpty provider.billingDistricts.isNotEmpty
? provider.selectedBillingDistricts != ? provider.selectedBillingDistricts !=
null null
? provider.billingDistricts ? provider.billingDistricts.firstWhere(
.firstWhere(
(ord) => (ord) =>
ord.id == ord.id ==
provider provider
.selectedBillingDistrictId, .selectedBillingDistrictId,
orElse: orElse: () {
() => provider.selectedBillingDistricts =
provider provider
.billingDistricts[0], .billingDistricts[0];
provider.selectedBillingDistrictId =
provider
.billingDistricts[0]
.id;
provider.selectedBillingDistrictValue =
provider
.billingDistricts[0]
.district;
provider.getSubLocationAPI(
context,
provider
.selectedBillingDistrictId,
);
return provider
.billingDistricts[0];
},
) )
: null : null
: null, : null,
...@@ -824,17 +1038,27 @@ class _AddorderScreenState extends State<AddorderScreen> { ...@@ -824,17 +1038,27 @@ class _AddorderScreenState extends State<AddorderScreen> {
.isNotEmpty .isNotEmpty
? provider.selectedBillingSubLocations != ? provider.selectedBillingSubLocations !=
null null
? provider ? provider.billingSubLocations.firstWhere(
.billingSubLocations
.firstWhere(
(ord) => (ord) =>
ord.id == ord.id ==
provider provider
.selectedBillingSubLocID, .selectedBillingSubLocID,
orElse: orElse: () {
() => provider.selectedBillingSubLocations =
provider provider
.billingSubLocations[0], .billingSubLocations[0];
provider.selectedBillingSubLocID =
provider
.billingSubLocations[0]
.id;
provider.selectedBillingSubLocValue =
provider
.billingSubLocations[0]
.subLocality;
return provider
.billingSubLocations[0];
},
) )
: null : null
: null, : null,
...@@ -1013,6 +1237,7 @@ class _AddorderScreenState extends State<AddorderScreen> { ...@@ -1013,6 +1237,7 @@ class _AddorderScreenState extends State<AddorderScreen> {
ord.id == ord.id ==
provider provider
.selectedDispatchStateID, .selectedDispatchStateID,
orElse: orElse:
() => () =>
provider provider
...@@ -1159,10 +1384,31 @@ class _AddorderScreenState extends State<AddorderScreen> { ...@@ -1159,10 +1384,31 @@ class _AddorderScreenState extends State<AddorderScreen> {
ord.id == ord.id ==
provider provider
.selectedDispatchDistrictId, .selectedDispatchDistrictId,
orElse:
() => orElse: () {
provider.selectedDispatchDistricts =
provider provider
.dispatchDistricts[0], .dispatchDistricts[0];
provider.selectedDispatchDistrictId =
provider
.dispatchDistricts[0]
.id;
provider.selectedDispatchDistrictValue =
provider
.dispatchDistricts[0]
.district;
provider.getDispatchSubLocationAPI(
context,
provider
.selectedBillingDistrictId,
);
return provider
.dispatchDistricts[0];
},
// orElse:
// () =>
// provider
// .dispatchDistricts[0],
) )
: null : null
: null, : null,
...@@ -1297,10 +1543,28 @@ class _AddorderScreenState extends State<AddorderScreen> { ...@@ -1297,10 +1543,28 @@ class _AddorderScreenState extends State<AddorderScreen> {
ord.id == ord.id ==
provider provider
.selectedDispatchSubLocID, .selectedDispatchSubLocID,
orElse:
() => orElse: () {
provider.selectedDispatchSubLocations =
provider provider
.dispatchSubLocations[0], .dispatchSubLocations[0];
provider.selectedDispatchSubLocID =
provider
.dispatchSubLocations[0]
.id;
provider.selectedDispatchSubLocValue =
provider
.dispatchSubLocations[0]
.subLocality;
return provider
.dispatchSubLocations[0];
},
// orElse:
// () =>
// provider
// .dispatchSubLocations[0],
) )
: null : null
: null, : null,
...@@ -1782,149 +2046,280 @@ class _AddorderScreenState extends State<AddorderScreen> { ...@@ -1782,149 +2046,280 @@ class _AddorderScreenState extends State<AddorderScreen> {
], ],
if (provider.selectedTpcStatus == "Yes") ...[ if (provider.selectedTpcStatus == "Yes") ...[
TextWidget(context, "TPC Agent"), TextWidget(context, "TPC Agent"),
DropdownSearch<TpcList>(
//dd compareFn: (item1, item2) => true,
Container( popupProps: PopupProps.menu(
alignment: Alignment.center, showSearchBox: true,
decoration: BoxDecoration( searchFieldProps: TextFieldProps(
color: AppColors.text_field_color,
borderRadius: BorderRadius.circular(14),
),
child: ListTile(
title: TextFormField(
focusNode: focusNodetpc,
onTapUpOutside: (event) {
focusNodetpc.unfocus();
},
controller: controller:
provider.dropDownTpcSearchController, provider.dropDownTpcSearchController,
onChanged: (value) async {
Future.delayed(
Duration(milliseconds: 100),
() async {
await provider
.ordersAddOrderTPCAgentFunction(
context,
widget.mode,
value,
);
},
);
},
decoration: InputDecoration( decoration: InputDecoration(
enabledBorder: InputBorder.none,
focusedBorder: InputBorder.none,
isDense: true, isDense: true,
contentPadding: contentPadding:
const EdgeInsets.symmetric( const EdgeInsets.symmetric(
horizontal: 0, horizontal: 10,
vertical: 8, vertical: 8,
), ),
hintText: 'Select TPC Agent', hintText: 'Search ...',
hintStyle: const TextStyle(
fontSize: 14,
),
border: OutlineInputBorder( border: OutlineInputBorder(
borderSide: BorderSide(
color: AppColors.semi_black,
),
borderRadius: BorderRadius.circular( borderRadius: BorderRadius.circular(
8, 8,
), ),
), ),
suffixIcon:
provider.isLoading
? const CircularProgressIndicator()
: null,
), ),
onChanged: (value) {
Timer(
const Duration(milliseconds: 500),
() {
print('Search query: $value');
// Items are fetched via the items parameter
},
);
},
), ),
trailing: InkResponse( fit: FlexFit.loose,
onTap: () { menuProps: MenuProps(
if (focusNodetpc.hasFocus) { borderRadius: BorderRadius.circular(8),
focusNodetpc.unfocus(); elevation: 8,
} else { ),
FocusScope.of( itemBuilder:
(
context, context,
).requestFocus(focusNodetpc); item,
} isDisabled,
}, isSelected,
child: SvgPicture.asset( ) => Padding(
"assets/svg/arrow_dropdown.svg", padding: EdgeInsets.symmetric(
height: 25, horizontal: 12,
width: 20, vertical: 10,
), ),
child: SizedBox(
height: 20,
child: Text(
item.text!,
style: const TextStyle(
fontSize: 14,
), ),
), ),
), ),
if (provider.tpcAgent.isNotEmpty &&
focusNodetpc.hasFocus) ...[
Card(
margin: EdgeInsets.symmetric(horizontal: 0),
child: Container(
padding: EdgeInsets.symmetric(
horizontal: 10,
), ),
height: 150,
decoration: BoxDecoration(
borderRadius: BorderRadius.circular(16),
), ),
child: Scrollbar( items: (filter, infiniteScrollProps) async {
thickness: 2.5, print('Fetching items for filter: $filter');
radius: Radius.circular(6), return provider.fetchTPCAccountsfromAPI(
thumbVisibility: true, context,
child: ListView.builder( widget.mode,
itemCount: provider.tpcAgent.length, filter,
shrinkWrap: true,
physics:
AlwaysScrollableScrollPhysics(),
itemBuilder: (context, index) {
return InkResponse(
onTap: () async {
if (provider
.tpcAgent
.isNotEmpty) {
provider.selectedTpcAgent =
provider.tpcAgent[index];
print(
"Selected Complaint Type: ${provider.tpcAgent[index].text}, ID: ${provider.tpcAgent[index].id}",
); );
provider.selectedTpcAgentID = },
provider itemAsString:
.tpcAgent[index] (TpcList? item) => item?.text ?? '',
.id!; onChanged: (TpcList? value) {
if (value != null) {
print('Selected account: ${value.text}');
provider.selectedTpcAgent = (value);
provider.selectedTpcAgentID = value!.id!;
provider.selectedTpcAgentValue = provider.selectedTpcAgentValue =
provider value!.text!;
.tpcAgent[index]
.text!;
print(
"hfjkshfg" +
provider
.selectedTpcAgentID
.toString(),
);
provider
.dropDownTpcSearchController
.text = provider
.tpcAgent[index]
.text!;
} }
// provider.ordersAddPaymentSelectOrderAPIFunction(context, provider.selectedAccountID);
// provider.tpcAgent = [];
}, },
child: SizedBox( selectedItem: provider.selectedTpcAgent,
height: 45, decoratorProps: DropDownDecoratorProps(
child: Align( decoration: InputDecoration(
alignment: hintText: 'Select TPC Agent',
Alignment.centerLeft, hintStyle: TextStyle(
child: Text( fontSize: 14,
provider color: AppColors.grey_thick,
.tpcAgent[index]
.text!,
), ),
// labelText: 'Select Account',
enabledBorder: OutlineInputBorder(
borderSide: BorderSide.none,
borderRadius: BorderRadius.circular(14),
), ),
focusedBorder: OutlineInputBorder(
borderSide: BorderSide(
color: AppColors.cyan_blue,
), ),
); borderRadius: BorderRadius.circular(14),
},
), ),
disabledBorder: OutlineInputBorder(
borderSide: BorderSide.none,
borderRadius: BorderRadius.circular(14),
), ),
errorBorder: OutlineInputBorder(
borderSide: BorderSide.none,
borderRadius: BorderRadius.circular(14),
), ),
border: OutlineInputBorder(
borderSide: BorderSide.none,
borderRadius: BorderRadius.circular(8),
), ),
], contentPadding:
ddtheme.buttonStyleData.padding,
fillColor: AppColors.text_field_color,
filled: true,
),
),
onBeforePopupOpening: (selectedItem) async {
provider.dropDownSearchController.clear();
return Future.value();
},
// onBeforePopupOpening: () {
// print('Dropdown closed, clearing search');
// provider.dropDownSearchController.clear();
// },
),
//dd
// Container(
// alignment: Alignment.center,
// decoration: BoxDecoration(
// color: AppColors.text_field_color,
// borderRadius: BorderRadius.circular(14),
// ),
// child: ListTile(
// title: TextFormField(
// focusNode: focusNodetpc,
// onTapUpOutside: (event) {
// focusNodetpc.unfocus();
// },
// controller:
// provider.dropDownTpcSearchController,
// onChanged: (value) async {
// Future.delayed(
// Duration(milliseconds: 100),
// () async {
// await provider
// .ordersAddOrderTPCAgentFunction(
// context,
// widget.mode,
// value,
// );
// },
// );
// },
// decoration: InputDecoration(
// enabledBorder: InputBorder.none,
// focusedBorder: InputBorder.none,
// isDense: true,
// contentPadding:
// const EdgeInsets.symmetric(
// horizontal: 0,
// vertical: 8,
// ),
// hintText: 'Select TPC Agent',
// hintStyle: const TextStyle(
// fontSize: 14,
// ),
// border: OutlineInputBorder(
// borderRadius: BorderRadius.circular(
// 8,
// ),
// ),
// ),
// ),
//
// trailing: InkResponse(
// onTap: () {
// if (focusNodetpc.hasFocus) {
// focusNodetpc.unfocus();
// } else {
// FocusScope.of(
// context,
// ).requestFocus(focusNodetpc);
// }
// },
// child: SvgPicture.asset(
// "assets/svg/arrow_dropdown.svg",
// height: 25,
// width: 20,
// ),
// ),
// ),
// ),
// if (provider.tpcAgent.isNotEmpty &&
// focusNodetpc.hasFocus) ...[
// Card(
// margin: EdgeInsets.symmetric(horizontal: 0),
// child: Container(
// padding: EdgeInsets.symmetric(
// horizontal: 10,
// ),
// height: 150,
// decoration: BoxDecoration(
// borderRadius: BorderRadius.circular(16),
// ),
// child: Scrollbar(
// thickness: 2.5,
// radius: Radius.circular(6),
// thumbVisibility: true,
// child: ListView.builder(
// itemCount: provider.tpcAgent.length,
// shrinkWrap: true,
// physics:
// AlwaysScrollableScrollPhysics(),
// itemBuilder: (context, index) {
// return InkResponse(
// onTap: () async {
// if (provider
// .tpcAgent
// .isNotEmpty) {
// provider.selectedTpcAgent =
// provider.tpcAgent[index];
//
// print(
// "Selected Complaint Type: ${provider.tpcAgent[index].text}, ID: ${provider.tpcAgent[index].id}",
// );
// provider.selectedTpcAgentID =
// provider
// .tpcAgent[index]
// .id!;
// provider.selectedTpcAgentValue =
// provider
// .tpcAgent[index]
// .text!;
// print(
// "hfjkshfg" +
// provider
// .selectedTpcAgentID
// .toString(),
// );
// provider
// .dropDownTpcSearchController
// .text = provider
// .tpcAgent[index]
// .text!;
// }
// // provider.ordersAddPaymentSelectOrderAPIFunction(context, provider.selectedAccountID);
// // provider.tpcAgent = [];
// },
// child: SizedBox(
// height: 45,
// child: Align(
// alignment:
// Alignment.centerLeft,
// child: Text(
// provider
// .tpcAgent[index]
// .text!,
// ),
// ),
// ),
// );
// },
// ),
// ),
// ),
// ),
// ],
if (provider.selectedTPCAgentError != null) ...[ if (provider.selectedTPCAgentError != null) ...[
errorWidget( errorWidget(
context, context,
...@@ -1948,17 +2343,18 @@ class _AddorderScreenState extends State<AddorderScreen> { ...@@ -1948,17 +2343,18 @@ class _AddorderScreenState extends State<AddorderScreen> {
errorWidget(context, provider.tpcAmountError), errorWidget(context, provider.tpcAmountError),
], ],
], ],
SizedBox(height: 15,) SizedBox(height: 15),
], ],
), ),
), ),
), ),
), ),
Step( label: Text("Step 4", style: TextStyle(fontSize: 12)), Step(
label: Text("Step 4", style: TextStyle(fontSize: 12)),
title: const Text(''), title: const Text(''),
isActive: _currentStep >= 1, isActive: _currentStep >= 1,
content: content: OrderForm(),
OrderForm(),) ),
], ],
controlsBuilder: (context, details) { controlsBuilder: (context, details) {
return Column( return Column(
...@@ -1971,12 +2367,12 @@ class _AddorderScreenState extends State<AddorderScreen> { ...@@ -1971,12 +2367,12 @@ class _AddorderScreenState extends State<AddorderScreen> {
: () { : () {
print(_currentStep); print(_currentStep);
if (provider.validateForm4()) { if (provider.validateForm4()) {
if(provider.productRows.isNotEmpty){ if (provider.productRows.isNotEmpty) {
provider.submitClicked = true; provider.submitClicked = true;
var order_prod_data =
provider.getFormData(); print(
print(order_prod_data); "Encoded Products : ${provider.getJsonEncodedProducts()}",
print(order_prod_data['orders']); );
provider.getCurrentLocation(); provider.getCurrentLocation();
provider provider
...@@ -1987,7 +2383,8 @@ class _AddorderScreenState extends State<AddorderScreen> { ...@@ -1987,7 +2383,8 @@ class _AddorderScreenState extends State<AddorderScreen> {
provider.selectedAccountID, provider.selectedAccountID,
provider provider
.selectedDispatchDistrictId, .selectedDispatchDistrictId,
provider.selectedDispatchSubLocID, provider
.selectedDispatchSubLocID,
provider.selectedUnloadingScope, provider.selectedUnloadingScope,
provider.selectedFreightScope, provider.selectedFreightScope,
provider.selectedErectionScope, provider.selectedErectionScope,
...@@ -1996,14 +2393,15 @@ class _AddorderScreenState extends State<AddorderScreen> { ...@@ -1996,14 +2393,15 @@ class _AddorderScreenState extends State<AddorderScreen> {
provider.selectedBillingStateID, provider.selectedBillingStateID,
provider provider
.selectedBillingDistrictId, .selectedBillingDistrictId,
provider.selectedBillingSubLocID, provider
.selectedBillingSubLocID,
provider.selectedTpcAgentID, provider.selectedTpcAgentID,
order_prod_data['orders'], provider
.getJsonEncodedProducts(),
); );
}else{ } else {
toast(context, "Add min. 1 product"); toast(context, "Add min. 1 product");
} }
} else { } else {
provider.submitClicked = false; provider.submitClicked = false;
} }
...@@ -2038,19 +2436,18 @@ class _AddorderScreenState extends State<AddorderScreen> { ...@@ -2038,19 +2436,18 @@ class _AddorderScreenState extends State<AddorderScreen> {
onTap: () { onTap: () {
setState(() { setState(() {
if (_currentStep == 0) { if (_currentStep == 0) {
if (provider.validateForm1()){ if (provider.validateForm1()) {
_currentStep = 1; _currentStep = 1;
} }
} else if (_currentStep == 1) { } else if (_currentStep == 1) {
if (provider.validateForm2()) { if (provider.validateForm2()) {
_currentStep = 2; _currentStep = 2;
} }
}else if (_currentStep == 2) { } else if (_currentStep == 2) {
if (provider.validateForm3()) { if (provider.validateForm3()) {
_currentStep = 3; _currentStep = 3;
} }
} } else {
else {
_currentStep = 0; _currentStep = 0;
} }
}); });
...@@ -3646,9 +4043,7 @@ class _AddorderScreenState extends State<AddorderScreen> { ...@@ -3646,9 +4043,7 @@ class _AddorderScreenState extends State<AddorderScreen> {
? null ? null
: () { : () {
provider.submitClicked = true; provider.submitClicked = true;
var order_prod_data = provider.getFormData(); // var order_prod_data = provider.getFormData();
print(order_prod_data);
print(order_prod_data['orders']);
///[{"product_id":"1","qty":"1","price":"500","cgst_p":"9","sgst_p":"9","igst_p":"0","total_price":"500"}, ///[{"product_id":"1","qty":"1","price":"500","cgst_p":"9","sgst_p":"9","igst_p":"0","total_price":"500"},
///{"product_id":"2","qty":"1","price":"1000","cgst_p":"9","sgst_p":"9","igst_p":"0","total_price":"1000"}] ///{"product_id":"2","qty":"1","price":"1000","cgst_p":"9","sgst_p":"9","igst_p":"0","total_price":"1000"}]
...@@ -3658,18 +4053,18 @@ class _AddorderScreenState extends State<AddorderScreen> { ...@@ -3658,18 +4053,18 @@ class _AddorderScreenState extends State<AddorderScreen> {
widget.mode, widget.mode,
provider.selectedEmployeeID, provider.selectedEmployeeID,
provider.selectedAccountID, provider.selectedAccountID,
provider.selectedDispatchStateID,
provider.selectedDispatchDistrictId, provider.selectedDispatchDistrictId,
provider.selectedDispatchSubLocID, provider.selectedDispatchSubLocID,
provider.selectedUnloadingScope, provider.selectedUnloadingScope,
provider.selectedFreightScope, provider.selectedFreightScope,
provider.selectedErectionScope, provider.selectedErectionScope,
provider.selectedTpcStatus, provider.selectedTpcStatus,
provider.selectedTpcStatus,
provider.selectedBillingStateID, provider.selectedBillingStateID,
provider.selectedBillingDistrictId, provider.selectedBillingDistrictId,
provider.selectedBillingSubLocID, provider.selectedBillingSubLocID,
provider.selectedTpcAgentID, provider.selectedTpcAgentID,
order_prod_data['orders'], {},
); );
}, },
child: Container( child: Container(
...@@ -3818,14 +4213,8 @@ class OrderForm extends StatelessWidget { ...@@ -3818,14 +4213,8 @@ class OrderForm extends StatelessWidget {
var res = await Navigator.push( var res = await Navigator.push(
context, context,
MaterialPageRoute( MaterialPageRoute(
builder: builder: (context) => Addorderaddproduct(type: "Add"),
(context) => Addorderaddproduct( settings: RouteSettings(name: 'Addorderaddproduct'),
type: "Add",
),
settings: RouteSettings(
name:
'Addorderaddproduct',
),
), ),
); );
if (res != null) { if (res != null) {
...@@ -3857,28 +4246,22 @@ class OrderForm extends StatelessWidget { ...@@ -3857,28 +4246,22 @@ class OrderForm extends StatelessWidget {
if (provider.productRows.isNotEmpty) ...[ if (provider.productRows.isNotEmpty) ...[
const SizedBox(height: 10), const SizedBox(height: 10),
SizedBox( SizedBox(
height: 200, height: 215,
child: ListView.builder( child: ListView.builder(
scrollDirection: Axis.horizontal, scrollDirection: Axis.horizontal,
itemCount: provider.productRows.length, itemCount: provider.productRows.length,
itemBuilder: (context, index) { itemBuilder: (context, index) {
final product = final product = provider.productRows[index];
provider.productRows[index];
final productName = final productName =
provider.saleProducts provider.saleProducts
.firstWhere( .firstWhere(
(p) => (p) => p.id == product['product_id'],
p.id ==
product['product_id'],
orElse: orElse:
() => SaleProducts( () =>
id: '', SaleProducts(id: '', prodName: 'Unknown'),
prodName: 'Unknown',
),
) )
.prodName; .prodName;
final prodPrice = final prodPrice = product['price'] ?? '-';
product['price'] ?? '-';
final prodQty = product['qty'] ?? '-'; final prodQty = product['qty'] ?? '-';
final totalPrice = product['total_price'] ?? '-'; final totalPrice = product['total_price'] ?? '-';
final cgstPercent = product['cgst_p'] ?? '-'; final cgstPercent = product['cgst_p'] ?? '-';
...@@ -3891,15 +4274,11 @@ class OrderForm extends StatelessWidget { ...@@ -3891,15 +4274,11 @@ class OrderForm extends StatelessWidget {
context, context,
MaterialPageRoute( MaterialPageRoute(
builder: builder:
(context) => (context) => Addorderaddproduct(
Addorderaddproduct(
type: "Edit", type: "Edit",
editIndex: index, editIndex: index,
), ),
settings: RouteSettings( settings: RouteSettings(name: 'Addorderaddproduct'),
name:
'Addorderaddproduct',
),
), ),
); );
if (res != null) { if (res != null) {
...@@ -3907,21 +4286,11 @@ class OrderForm extends StatelessWidget { ...@@ -3907,21 +4286,11 @@ class OrderForm extends StatelessWidget {
} }
}, },
child: Container( child: Container(
width: width: MediaQuery.of(context).size.width * 0.8,
MediaQuery.of(
context,
).size.width *
0.8,
margin: EdgeInsets.only( margin: EdgeInsets.only(
left: index == 0 ? 10 : 5, left: index == 0 ? 10 : 5,
right: right:
index == index == provider.productRows.length - 1 ? 10 : 5,
provider
.productRows
.length -
1
? 10
: 5,
bottom: 5, bottom: 5,
), ),
padding: EdgeInsets.symmetric( padding: EdgeInsets.symmetric(
...@@ -3930,16 +4299,13 @@ class OrderForm extends StatelessWidget { ...@@ -3930,16 +4299,13 @@ class OrderForm extends StatelessWidget {
), ),
decoration: BoxDecoration( decoration: BoxDecoration(
color: Color(0xFFE6F6FF), color: Color(0xFFE6F6FF),
borderRadius: borderRadius: BorderRadius.circular(14),
BorderRadius.circular(14),
), ),
child: Column( child: Column(
children: [ children: [
Row( Row(
mainAxisAlignment: mainAxisAlignment: MainAxisAlignment.start,
MainAxisAlignment.start, crossAxisAlignment: CrossAxisAlignment.start,
crossAxisAlignment:
CrossAxisAlignment.start,
children: [ children: [
Expanded( Expanded(
flex: 1, flex: 1,
...@@ -3952,46 +4318,33 @@ class OrderForm extends StatelessWidget { ...@@ -3952,46 +4318,33 @@ class OrderForm extends StatelessWidget {
flex: 6, flex: 6,
child: Column( child: Column(
crossAxisAlignment: crossAxisAlignment:
CrossAxisAlignment CrossAxisAlignment.start,
.start, mainAxisAlignment: MainAxisAlignment.start,
mainAxisAlignment:
MainAxisAlignment.start,
children: [ children: [
Row( Row(
children: [ children: [
Expanded( Expanded(
flex: 4, flex: 4,
child: Text( child: Text(
productName ?? productName ?? "-",
"-",
maxLines: 2, maxLines: 2,
overflow: overflow: TextOverflow.ellipsis,
TextOverflow
.ellipsis,
style: TextStyle( style: TextStyle(
fontFamily: fontFamily: "JakartaMedium",
"JakartaMedium",
fontSize: 14, fontSize: 14,
color: color: AppColors.semi_black,
AppColors
.semi_black,
), ),
), ),
), ),
Expanded( Expanded(
flex: 3, flex: 3,
child: Text( child: Text(
textAlign: textAlign: TextAlign.right,
TextAlign
.right,
"₹$prodPrice", "₹$prodPrice",
style: TextStyle( style: TextStyle(
fontFamily: fontFamily: "JakartaMedium",
"JakartaMedium",
fontSize: 14, fontSize: 14,
color: color: AppColors.semi_black,
AppColors
.semi_black,
), ),
), ),
), ),
...@@ -4000,25 +4353,19 @@ class OrderForm extends StatelessWidget { ...@@ -4000,25 +4353,19 @@ class OrderForm extends StatelessWidget {
Text( Text(
"x $prodQty", "x $prodQty",
style: TextStyle( style: TextStyle(
fontFamily: fontFamily: "JakartaMedium",
"JakartaMedium",
fontSize: 14, fontSize: 14,
color: color: AppColors.grey_semi,
AppColors
.grey_semi,
), ),
), ),
SizedBox(height: 5), SizedBox(height: 5),
], ],
), ),
), ),
], ],
), ),
Container( Container(
padding: EdgeInsets.symmetric( padding: EdgeInsets.symmetric(vertical: 2),
vertical: 3,
),
child: Row( child: Row(
children: [ children: [
Expanded( Expanded(
...@@ -4046,24 +4393,21 @@ class OrderForm extends StatelessWidget { ...@@ -4046,24 +4393,21 @@ class OrderForm extends StatelessWidget {
), ),
...List.generate(4, (j) { ...List.generate(4, (j) {
final heads = [ final heads = [
"Total Price",
"CGST", "CGST",
"SGST", "SGST",
"IGST", "IGST",
"Total Amount",
]; ];
final subHeads = [ final subHeads = [
"₹ $totalPrice",
"$cgstPercent %", "$cgstPercent %",
"$sgstPercent %", "$sgstPercent %",
"$igstPerecent %", "$igstPerecent %",
"₹ $totalPrice",
]; ];
return Container( return Container(
padding: EdgeInsets.symmetric( padding: EdgeInsets.symmetric(vertical: 3),
vertical: 3,
),
child: Row( child: Row(
crossAxisAlignment: crossAxisAlignment: CrossAxisAlignment.start,
CrossAxisAlignment.start,
children: [ children: [
Expanded( Expanded(
child: Text( child: Text(
...@@ -4079,9 +4423,7 @@ class OrderForm extends StatelessWidget { ...@@ -4079,9 +4423,7 @@ class OrderForm extends StatelessWidget {
Expanded( Expanded(
child: Text( child: Text(
textAlign: TextAlign.right, textAlign: TextAlign.right,
subHeads[j] == "" subHeads[j] == "" ? "-" : subHeads[j],
? "-"
: subHeads[j],
style: TextStyle( style: TextStyle(
fontSize: 14, fontSize: 14,
color: Color(0xFF818181), color: Color(0xFF818181),
...@@ -4100,8 +4442,8 @@ class OrderForm extends StatelessWidget { ...@@ -4100,8 +4442,8 @@ class OrderForm extends StatelessWidget {
), ),
), ),
], ],
if(provider.productsEmptyError!=null)...[ if (provider.productsEmptyError != null) ...[
errorWidget(context, provider.productsEmptyError) errorWidget(context, provider.productsEmptyError),
], ],
// Product Rows (Horizontal ListView) // Product Rows (Horizontal ListView)
// if (provider.ProductControllers.isNotEmpty) ...[ // if (provider.ProductControllers.isNotEmpty) ...[
......
...@@ -123,7 +123,9 @@ class _AddtpcagentScreenState extends State<AddtpcagentScreen> { ...@@ -123,7 +123,9 @@ class _AddtpcagentScreenState extends State<AddtpcagentScreen> {
false, false,
FilteringTextInputFormatter.digitsOnly, FilteringTextInputFormatter.digitsOnly,
focusNodes[1], focusNodes[1],
focusNodes[2],TextInputAction.next,10 focusNodes[2],
TextInputAction.next,
10
), ),
if (provider.tpcMobileNumberError != null) ...[ if (provider.tpcMobileNumberError != null) ...[
errorWidget(context, provider.tpcMobileNumberError), errorWidget(context, provider.tpcMobileNumberError),
......
...@@ -63,11 +63,12 @@ class _EditorderaccountdetailsState extends State<Editorderaccountdetails> { ...@@ -63,11 +63,12 @@ class _EditorderaccountdetailsState extends State<Editorderaccountdetails> {
child: Scaffold( child: Scaffold(
resizeToAvoidBottomInset: true, resizeToAvoidBottomInset: true,
backgroundColor: AppColors.white, backgroundColor: AppColors.white,
appBar: appbar2( appBar: appbar2New(
context, context,
"${widget.pageTitleName}", "${widget.pageTitleName}",
provider.resetForm, provider.resetForm,
SizedBox(width: 0), SizedBox(width: 0),
0xFFFFFFFF
), ),
body: Container( body: Container(
padding: EdgeInsets.symmetric(horizontal: 10), padding: EdgeInsets.symmetric(horizontal: 10),
...@@ -538,7 +539,7 @@ class _EditorderaccountdetailsState extends State<Editorderaccountdetails> { ...@@ -538,7 +539,7 @@ class _EditorderaccountdetailsState extends State<Editorderaccountdetails> {
), ),
), ),
onWillPop: () async { onWillPop: () async {
provider.resetForm();
return _onBackPressed(context); return _onBackPressed(context);
}, },
); );
......
...@@ -146,7 +146,7 @@ class _OrdermoduledashboardState extends State<Ordermoduledashboard> { ...@@ -146,7 +146,7 @@ class _OrdermoduledashboardState extends State<Ordermoduledashboard> {
image: AssetImage( image: AssetImage(
"assets/svg/order/main_dashboard.png", "assets/svg/order/main_dashboard.png",
), ),
fit: BoxFit.contain, fit: BoxFit.fitWidth,
), ),
gradient: LinearGradient( gradient: LinearGradient(
colors: [ colors: [
...@@ -158,117 +158,117 @@ class _OrdermoduledashboardState extends State<Ordermoduledashboard> { ...@@ -158,117 +158,117 @@ class _OrdermoduledashboardState extends State<Ordermoduledashboard> {
), ),
), ),
), ),
if (provider.ordersgain.length > 0) ...[ // if (provider.ordersgain.length > 0) ...[
Container( // Container(
padding: EdgeInsets.symmetric( // padding: EdgeInsets.symmetric(
horizontal: 10, // horizontal: 10,
vertical: 5, // vertical: 5,
), // ),
margin: EdgeInsets.only(bottom: 10), // margin: EdgeInsets.only(bottom: 10),
decoration: BoxDecoration( // decoration: BoxDecoration(
color: Colors.white, // color: Colors.white,
borderRadius: BorderRadius.vertical( // borderRadius: BorderRadius.vertical(
bottom: Radius.circular(16), // bottom: Radius.circular(16),
), // ),
), // ),
height: MediaQuery.of(context).size.height * 0.25, // height: MediaQuery.of(context).size.height * 0.25,
child: GridView.builder( // child: GridView.builder(
padding: EdgeInsets.symmetric( // padding: EdgeInsets.symmetric(
horizontal: 0, // horizontal: 0,
vertical: 5, // vertical: 5,
), // ),
itemCount: provider.ordersgain.length, // itemCount: provider.ordersgain.length,
shrinkWrap: true, // shrinkWrap: true,
scrollDirection: Axis.horizontal, // scrollDirection: Axis.horizontal,
physics: AlwaysScrollableScrollPhysics(), // physics: AlwaysScrollableScrollPhysics(),
gridDelegate: // gridDelegate:
SliverGridDelegateWithFixedCrossAxisCount( // SliverGridDelegateWithFixedCrossAxisCount(
crossAxisCount: 2, // crossAxisCount: 2,
crossAxisSpacing: 10, // crossAxisSpacing: 10,
mainAxisSpacing: 10, // mainAxisSpacing: 10,
childAspectRatio: 55 / 100, // childAspectRatio: 55 / 100,
), // ),
itemBuilder: (context, jndex) { // itemBuilder: (context, jndex) {
final icons = ["comm_ic_1", "comm_ic_2"]; // final icons = ["comm_ic_1", "comm_ic_2"];
final leadTitles = [ // final leadTitles = [
'Order Gain', // 'Order Gain',
'Dispatched', // 'Dispatched',
'Pending Tasks', // 'Pending Tasks',
'Quotation Generated', // 'Quotation Generated',
]; // ];
final assetNames = [ // final assetNames = [
"assets/svg/crm/open_leads_ic.svg", // "assets/svg/crm/open_leads_ic.svg",
"assets/svg/crm/today_visits_ic.svg", // "assets/svg/crm/today_visits_ic.svg",
"assets/svg/crm/pending_tasks_ic.svg", // "assets/svg/crm/pending_tasks_ic.svg",
"assets/svg/crm/quotes_generated_ic.svg", // "assets/svg/crm/quotes_generated_ic.svg",
]; // ];
//
final colors = [ // final colors = [
0xFFE7FFE5, // 0xFFE7FFE5,
0xFFFFFCD5, // 0xFFFFFCD5,
0xFFEEF1FF, // 0xFFEEF1FF,
0xFFF3EDFF, // 0xFFF3EDFF,
]; // ];
final textcolors = [ // final textcolors = [
0xFF0D9C00, // 0xFF0D9C00,
0xFF605C00, // 0xFF605C00,
0xFF6563FF, // 0xFF6563FF,
0xFF493272, // 0xFF493272,
]; // ];
//
return InkResponse( // return InkResponse(
child: Container( // child: Container(
padding: EdgeInsets.symmetric( // padding: EdgeInsets.symmetric(
horizontal: 13, // horizontal: 13,
), // ),
decoration: BoxDecoration( // decoration: BoxDecoration(
color: Color(colors[jndex]), // color: Color(colors[jndex]),
borderRadius: BorderRadius.circular(20), // borderRadius: BorderRadius.circular(20),
), // ),
child: Column( // child: Column(
crossAxisAlignment: // crossAxisAlignment:
CrossAxisAlignment.start, // CrossAxisAlignment.start,
mainAxisAlignment: // mainAxisAlignment:
MainAxisAlignment.center, // MainAxisAlignment.center,
children: [ // children: [
Text( // Text(
provider.ordersgain[jndex].count // provider.ordersgain[jndex].count
.toString(), // .toString(),
style: TextStyle( // style: TextStyle(
fontSize: 20, // fontSize: 20,
fontFamily: "JakartaMedium", // fontFamily: "JakartaMedium",
color: Color(textcolors[jndex]), // color: Color(textcolors[jndex]),
), // ),
), // ),
Row( // Row(
children: [ // children: [
Expanded( // Expanded(
flex: 3, // flex: 3,
child: Text( // child: Text(
leadTitles[jndex], // leadTitles[jndex],
style: TextStyle( // style: TextStyle(
fontSize: 14, // fontSize: 14,
fontFamily: "JakartaRegular", // fontFamily: "JakartaRegular",
color: AppColors.semi_black, // color: AppColors.semi_black,
), // ),
), // ),
), // ),
Expanded( // Expanded(
flex: 1, // flex: 1,
child: SvgPicture.asset( // child: SvgPicture.asset(
assetNames[jndex], // assetNames[jndex],
), // ),
), // ),
], // ],
), // ),
], // ],
), // ),
), // ),
); // );
}, // },
), // ),
), // ),
], // ],
], ],
), ),
), ),
......
...@@ -7,6 +7,7 @@ import 'package:flutter/services.dart'; ...@@ -7,6 +7,7 @@ import 'package:flutter/services.dart';
import 'package:flutter_svg/svg.dart'; import 'package:flutter_svg/svg.dart';
import 'package:generp/Notifiers/ordersProvider/dispatchOrderProvider.dart'; import 'package:generp/Notifiers/ordersProvider/dispatchOrderProvider.dart';
import 'package:generp/Notifiers/ordersProvider/pagesDashboardProvider.dart'; import 'package:generp/Notifiers/ordersProvider/pagesDashboardProvider.dart';
import 'package:generp/Utils/GlobalConstants.dart';
import 'package:generp/Utils/dropdownTheme.dart'; import 'package:generp/Utils/dropdownTheme.dart';
import 'package:generp/screens/screensExports.dart'; import 'package:generp/screens/screensExports.dart';
import 'package:provider/provider.dart'; import 'package:provider/provider.dart';
...@@ -344,14 +345,14 @@ class _OrdersdetailsbymodesState extends State<Ordersdetailsbymodes> { ...@@ -344,14 +345,14 @@ class _OrdersdetailsbymodesState extends State<Ordersdetailsbymodes> {
"Account Name", "Account Name",
"Sales Person Name", "Sales Person Name",
"Order Received Date", "Order Received Date",
"OTP", // "OTP",
]; ];
final subHeadings2 = [ final subHeadings2 = [
provider.orderDetails.orderNumber ?? "-", provider.orderDetails.orderNumber ?? "-",
provider.orderDetails.accountName ?? "-", provider.orderDetails.accountName ?? "-",
provider.orderDetails.salesPersonEmpName ?? "-", provider.orderDetails.salesPersonEmpName ?? "-",
provider.orderDetails.orderReceivedDate ?? "-", provider.orderDetails.orderReceivedDate ?? "-",
provider.orderDetails.otp ?? "-", // provider.orderDetails.otp ?? "-",
]; ];
final headings3 = [ final headings3 = [
...@@ -503,17 +504,11 @@ class _OrdersdetailsbymodesState extends State<Ordersdetailsbymodes> { ...@@ -503,17 +504,11 @@ class _OrdersdetailsbymodesState extends State<Ordersdetailsbymodes> {
], ],
]; ];
return WillPopScope( return Scaffold(
child: SafeArea(
top: false,
bottom: Platform.isIOS ? false : true,
child: Scaffold(
resizeToAvoidBottomInset: true, resizeToAvoidBottomInset: true,
appBar: appbar2New( appBar: appbar2New(
context, context,
widget.mode == "" "Order Details",
? "Order Details"
: "Order Details (${widget.mode})",
provider.resetAll, provider.resetAll,
SizedBox.shrink(), SizedBox.shrink(),
0xFFFFFFFF, 0xFFFFFFFF,
...@@ -601,7 +596,7 @@ class _OrdersdetailsbymodesState extends State<Ordersdetailsbymodes> { ...@@ -601,7 +596,7 @@ class _OrdersdetailsbymodesState extends State<Ordersdetailsbymodes> {
Text( Text(
orderDetails.balanceAmount == "" orderDetails.balanceAmount == ""
? "-" ? "-"
: "${orderDetails.balanceAmount}", : "${orderDetails.balanceAmount}",
style: TextStyle( style: TextStyle(
fontFamily: "JakartaRegular", fontFamily: "JakartaRegular",
fontSize: 14, fontSize: 14,
...@@ -654,16 +649,14 @@ class _OrdersdetailsbymodesState extends State<Ordersdetailsbymodes> { ...@@ -654,16 +649,14 @@ class _OrdersdetailsbymodesState extends State<Ordersdetailsbymodes> {
mode: widget.mode, mode: widget.mode,
pageTitleName: "Edit Order", pageTitleName: "Edit Order",
orderID: orderID:
provider widget.orderId,
.orderDetails
.id,
), ),
settings: RouteSettings( settings: RouteSettings(
name: 'Editorderaccountdetails', name: 'Editorderaccountdetails',
), ),
), ),
); );
if (res == true) { if (routeSettingName == 'Editorderaccountdetails') {
provider.ordersDetailsByModeAPIFunction( provider.ordersDetailsByModeAPIFunction(
context, context,
widget.orderId, widget.orderId,
...@@ -1948,7 +1941,7 @@ class _OrdersdetailsbymodesState extends State<Ordersdetailsbymodes> { ...@@ -1948,7 +1941,7 @@ class _OrdersdetailsbymodesState extends State<Ordersdetailsbymodes> {
SizedBox(width: 10), SizedBox(width: 10),
], ],
if (["admin"].contains(widget.mode)) ...[ if (widget.mode=="admin") ...[
SvgPicture.asset( SvgPicture.asset(
"assets/svg/crm/vertical_line_ic.svg", "assets/svg/crm/vertical_line_ic.svg",
), ),
...@@ -2035,12 +2028,6 @@ class _OrdersdetailsbymodesState extends State<Ordersdetailsbymodes> { ...@@ -2035,12 +2028,6 @@ class _OrdersdetailsbymodesState extends State<Ordersdetailsbymodes> {
), ),
), ),
), ),
),
),
onWillPop: () {
return onBackPressed(context);
},
); );
}, },
); );
......
...@@ -3,6 +3,7 @@ import 'dart:io'; ...@@ -3,6 +3,7 @@ import 'dart:io';
import 'package:dropdown_button2/dropdown_button2.dart'; import 'package:dropdown_button2/dropdown_button2.dart';
import 'package:flutter/material.dart'; import 'package:flutter/material.dart';
import 'package:flutter_svg/svg.dart'; import 'package:flutter_svg/svg.dart';
import 'package:generp/Utils/GlobalConstants.dart';
import 'package:generp/screens/order/ordersDetailsByModes.dart'; import 'package:generp/screens/order/ordersDetailsByModes.dart';
import 'package:provider/provider.dart'; import 'package:provider/provider.dart';
...@@ -228,7 +229,7 @@ class _OrderslistbyModesState extends State<OrderslistbyModes> { ...@@ -228,7 +229,7 @@ class _OrderslistbyModesState extends State<OrderslistbyModes> {
itemCount: ordersList.length, itemCount: ordersList.length,
shrinkWrap: true, shrinkWrap: true,
physics: NeverScrollableScrollPhysics(), physics: NeverScrollableScrollPhysics(),
itemBuilder: (context, index) { itemBuilder: (context, ol) {
if (ordersList.isEmpty) { if (ordersList.isEmpty) {
return SizedBox( return SizedBox(
child: Center(child: Text("No Data Available")), child: Center(child: Text("No Data Available")),
...@@ -243,12 +244,13 @@ class _OrderslistbyModesState extends State<OrderslistbyModes> { ...@@ -243,12 +244,13 @@ class _OrderslistbyModesState extends State<OrderslistbyModes> {
builder: builder:
(context) => Ordersdetailsbymodes( (context) => Ordersdetailsbymodes(
pageTitleName: widget.pageTitleName, pageTitleName: widget.pageTitleName,
orderId: ordersList[index].orderId, orderId: ordersList[ol].orderId,
mode: widget.mode, mode: widget.mode,
), ),
settings: RouteSettings(name: "Ordersdetailsbymodes")
), ),
); );
if (res == true) { if (routeSettingName == "Ordersdetailsbymodes") {
provider.ordersListByModeFilterAPIFunction( provider.ordersListByModeFilterAPIFunction(
context, context,
widget.mode, widget.mode,
...@@ -303,21 +305,21 @@ class _OrderslistbyModesState extends State<OrderslistbyModes> { ...@@ -303,21 +305,21 @@ class _OrderslistbyModesState extends State<OrderslistbyModes> {
padding: EdgeInsets.all(8.0), padding: EdgeInsets.all(8.0),
decoration: BoxDecoration( decoration: BoxDecoration(
color: getDecorationColor( color: getDecorationColor(
ordersList[index].status, ordersList[ol].status,
), ),
shape: BoxShape.circle, shape: BoxShape.circle,
), ),
child: Center( child: Center(
child: Text( child: Text(
getText( getText(
ordersList[index].status, ordersList[ol].status,
), ),
style: TextStyle( style: TextStyle(
color: getTextColor( color: getTextColor(
ordersList[index].status, ordersList[ol].status,
), ),
fontSize: getSize( fontSize: getSize(
ordersList[index].status, ordersList[ol].status,
), ),
fontFamily: "JakartaBold", fontFamily: "JakartaBold",
), ),
...@@ -334,7 +336,7 @@ class _OrderslistbyModesState extends State<OrderslistbyModes> { ...@@ -334,7 +336,7 @@ class _OrderslistbyModesState extends State<OrderslistbyModes> {
CrossAxisAlignment.start, CrossAxisAlignment.start,
children: [ children: [
Text( Text(
ordersList[index] ordersList[ol]
.accountName!, .accountName!,
maxLines: 1, maxLines: 1,
overflow: overflow:
...@@ -347,7 +349,7 @@ class _OrderslistbyModesState extends State<OrderslistbyModes> { ...@@ -347,7 +349,7 @@ class _OrderslistbyModesState extends State<OrderslistbyModes> {
), ),
), ),
Text( Text(
ordersList[index] ordersList[ol]
.orderNumber!, .orderNumber!,
style: TextStyle( style: TextStyle(
fontSize: 14, fontSize: 14,
...@@ -370,7 +372,7 @@ class _OrderslistbyModesState extends State<OrderslistbyModes> { ...@@ -370,7 +372,7 @@ class _OrderslistbyModesState extends State<OrderslistbyModes> {
child: Container( child: Container(
child: Text( child: Text(
"₹" "₹"
"${ordersList[index].balanceAmount}", "${ordersList[ol].balanceAmount}",
textAlign: TextAlign.right, textAlign: TextAlign.right,
style: TextStyle( style: TextStyle(
fontFamily: "JakartaMedium", fontFamily: "JakartaMedium",
......
...@@ -46,6 +46,7 @@ class _TpcagentdetailsbymodeState extends State<Tpcagentdetailsbymode> { ...@@ -46,6 +46,7 @@ class _TpcagentdetailsbymodeState extends State<Tpcagentdetailsbymode> {
WidgetsBinding.instance.addPostFrameCallback((timeStamp) { WidgetsBinding.instance.addPostFrameCallback((timeStamp) {
var provider = Provider.of<Tpcagentsprovider>(context, listen: false); var provider = Provider.of<Tpcagentsprovider>(context, listen: false);
provider.TPCAgentsDetailsAPIFunction(context, widget.tpcAgentId); provider.TPCAgentsDetailsAPIFunction(context, widget.tpcAgentId);
provider.showMoreDetails = false;
}); });
} }
...@@ -128,11 +129,7 @@ class _TpcagentdetailsbymodeState extends State<Tpcagentdetailsbymode> { ...@@ -128,11 +129,7 @@ class _TpcagentdetailsbymodeState extends State<Tpcagentdetailsbymode> {
"subHeadings": subHeadings2, "subHeadings": subHeadings2,
}, },
]; ];
return WillPopScope( return Scaffold(
child: SafeArea(
top: false,
bottom: Platform.isIOS ? false : true,
child: Scaffold(
resizeToAvoidBottomInset: true, resizeToAvoidBottomInset: true,
appBar: appbar2New( appBar: appbar2New(
context, context,
...@@ -298,9 +295,7 @@ class _TpcagentdetailsbymodeState extends State<Tpcagentdetailsbymode> { ...@@ -298,9 +295,7 @@ class _TpcagentdetailsbymodeState extends State<Tpcagentdetailsbymode> {
) { ) {
if (headings[j] == "ID Proof" && if (headings[j] == "ID Proof" &&
tpcAgentDetails tpcAgentDetails
.idProofDirFilePath! .idProofDirFilePath=="") {
.trim()
.isEmpty) {
return SizedBox.shrink(); return SizedBox.shrink();
} }
return Container( return Container(
...@@ -500,6 +495,7 @@ class _TpcagentdetailsbymodeState extends State<Tpcagentdetailsbymode> { ...@@ -500,6 +495,7 @@ class _TpcagentdetailsbymodeState extends State<Tpcagentdetailsbymode> {
), ),
margin: EdgeInsets.symmetric( margin: EdgeInsets.symmetric(
horizontal: 5, horizontal: 5,
vertical: 5
), ),
child: Column( child: Column(
...@@ -728,12 +724,6 @@ class _TpcagentdetailsbymodeState extends State<Tpcagentdetailsbymode> { ...@@ -728,12 +724,6 @@ class _TpcagentdetailsbymodeState extends State<Tpcagentdetailsbymode> {
], ],
), ),
), ),
),
),
onWillPop: () {
return onBackPressed(context);
},
); );
}, },
); );
...@@ -825,6 +815,7 @@ class _TpcagentdetailsbymodeState extends State<Tpcagentdetailsbymode> { ...@@ -825,6 +815,7 @@ class _TpcagentdetailsbymodeState extends State<Tpcagentdetailsbymode> {
), ),
Divider(thickness: 0.5, color: Color(0xFFD7D7D7)), Divider(thickness: 0.5, color: Color(0xFFD7D7D7)),
...List.generate(provider.subHeadings.length, (j) { ...List.generate(provider.subHeadings.length, (j) {
return Container( return Container(
padding: EdgeInsets.symmetric(vertical: 7), padding: EdgeInsets.symmetric(vertical: 7),
child: Row( child: Row(
......
...@@ -69,7 +69,7 @@ class _TpcagentissuelistState extends State<Tpcagentissuelist> { ...@@ -69,7 +69,7 @@ class _TpcagentissuelistState extends State<Tpcagentissuelist> {
? Platform.isAndroid ? Platform.isAndroid
? WillPopScope( ? WillPopScope(
onWillPop: () { onWillPop: () {
Provider.of<Tpcagentsprovider>(context).resetAll(); Provider.of<Tpcagentsprovider>(context,listen: false).resetAll();
return onBackPressed(context); return onBackPressed(context);
}, },
child: SafeArea( child: SafeArea(
...@@ -87,15 +87,7 @@ class _TpcagentissuelistState extends State<Tpcagentissuelist> { ...@@ -87,15 +87,7 @@ class _TpcagentissuelistState extends State<Tpcagentissuelist> {
return Consumer<Tpcagentsprovider>( return Consumer<Tpcagentsprovider>(
builder: (context, provider, child) { builder: (context, provider, child) {
final tpcAgentsIssueList = provider.tpcAgentsIssueList; final tpcAgentsIssueList = provider.tpcAgentsIssueList;
return WillPopScope( return Scaffold(
onWillPop: () {
provider.resetAll();
return onBackPressed(context);
},
child: SafeArea(
top: false,
bottom: Platform.isIOS?false:true,
child: Scaffold(
resizeToAvoidBottomInset: true, resizeToAvoidBottomInset: true,
appBar: appbar2New( appBar: appbar2New(
context, context,
...@@ -244,8 +236,6 @@ class _TpcagentissuelistState extends State<Tpcagentissuelist> { ...@@ -244,8 +236,6 @@ class _TpcagentissuelistState extends State<Tpcagentissuelist> {
], ],
), ),
) : Emptywidget(context), ) : Emptywidget(context),
),
),
); );
}, },
); );
......
...@@ -351,11 +351,7 @@ class _TpcagentissuelistdetailsState extends State<Tpcagentissuelistdetails> { ...@@ -351,11 +351,7 @@ class _TpcagentissuelistdetailsState extends State<Tpcagentissuelistdetails> {
], ],
]; ];
return WillPopScope( return Scaffold(
child: SafeArea(
top: false,
bottom: Platform.isIOS?false:true,
child: Scaffold(
resizeToAvoidBottomInset: true, resizeToAvoidBottomInset: true,
appBar: appbar2New(context, widget.pageTitleName, provider.resetAll, appBar: appbar2New(context, widget.pageTitleName, provider.resetAll,
SizedBox.shrink(), SizedBox.shrink(),
...@@ -672,7 +668,7 @@ class _TpcagentissuelistdetailsState extends State<Tpcagentissuelistdetails> { ...@@ -672,7 +668,7 @@ class _TpcagentissuelistdetailsState extends State<Tpcagentissuelistdetails> {
SizedBox( SizedBox(
width: double.infinity, width: double.infinity,
height: 300, height: 260,
child: ListView.builder( child: ListView.builder(
physics: AlwaysScrollableScrollPhysics(), physics: AlwaysScrollableScrollPhysics(),
shrinkWrap: true, shrinkWrap: true,
...@@ -684,7 +680,7 @@ class _TpcagentissuelistdetailsState extends State<Tpcagentissuelistdetails> { ...@@ -684,7 +680,7 @@ class _TpcagentissuelistdetailsState extends State<Tpcagentissuelistdetails> {
itemCount: productsHistory.length, itemCount: productsHistory.length,
itemBuilder: (context, lp) { itemBuilder: (context, lp) {
return Container( return Container(
height: 300, height: 260,
width: width:
MediaQuery.of(context).size.width * 0.9, MediaQuery.of(context).size.width * 0.9,
decoration: BoxDecoration( decoration: BoxDecoration(
...@@ -747,11 +743,11 @@ class _TpcagentissuelistdetailsState extends State<Tpcagentissuelistdetails> { ...@@ -747,11 +743,11 @@ class _TpcagentissuelistdetailsState extends State<Tpcagentissuelistdetails> {
), ),
), ),
Expanded( Expanded(
flex: 2, flex: 3,
child: Text( child: Text(
textAlign: textAlign:
TextAlign.right, TextAlign.right,
"₹${productsHistory[lp].unitPrice ?? "-"}", "₹${productsHistory[lp].totalPrice ?? "-"}",
style: TextStyle( style: TextStyle(
fontFamily: fontFamily:
"JakartaMedium", "JakartaMedium",
...@@ -772,7 +768,7 @@ class _TpcagentissuelistdetailsState extends State<Tpcagentissuelistdetails> { ...@@ -772,7 +768,7 @@ class _TpcagentissuelistdetailsState extends State<Tpcagentissuelistdetails> {
color: AppColors.grey_semi, color: AppColors.grey_semi,
), ),
), ),
SizedBox(height: 5),
// DottedLine( // DottedLine(
// dashGapLength: 4, // dashGapLength: 4,
// dashGapColor: Colors.white, // dashGapColor: Colors.white,
...@@ -941,13 +937,13 @@ class _TpcagentissuelistdetailsState extends State<Tpcagentissuelistdetails> { ...@@ -941,13 +937,13 @@ class _TpcagentissuelistdetailsState extends State<Tpcagentissuelistdetails> {
], ],
), ),
), ),
...List.generate(2, (j) { ...List.generate(1, (j) {
final heads = [ final heads = [
"Unit Price", // "Unit Price",
"Total Price" "Total Price"
]; ];
final subHeads = [ final subHeads = [
"₹ ${productsHistory[lp].unitPrice ?? "-"}", // "₹ ${productsHistory[lp].unitPrice ?? "-"}",
"₹ ${productsHistory[lp].totalPrice ?? "-"}", "₹ ${productsHistory[lp].totalPrice ?? "-"}",
]; ];
return Container( return Container(
...@@ -1107,6 +1103,7 @@ class _TpcagentissuelistdetailsState extends State<Tpcagentissuelistdetails> { ...@@ -1107,6 +1103,7 @@ class _TpcagentissuelistdetailsState extends State<Tpcagentissuelistdetails> {
margin: EdgeInsets.symmetric(horizontal: 5), margin: EdgeInsets.symmetric(horizontal: 5),
child: Column( child: Column(
crossAxisAlignment: CrossAxisAlignment.start,
children: [ children: [
Row( Row(
mainAxisAlignment: mainAxisAlignment:
...@@ -1144,6 +1141,8 @@ class _TpcagentissuelistdetailsState extends State<Tpcagentissuelistdetails> { ...@@ -1144,6 +1141,8 @@ class _TpcagentissuelistdetailsState extends State<Tpcagentissuelistdetails> {
feedbackHistory[lp] feedbackHistory[lp]
.employeNaem ?? .employeNaem ??
"-", "-",
maxLines: 2,
overflow: TextOverflow.ellipsis,
style: TextStyle( style: TextStyle(
fontFamily: fontFamily:
"JakartaMedium", "JakartaMedium",
...@@ -1170,7 +1169,7 @@ class _TpcagentissuelistdetailsState extends State<Tpcagentissuelistdetails> { ...@@ -1170,7 +1169,7 @@ class _TpcagentissuelistdetailsState extends State<Tpcagentissuelistdetails> {
), ),
), ),
Expanded( Expanded(
flex: 2, flex: 4,
child: Container( child: Container(
decoration: BoxDecoration( decoration: BoxDecoration(
borderRadius: borderRadius:
...@@ -1694,12 +1693,6 @@ class _TpcagentissuelistdetailsState extends State<Tpcagentissuelistdetails> { ...@@ -1694,12 +1693,6 @@ class _TpcagentissuelistdetailsState extends State<Tpcagentissuelistdetails> {
), ),
), ),
),
),
onWillPop: () {
return onBackPressed(context);
},
); );
}, },
); );
......
...@@ -71,7 +71,7 @@ class _TpcagentlistbymodeState extends State<Tpcagentlistbymode> { ...@@ -71,7 +71,7 @@ class _TpcagentlistbymodeState extends State<Tpcagentlistbymode> {
? Platform.isAndroid ? Platform.isAndroid
? WillPopScope( ? WillPopScope(
onWillPop: () { onWillPop: () {
Provider.of<Tpcagentsprovider>(context).resetAll(); Provider.of<Tpcagentsprovider>(context,listen: false).resetAll();
return onBackPressed(context); return onBackPressed(context);
}, },
child: SafeArea( child: SafeArea(
...@@ -89,15 +89,7 @@ class _TpcagentlistbymodeState extends State<Tpcagentlistbymode> { ...@@ -89,15 +89,7 @@ class _TpcagentlistbymodeState extends State<Tpcagentlistbymode> {
return Consumer<Tpcagentsprovider>( return Consumer<Tpcagentsprovider>(
builder: (context, provider, child) { builder: (context, provider, child) {
final tpcAgentsLists = provider.tpcAgentsList; final tpcAgentsLists = provider.tpcAgentsList;
return WillPopScope( return Scaffold(
onWillPop: () {
provider.resetAll();
return onBackPressed(context);
},
child: SafeArea(
top: false,
bottom: Platform.isIOS?false:true,
child: Scaffold(
resizeToAvoidBottomInset: true, resizeToAvoidBottomInset: true,
appBar: appbar2New( appBar: appbar2New(
context, context,
...@@ -250,8 +242,6 @@ class _TpcagentlistbymodeState extends State<Tpcagentlistbymode> { ...@@ -250,8 +242,6 @@ class _TpcagentlistbymodeState extends State<Tpcagentlistbymode> {
], ],
), ),
) : Emptywidget(context), ) : Emptywidget(context),
),
),
); );
}, },
); );
......
...@@ -2463,7 +2463,7 @@ class ApiCalling { ...@@ -2463,7 +2463,7 @@ class ApiCalling {
'billing_state': billing_state.toString(), 'billing_state': billing_state.toString(),
'billing_district': billing_district.toString(), 'billing_district': billing_district.toString(),
'billing_sub_locality': billing_sub_locality.toString(), 'billing_sub_locality': billing_sub_locality.toString(),
'order_products': jsonEncode(order_products).toString(), 'order_products': (order_products).toString(),
'lead_id': lead_id.toString(), 'lead_id': lead_id.toString(),
'feedback': feedback.toString(), 'feedback': feedback.toString(),
'in_time': in_time.toString(), 'in_time': in_time.toString(),
......
...@@ -289,6 +289,14 @@ packages: ...@@ -289,6 +289,14 @@ packages:
url: "https://pub.dev" url: "https://pub.dev"
source: hosted source: hosted
version: "2.3.9" version: "2.3.9"
dropdown_search:
dependency: "direct main"
description:
name: dropdown_search
sha256: c29b3e5147a82a06a4a08b3b574c51cb48cc17ad89893d53ee72a6f86643622e
url: "https://pub.dev"
source: hosted
version: "6.0.2"
equatable: equatable:
dependency: transitive dependency: transitive
description: description:
......
...@@ -16,7 +16,7 @@ publish_to: 'none' # Remove this line if you wish to publish to pub.dev ...@@ -16,7 +16,7 @@ publish_to: 'none' # Remove this line if you wish to publish to pub.dev
# https://developer.apple.com/library/archive/documentation/General/Reference/InfoPlistKeyReference/Articles/CoreFoundationKeys.html # https://developer.apple.com/library/archive/documentation/General/Reference/InfoPlistKeyReference/Articles/CoreFoundationKeys.html
# In Windows, build-name is used as the major, minor, and patch parts # In Windows, build-name is used as the major, minor, and patch parts
# of the product and file versions while build-number is used as the build suffix. # of the product and file versions while build-number is used as the build suffix.
version: 1.0.97+105 version: 1.0.97+106
environment: environment:
sdk: ^3.7.2 sdk: ^3.7.2
...@@ -85,6 +85,7 @@ dependencies: ...@@ -85,6 +85,7 @@ dependencies:
flutter_staggered_grid_view: ^0.7.0 flutter_staggered_grid_view: ^0.7.0
dotted_line: ^3.2.3 dotted_line: ^3.2.3
flutter_slidable: ^4.0.0 flutter_slidable: ^4.0.0
dropdown_search: ^6.0.2
dev_dependencies: dev_dependencies:
flutter_test: flutter_test:
......
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