fix carton

This commit is contained in:
2021-01-25 16:09:41 +06:30
parent 020b748272
commit 14183410d2
9 changed files with 175 additions and 216 deletions

View File

@@ -76,6 +76,8 @@ class _CartonEditorState extends State<CartonEditor> {
User sender;
List<Carton> _cartonsFromCartons = [];
double totalWeight;
@override
void initState() {
super.initState();
@@ -410,8 +412,8 @@ class _CartonEditorState extends State<CartonEditor> {
CupertinoPageRoute(builder: (context) => CargoTypeAddition()));
if (cargos == null) return;
setState(() {
_cargoTypes.clear();
_cargoTypes.addAll(cargos);
_cargoTypes.addAll(
cargos.where((e) => !_cargoTypes.contains(e)).toList());
});
}),
);
@@ -419,8 +421,8 @@ class _CartonEditorState extends State<CartonEditor> {
final cargoTableBox = CargoTable(
isNew: _isNew,
cargoTypes: _cargoTypes,
onAdd: (c) => _addCargo(c),
onRemove: (c) => _removeCargo(c),
onUpdate: (c) => _updateCargo(c),
);
final lengthBox = LengthPicker(
@@ -779,20 +781,23 @@ class _CartonEditorState extends State<CartonEditor> {
);
}
_addCargo(CargoType cargo) {
if (cargo == null) return;
setState(() {
_cargoTypes.remove(cargo);
_cargoTypes.add(cargo);
});
}
_removeCargo(CargoType cargo) {
setState(() {
_cargoTypes.remove(cargo);
});
}
_updateCargo(CargoType cargo) {
setState(() {
var _c =
_cargoTypes.firstWhere((e) => e.id == cargo.id, orElse: () => null);
if (_c != null) {
_c.weight = cargo.weight;
_c.qty = cargo.qty;
}
});
}
_addCarton() async {
bool isFromPackages = _selectedCartonType == carton_from_packages;
bool isFromCartons = _selectedCartonType == carton_from_cartons;
@@ -931,6 +936,10 @@ class _CartonEditorState extends State<CartonEditor> {
showMsgDialog(context, "Error", "Expect at least one cargo type");
return;
}
if (_cargoTypes.where((c) => c.weight <= 0).isNotEmpty) {
showMsgDialog(context, "Error", "Invalid cargo weight");
return;
}
double l = double.parse(_lengthController.text, (s) => 0);
double w = double.parse(_widthController.text, (s) => 0);
double h = double.parse(_heightController.text, (s) => 0);