add fcs shipment in processing,update cargo types for carton

This commit is contained in:
tzw
2025-03-21 18:19:52 +06:30
parent e208734dfa
commit 3bfbca35fc
34 changed files with 1227 additions and 665 deletions

View File

@@ -9,6 +9,7 @@ import '../../domain/entities/package.dart';
import '../../domain/entities/user.dart';
import '../main/util.dart';
import '../widgets/continue_button.dart';
import '../widgets/local_text.dart';
import '../widgets/local_title.dart';
import '../widgets/previous_button.dart';
import 'model/package_selection_model.dart';
@@ -41,6 +42,7 @@ class _PackagesWidgetState extends State<PackagesWidget> {
final _scrollController = ScrollController();
bool _down = true;
List<Package> _packages = [];
bool _isLoading = false;
@override
void initState() {
@@ -56,12 +58,14 @@ class _PackagesWidgetState extends State<PackagesWidget> {
_init() async {
_packages.clear();
_isLoading = true;
var packageModel = context.read<PackageSelectionModel>();
var list = await packageModel.getActivePackages(
shipmentId: widget.shipment.id!,
senderId: widget.sender.id!,
consigneeId: widget.consignee.id!);
_packages = List.from(list);
_isLoading = false;
if (mounted) {
setState(() {});
}
@@ -93,6 +97,10 @@ class _PackagesWidgetState extends State<PackagesWidget> {
final continueBtn = ContinueButton(
onTap: () {
if (_packages.isEmpty) {
showMsgDialog(context, 'Error', "Please add the packages");
return false;
}
if (widget.onContinue != null) {
widget.onContinue!(_packages);
}
@@ -135,21 +143,25 @@ class _PackagesWidgetState extends State<PackagesWidget> {
: const SizedBox(),
),
Expanded(
child: RefreshIndicator(
color: primaryColor,
onRefresh: () async {
_init();
},
child: ListView.builder(
padding: const EdgeInsets.only(top: 10),
controller: _scrollController,
shrinkWrap: true,
physics: const AlwaysScrollableScrollPhysics(),
itemBuilder: (context, index) {
Package package = _packages[index];
return packageRow(context, package);
child: _packages.isEmpty && !_isLoading
? Center(
child: LocalText(context, 'box.no_package',
color: Colors.black, fontSize: 15))
: RefreshIndicator(
color: primaryColor,
onRefresh: () async {
_init();
},
itemCount: _packages.length)),
child: ListView.builder(
padding: const EdgeInsets.only(top: 10),
controller: _scrollController,
shrinkWrap: true,
physics: const AlwaysScrollableScrollPhysics(),
itemBuilder: (context, index) {
Package package = _packages[index];
return packageRow(context, package);
},
itemCount: _packages.length)),
),
],
),