fix carton
This commit is contained in:
@@ -1,3 +1,4 @@
|
||||
import 'package:fcs/domain/constants.dart';
|
||||
import 'package:fcs/domain/entities/market.dart';
|
||||
import 'package:fcs/domain/entities/package.dart';
|
||||
import 'package:fcs/domain/entities/user.dart';
|
||||
@@ -7,7 +8,9 @@ import 'package:fcs/pages/market/model/market_model.dart';
|
||||
import 'package:fcs/pages/package/model/package_model.dart';
|
||||
import 'package:fcs/pages/package/tracking_id_page.dart';
|
||||
import 'package:fcs/pages/main/util.dart';
|
||||
import 'package:fcs/pages/package_search/package_serach.dart';
|
||||
import 'package:fcs/pages/widgets/barcode_scanner.dart';
|
||||
import 'package:fcs/pages/widgets/display_text.dart';
|
||||
import 'package:fcs/pages/widgets/input_text.dart';
|
||||
import 'package:fcs/pages/widgets/local_text.dart';
|
||||
import 'package:fcs/pages/widgets/multi_img_controller.dart';
|
||||
@@ -32,59 +35,60 @@ class PackageEditor extends StatefulWidget {
|
||||
class _PackageEditorState extends State<PackageEditor> {
|
||||
TextEditingController _remarkCtl = new TextEditingController();
|
||||
TextEditingController _descCtl = new TextEditingController();
|
||||
TextEditingController _trackingIDCtl = new TextEditingController();
|
||||
|
||||
bool _isLoading = false;
|
||||
bool _isNew;
|
||||
MultiImgController multiImgController = MultiImgController();
|
||||
Package _package = Package();
|
||||
Package _package;
|
||||
|
||||
@override
|
||||
void initState() {
|
||||
super.initState();
|
||||
if (widget.package != null) {
|
||||
_isNew = false;
|
||||
_package = widget.package;
|
||||
_trackingIDCtl.text = _package.trackingID;
|
||||
_package = Package();
|
||||
_loadPackageData(null);
|
||||
}
|
||||
|
||||
_loadPackageData(String id) async {
|
||||
if (id != null) {
|
||||
PackageModel packageModel =
|
||||
Provider.of<PackageModel>(context, listen: false);
|
||||
Package package = await packageModel.getPackage(id);
|
||||
if (package != null) {
|
||||
if (package.status != package_received_status) {
|
||||
showMsgDialog(context, "Error",
|
||||
"Invalid package status, expected '$package_received_status' status");
|
||||
return;
|
||||
}
|
||||
setState(() {
|
||||
_package = package;
|
||||
});
|
||||
}
|
||||
}
|
||||
setState(() {
|
||||
selectedMarket = _package.market ?? "";
|
||||
_descCtl.text = _package.desc;
|
||||
_remarkCtl.text = _package.remark;
|
||||
multiImgController.setImageFiles = _package.photoFiles;
|
||||
} else {
|
||||
_isNew = true;
|
||||
}
|
||||
multiImgController.setImageUrls = _package.photoUrls;
|
||||
});
|
||||
}
|
||||
|
||||
@override
|
||||
Widget build(BuildContext context) {
|
||||
final trackingIDBox = Container(
|
||||
child: Row(
|
||||
crossAxisAlignment: CrossAxisAlignment.end,
|
||||
var trackingIDBox = Row(
|
||||
children: <Widget>[
|
||||
Expanded(
|
||||
child: InputText(
|
||||
iconData: MaterialCommunityIcons.barcode_scan,
|
||||
child: DisplayText(
|
||||
text: _package.trackingID,
|
||||
labelTextKey: "processing.tracking.id",
|
||||
controller: _trackingIDCtl,
|
||||
iconData: MaterialCommunityIcons.barcode_scan,
|
||||
)),
|
||||
InkWell(
|
||||
onTap: _scan,
|
||||
child: Padding(
|
||||
padding: const EdgeInsets.all(8.0),
|
||||
child: Column(
|
||||
children: [
|
||||
Icon(
|
||||
MaterialCommunityIcons.barcode_scan,
|
||||
color: primaryColor,
|
||||
),
|
||||
Text("Scan")
|
||||
],
|
||||
),
|
||||
),
|
||||
),
|
||||
IconButton(
|
||||
icon: Icon(Icons.search, color: primaryColor),
|
||||
onPressed: () => searchPackage(context, callbackPackageSelect: (u) {
|
||||
_loadPackageData(u.id);
|
||||
Navigator.pop(context);
|
||||
})),
|
||||
],
|
||||
));
|
||||
);
|
||||
|
||||
final descBox = InputText(
|
||||
labelTextKey: 'processing.desc',
|
||||
@@ -243,31 +247,6 @@ class _PackageEditorState extends State<PackageEditor> {
|
||||
);
|
||||
}
|
||||
|
||||
_scan() async {
|
||||
PermissionStatus permission =
|
||||
await PermissionHandler().checkPermissionStatus(PermissionGroup.camera);
|
||||
if (permission != PermissionStatus.granted) {
|
||||
Map<PermissionGroup, PermissionStatus> permissions =
|
||||
await PermissionHandler()
|
||||
.requestPermissions([PermissionGroup.camera]);
|
||||
if (permissions[PermissionGroup.camera] != PermissionStatus.granted) {
|
||||
showMsgDialog(context, "Error", "Camera permission is not granted");
|
||||
return null;
|
||||
}
|
||||
}
|
||||
|
||||
try {
|
||||
String barcode = await scanBarcode();
|
||||
if (barcode != null) {
|
||||
setState(() {
|
||||
_trackingIDCtl.text = barcode;
|
||||
});
|
||||
}
|
||||
} catch (e) {
|
||||
print('error: $e');
|
||||
}
|
||||
}
|
||||
|
||||
_selectPackage() async {
|
||||
setState(() {
|
||||
_isLoading = true;
|
||||
@@ -275,22 +254,17 @@ class _PackageEditorState extends State<PackageEditor> {
|
||||
PackageModel packageModel =
|
||||
Provider.of<PackageModel>(context, listen: false);
|
||||
try {
|
||||
Package package =
|
||||
await packageModel.getPackageByTrackingID(_trackingIDCtl.text);
|
||||
package.trackingID = _trackingIDCtl.text;
|
||||
package.market = selectedMarket;
|
||||
package.desc = _descCtl.text;
|
||||
package.remark = _remarkCtl.text;
|
||||
package.photoFiles = _isNew
|
||||
? multiImgController.getAddedFile
|
||||
: multiImgController.getUpdatedFile;
|
||||
package.fcsID = widget.consignee.fcsID;
|
||||
package.senderFCSID = widget.sender?.fcsID;
|
||||
_package.market = selectedMarket;
|
||||
_package.desc = _descCtl.text;
|
||||
_package.remark = _remarkCtl.text;
|
||||
_package.photoFiles = multiImgController.getUpdatedFile;
|
||||
_package.fcsID = widget.consignee.fcsID;
|
||||
_package.senderFCSID = widget.sender?.fcsID;
|
||||
|
||||
await packageModel.updateProcessing(package,
|
||||
await packageModel.updateProcessing(_package,
|
||||
multiImgController.getAddedFile, multiImgController.getDeletedUrl);
|
||||
|
||||
Navigator.pop<Package>(context, package);
|
||||
Navigator.pop<Package>(context, _package);
|
||||
} catch (e) {
|
||||
showMsgDialog(context, "Error", e.toString());
|
||||
} finally {
|
||||
@@ -301,8 +275,7 @@ class _PackageEditorState extends State<PackageEditor> {
|
||||
}
|
||||
|
||||
isDataChanged() {
|
||||
return _trackingIDCtl.text != "" ||
|
||||
selectedMarket != null ||
|
||||
return selectedMarket != null ||
|
||||
_descCtl.text != "" ||
|
||||
_remarkCtl.text != "" ||
|
||||
multiImgController.getAddedFile.isNotEmpty;
|
||||
|
||||
Reference in New Issue
Block a user