update carton and cargo type

This commit is contained in:
tzw
2025-03-12 17:49:27 +06:30
parent 05e912ea68
commit e208734dfa
32 changed files with 1141 additions and 462 deletions

View File

@@ -1,3 +1,5 @@
// ignore_for_file: use_build_context_synchronously
import 'package:fcs/domain/entities/rate.dart';
import 'package:fcs/helpers/theme.dart';
import 'package:fcs/pages/rates/model/shipment_rate_model.dart';
@@ -5,13 +7,14 @@ import 'package:fcs/pages/widgets/input_text.dart';
import 'package:fcs/pages/widgets/local_app_bar.dart';
import 'package:fcs/pages/widgets/progress.dart';
import 'package:flutter/material.dart';
import 'package:flutter_vector_icons/flutter_vector_icons.dart';
import 'package:font_awesome_flutter/font_awesome_flutter.dart';
import 'package:provider/provider.dart';
import '../main/util.dart';
class ShipmentRatesEdit extends StatefulWidget {
ShipmentRatesEdit();
const ShipmentRatesEdit({super.key});
@override
_ShipmentRatesEditState createState() => _ShipmentRatesEditState();
@@ -19,11 +22,11 @@ class ShipmentRatesEdit extends StatefulWidget {
class _ShipmentRatesEditState extends State<ShipmentRatesEdit> {
bool _isLoading = false;
TextEditingController _minWeight = new TextEditingController();
TextEditingController _deliveryFee = new TextEditingController();
TextEditingController _volumetricRatio = new TextEditingController();
TextEditingController _diffDiscountWeight = new TextEditingController();
TextEditingController _diffWeightRate = new TextEditingController();
TextEditingController minWeight = TextEditingController();
TextEditingController deliveryFee = TextEditingController();
TextEditingController volumetricRatio = TextEditingController();
TextEditingController diffDiscountWeight = TextEditingController();
TextEditingController diffWeightRate = TextEditingController();
late Rate rate;
@@ -34,11 +37,11 @@ class _ShipmentRatesEditState extends State<ShipmentRatesEdit> {
Provider.of<ShipmentRateModel>(context, listen: false);
rate = shipmentRateModel.rate;
_minWeight.text = rate.freeDeliveryWeight.toStringAsFixed(2);
_deliveryFee.text = rate.deliveryFee.toStringAsFixed(2);
_volumetricRatio.text = rate.volumetricRatio.toStringAsFixed(2);
_diffDiscountWeight.text = rate.diffDiscountWeight.toStringAsFixed(2);
_diffWeightRate.text = rate.diffWeightRate.toStringAsFixed(2);
minWeight.text = rate.freeDeliveryWeight.toStringAsFixed(2);
deliveryFee.text = rate.deliveryFee.toStringAsFixed(2);
volumetricRatio.text = rate.volumetricRatio.toStringAsFixed(2);
diffDiscountWeight.text = rate.diffDiscountWeight.toStringAsFixed(2);
diffWeightRate.text = rate.diffWeightRate.toStringAsFixed(2);
}
@override
@@ -51,23 +54,27 @@ class _ShipmentRatesEditState extends State<ShipmentRatesEdit> {
final minWigBox = InputText(
labelTextKey: 'rate.min_weight',
iconData: FontAwesomeIcons.weightHanging,
controller: _minWeight);
controller: minWeight);
final feeBox = InputText(
labelTextKey: 'rate.delivery_fee',
iconData: Icons.attach_money,
controller: _deliveryFee);
iconData: Fontisto.dollar,
controller: deliveryFee);
final ratioBox = InputText(
labelTextKey: 'rate.volumetric_ratio',
iconData: FontAwesomeIcons.weightHanging,
controller: _volumetricRatio);
controller: volumetricRatio);
final diffDiscountWeightBox = InputText(
labelTextKey: 'rate.diff_discount_weight',
iconData: FontAwesomeIcons.weightHanging,
controller: _diffDiscountWeight);
controller: diffDiscountWeight);
final diffWeightRateBox = InputText(
labelTextKey: 'rate.diff_weight_rate',
iconData: Icons.attach_money,
controller: _diffWeightRate);
iconData: Fontisto.dollar,
controller: diffWeightRate);
return LocalProgress(
inAsyncCall: _isLoading,
@@ -105,7 +112,7 @@ class _ShipmentRatesEditState extends State<ShipmentRatesEdit> {
),
fcsButton(context, getLocalString(context, "btn.save"),
callack: _save),
SizedBox(height: 10)
SizedBox(height: 30)
],
),
),
@@ -120,15 +127,14 @@ class _ShipmentRatesEditState extends State<ShipmentRatesEdit> {
try {
var shipmentRateModel =
Provider.of<ShipmentRateModel>(context, listen: false);
Rate _rate = new Rate(
deliveryFee: double.parse(_deliveryFee.text),
freeDeliveryWeight: double.parse(_minWeight.text),
volumetricRatio: double.parse(_volumetricRatio.text),
diffDiscountWeight: double.parse(_diffDiscountWeight.text),
diffWeightRate: double.parse(_diffWeightRate.text));
Rate r = new Rate();
print('_rate =>$r');
await shipmentRateModel.updateRate(_rate);
Rate rate = Rate(
deliveryFee: double.parse(deliveryFee.text),
freeDeliveryWeight: double.parse(minWeight.text),
volumetricRatio: double.parse(volumetricRatio.text),
diffDiscountWeight: double.parse(diffDiscountWeight.text),
diffWeightRate: double.parse(diffWeightRate.text));
await shipmentRateModel.updateRate(rate);
Navigator.pop(context);
} catch (e) {
showMsgDialog(context, "Error", e.toString());
@@ -140,13 +146,13 @@ class _ShipmentRatesEditState extends State<ShipmentRatesEdit> {
}
isDataChanged() {
Rate _rate = new Rate(
deliveryFee: double.parse(_deliveryFee.text),
freeDeliveryWeight: double.parse(_minWeight.text),
volumetricRatio: double.parse(_volumetricRatio.text),
diffDiscountWeight: double.parse(_diffDiscountWeight.text),
diffWeightRate: double.parse(_diffWeightRate.text),
Rate rate = Rate(
deliveryFee: double.parse(deliveryFee.text),
freeDeliveryWeight: double.parse(minWeight.text),
volumetricRatio: double.parse(volumetricRatio.text),
diffDiscountWeight: double.parse(diffDiscountWeight.text),
diffWeightRate: double.parse(diffWeightRate.text),
);
return rate.isChangedForEdit(_rate);
return rate.isChangedForEdit(rate);
}
}