From 4acc1d9465afd3cfaf65b45c8a194b1050824cfa Mon Sep 17 00:00:00 2001 From: Sai Naw Wun Date: Mon, 19 Oct 2020 14:02:34 +0630 Subject: [PATCH] fix shipment detail click in noti --- lib/domain/constants.dart | 1 + lib/pages/carton/carton_editor.dart | 1 + lib/pages/chat/message_detail.dart | 21 +++++++++++++++++-- .../fcs_shipment/fcs_shipment_editor.dart | 3 +-- lib/pages/fcs_shipment/fcs_shipment_info.dart | 14 ++++++++++++- .../model/fcs_shipment_model.dart | 15 +++++++++++++ 6 files changed, 50 insertions(+), 5 deletions(-) diff --git a/lib/domain/constants.dart b/lib/domain/constants.dart index 672db0a..bffb153 100644 --- a/lib/domain/constants.dart +++ b/lib/domain/constants.dart @@ -35,6 +35,7 @@ const page_rates = "rates"; // Message type const message_type_package = "t_p"; const message_type_profile = "t_profile"; +const message_type_shipment = "t_s"; // Fcs shipment status const fcs_shipment_confirmed_status = "confirmed"; diff --git a/lib/pages/carton/carton_editor.dart b/lib/pages/carton/carton_editor.dart index 1d37caa..c42b826 100644 --- a/lib/pages/carton/carton_editor.dart +++ b/lib/pages/carton/carton_editor.dart @@ -391,6 +391,7 @@ class _CartonEditorState extends State { final createBtn = LocalButton( textKey: "box.create.btn", + callBack: _save, ); final completeBtn = LocalButton( diff --git a/lib/pages/chat/message_detail.dart b/lib/pages/chat/message_detail.dart index 0cd5221..c1209e7 100644 --- a/lib/pages/chat/message_detail.dart +++ b/lib/pages/chat/message_detail.dart @@ -1,5 +1,6 @@ import 'package:fcs/domain/constants.dart'; import 'package:fcs/domain/entities/package.dart'; +import 'package:fcs/domain/entities/shipment.dart'; import 'package:fcs/domain/entities/user.dart'; import 'package:fcs/domain/vo/message.dart'; import 'package:fcs/helpers/theme.dart'; @@ -7,11 +8,12 @@ import 'package:fcs/pages/chat/model/message_model.dart'; import 'package:fcs/pages/customer/customer_editor.dart'; import 'package:fcs/pages/customer/model/customer_model.dart'; import 'package:fcs/pages/main/model/main_model.dart'; +import 'package:fcs/pages/main/util.dart'; import 'package:fcs/pages/package/model/package_model.dart'; import 'package:fcs/pages/package/package_info.dart'; import 'package:fcs/pages/profile/profile_page.dart'; -import 'package:fcs/pages/main/util.dart'; -import 'package:fcs/pages/widgets/bottom_up_page_route.dart'; +import 'package:fcs/pages/shipment/model/shipment_model.dart'; +import 'package:fcs/pages/shipment/shipment_info.dart'; import 'package:flutter/cupertino.dart'; import 'package:flutter/material.dart'; import 'package:provider/provider.dart'; @@ -195,5 +197,20 @@ class MessageDetail extends StatelessWidget { builder: (context) => CustomerEditor(customer: user))); } } + if (message.messageType == message_type_shipment && + message.messageID != null && + message.messageID != "") { + ShipmentModel shipmentModel = + Provider.of(context, listen: false); + Shipment s = await shipmentModel.getShipment(message.messageID); + if (s == null) return; + await Navigator.push( + context, + CupertinoPageRoute( + builder: (context) => ShipmentInfo( + shipment: s, + isCustomer: true, + ))); + } } } diff --git a/lib/pages/fcs_shipment/fcs_shipment_editor.dart b/lib/pages/fcs_shipment/fcs_shipment_editor.dart index bbaa818..e3d20b4 100644 --- a/lib/pages/fcs_shipment/fcs_shipment_editor.dart +++ b/lib/pages/fcs_shipment/fcs_shipment_editor.dart @@ -9,7 +9,6 @@ import 'package:fcs/pages/widgets/input_date.dart'; import 'package:fcs/pages/widgets/input_text.dart'; import 'package:fcs/pages/widgets/local_button.dart'; import 'package:fcs/pages/widgets/local_text.dart'; -import 'package:fcs/pages/widgets/popupmenu.dart'; import 'package:fcs/pages/widgets/progress.dart'; import 'package:flutter/cupertino.dart'; import 'package:flutter/material.dart'; @@ -256,7 +255,7 @@ class _FcsShipmentEditorState extends State { var shipmentModel = Provider.of(context, listen: false); try { await shipmentModel.update(fcsShipment); - Navigator.pop(context); + Navigator.pop(context, true); } catch (e) { showMsgDialog(context, "Error", e.toString()); } finally { diff --git a/lib/pages/fcs_shipment/fcs_shipment_info.dart b/lib/pages/fcs_shipment/fcs_shipment_info.dart index 8010f1b..e41f7c5 100644 --- a/lib/pages/fcs_shipment/fcs_shipment_info.dart +++ b/lib/pages/fcs_shipment/fcs_shipment_info.dart @@ -43,6 +43,10 @@ class _FcsShipmentInfoState extends State { void initState() { super.initState(); _fcsShipment = widget.fcsShipment; + _load(); + } + + _load() { _shipmentNumberController.text = _fcsShipment.shipmentNumber; _cutoffDateController.text = dateFormatter.format(_fcsShipment.cutoffDate); _arrivalDateController.text = @@ -177,11 +181,19 @@ class _FcsShipmentInfoState extends State { } _edit() async { - await Navigator.push( + bool updated = await Navigator.push( context, CupertinoPageRoute( builder: (context) => FcsShipmentEditor(shipment: _fcsShipment)), ); + if (updated) { + var shipmentModel = Provider.of(context, listen: false); + var f = await shipmentModel.getFcsShipment(_fcsShipment.id); + setState(() { + _fcsShipment = f; + }); + _load(); + } } Widget menuPopWidget(BuildContext context) { diff --git a/lib/pages/fcs_shipment/model/fcs_shipment_model.dart b/lib/pages/fcs_shipment/model/fcs_shipment_model.dart index 36f9dc7..c7df7b6 100644 --- a/lib/pages/fcs_shipment/model/fcs_shipment_model.dart +++ b/lib/pages/fcs_shipment/model/fcs_shipment_model.dart @@ -116,6 +116,21 @@ class FcsShipmentModel extends BaseModel { return fcsShipments; } + Future getFcsShipment(String id) async { + try { + var snap = await Firestore.instance + .collection("/$fcs_shipment_collection") + .document(id) + .get(source: Source.server); + var fcs = FcsShipment.fromMap(snap.data, snap.documentID); + + return fcs; + } catch (e) { + log.warning("Error!! $e"); + } + return null; + } + void initUser(user) { super.initUser(user); }