add shipment in processing, update package, processing and receiving

This commit is contained in:
tzw
2025-03-06 17:59:15 +06:30
parent 9e6b288970
commit e75eacd1f9
20 changed files with 746 additions and 603 deletions

View File

@@ -1,3 +1,5 @@
// ignore_for_file: use_build_context_synchronously
import 'package:fcs/constants.dart';
import 'package:fcs/domain/entities/market.dart';
import 'package:fcs/domain/entities/package.dart';
@@ -20,19 +22,25 @@ import 'package:flutter/material.dart';
import 'package:flutter_vector_icons/flutter_vector_icons.dart';
import 'package:provider/provider.dart';
import '../../domain/entities/fcs_shipment.dart';
class PackageEditor extends StatefulWidget {
final Package? package;
final User? consignee;
final User? sender;
PackageEditor({this.package, this.consignee, this.sender});
final User consignee;
final User sender;
final FcsShipment shipment;
const PackageEditor(
{super.key,
required this.consignee,
required this.sender,
required this.shipment});
@override
_PackageEditorState createState() => _PackageEditorState();
}
class _PackageEditorState extends State<PackageEditor> {
TextEditingController _remarkCtl = new TextEditingController();
TextEditingController _descCtl = new TextEditingController();
final _remarkCtl = TextEditingController();
final _descCtl = TextEditingController();
bool _isLoading = false;
MultiImgController multiImgController = MultiImgController();
@@ -42,7 +50,6 @@ class _PackageEditorState extends State<PackageEditor> {
void initState() {
super.initState();
_package = Package();
_loadPackageData(widget.package?.id!);
}
_loadPackageData(String? id) async {
@@ -75,7 +82,7 @@ class _PackageEditorState extends State<PackageEditor> {
children: <Widget>[
Expanded(
child: DisplayText(
text: _package!.trackingID != null ? _package!.trackingID : "",
text: _package!.trackingID ?? "",
labelTextKey: "processing.tracking.id",
iconData: MaterialCommunityIcons.barcode_scan,
)),
@@ -113,35 +120,23 @@ class _PackageEditorState extends State<PackageEditor> {
inAsyncCall: _isLoading,
child: Scaffold(
appBar: AppBar(
centerTitle: true,
leading: new IconButton(
icon: new Icon(CupertinoIcons.back, color: primaryColor, size: 30),
onPressed: () {
if (isDataChanged()) {
showConfirmDialog(context, "back.button_confirm", () {
centerTitle: true,
leading: IconButton(
icon: Icon(CupertinoIcons.back, color: primaryColor, size: 30),
onPressed: () {
if (isDataChanged()) {
showConfirmDialog(context, "back.button_confirm", () {
Navigator.of(context).pop();
});
} else {
Navigator.of(context).pop();
});
} else {
Navigator.of(context).pop();
}
},
),
shadowColor: Colors.transparent,
backgroundColor: Colors.white,
title: widget.package == null
? LocalText(
context,
"processing.package.create",
fontSize: 20,
color: primaryColor,
)
: LocalText(
context,
"processing.package.update",
fontSize: 20,
color: primaryColor,
),
),
}
},
),
shadowColor: Colors.transparent,
backgroundColor: Colors.white,
title: LocalText(context, "processing.package.create",
fontSize: 20, color: primaryColor)),
body: Padding(
padding: const EdgeInsets.all(8.0),
child: ListView(
@@ -256,9 +251,8 @@ class _PackageEditorState extends State<PackageEditor> {
_package!.desc = _descCtl.text;
_package!.remark = _remarkCtl.text;
_package!.photoFiles = multiImgController.getUpdatedFile;
_package!.fcsID = widget.consignee?.fcsID;
_package!.senderFCSID =
widget.sender?.fcsID != null ? widget.sender?.fcsID : "";
_package!.fcsID = widget.consignee.fcsID;
_package!.senderFCSID = widget.sender.fcsID ?? "";
await packageModel.updateProcessing(_package!,
multiImgController.getAddedFile, multiImgController.getDeletedUrl);