diff --git a/assets/local/localization_en.json b/assets/local/localization_en.json index da7bde5..fe04696 100644 --- a/assets/local/localization_en.json +++ b/assets/local/localization_en.json @@ -340,12 +340,12 @@ "FCSshipment.create":"Create new shipment", "FCSshipment.update":"Update shipment", "FCSshipment.ship.btn":"Ship this shipment", + "FCSshipment.process.btn":"Processed this shipment", + "FCSshipment.arrive.btn":"Arrived this shipment", + "FCSshipment.invoiced.btn":"Invoiced this shipment", "FCSshipment.ship.confirm":"Confirm ship?", "FCSshipment.cancel.btn":"Cancel this shipment", "FCSshipment.cancel.confirm":"Cancel this shipment?", - "FCSshipment.popupmenu.all":"All shipments", - "FCSshipment.popupmenu.active":"Active shipments", - "FCSshipment.popupmenu.shipped":"Shipped shipments", "FCSshipment.carton":"Cartons", "FCSshipment.package":"Packages", "FCS Shipment End ================================================================":"", diff --git a/assets/local/localization_mu.json b/assets/local/localization_mu.json index cd7111f..2371d47 100644 --- a/assets/local/localization_mu.json +++ b/assets/local/localization_mu.json @@ -338,7 +338,10 @@ "FCSshipment.cargo_manifest":"ကုန်ပစ္စည်းကိုဒေါင်းမည်", "FCSshipment.create":"တင်ပို့ခြင်းအသစ်ပြုလုပ်မည်", "FCSshipment.update":"တင်ပို့ခြင်းပြုပြင်မည်", - "FCSshipment.ship.btn":"Ship this shipment", + "FCSshipment.ship.btn":"ပို့ဆောင်နေသည်", + "FCSshipment.process.btn":"လုပ်ဆောင်နေသည်", + "FCSshipment.arrive.btn":"ရောက်ရှိသည်", + "FCSshipment.invoiced.btn":"ပြေစာယူသည်", "FCSshipment.ship.confirm":"Confirm ship?", "FCSshipment.cancel.btn":"Cancel this shipment", "FCSshipment.cancel.confirm":"Cancel this shipment?", diff --git a/lib/domain/constants.dart b/lib/domain/constants.dart index 05142e1..a9ab54e 100644 --- a/lib/domain/constants.dart +++ b/lib/domain/constants.dart @@ -20,7 +20,6 @@ const cartons_collection = "cartons"; const discounts_collection = "discounts"; const pickup_collection = "pickups"; - // docs const setting_doc_id = "setting"; const rate_doc_id = "rate"; @@ -49,7 +48,12 @@ const message_type_shipment = "t_s"; // Fcs shipment status const fcs_shipment_confirmed_status = "confirmed"; const fcs_shipment_shipped_status = "shipped"; +const fcs_shipment_pending_status = "pending"; +const fcs_shipment_processing_status = "processing"; +const fcs_shipment_arrived_status = "arrived"; +const fcs_shipment_invoiced_status = "invoiced"; const fcs_shipment_delivered_status = "delivered"; +const fcs_shipment_canceled_status = "canceled"; // Package status const package_received_status = "received"; @@ -73,8 +77,8 @@ const privilege_invoice = "inv"; const privilege_processing = "pr"; const privilege_receiving = "rc"; const privilege_pickup = "pku"; -const privilege_collect ="col"; -const privilege_report ="rpt"; +const privilege_collect = "col"; +const privilege_report = "rpt"; // Pickup types const shipment_local_pickup = "Local pickup"; @@ -98,6 +102,10 @@ const mix_pickup = "Mix Pickup"; const carton_packed_status = "packed"; const carton_shipped_status = "shipped"; const carton_delivered_status = "delivered"; +const carton_processing_status = "processing"; +const carton_arrived_status = "arrived"; +const carton_invoiced_status = "invoiced"; +const carton_canceled_status = "canceled"; // shipment status const shipment_pending_status = "pending"; diff --git a/lib/domain/entities/fcs_shipment.dart b/lib/domain/entities/fcs_shipment.dart index 4f015dd..933be02 100644 --- a/lib/domain/entities/fcs_shipment.dart +++ b/lib/domain/entities/fcs_shipment.dart @@ -59,7 +59,6 @@ class FcsShipment { 'cutoff_date': cutoffDate?.toUtc().toIso8601String(), 'shipment_type': shipType, 'arrival_date': arrivalDate?.toUtc().toIso8601String(), - 'departure_date': departureDate?.toUtc().toIso8601String(), 'consignee': consignee, 'port': port, 'destination': destination, diff --git a/lib/pages/fcs_shipment/fcs_shipment_info.dart b/lib/pages/fcs_shipment/fcs_shipment_info.dart index 356e3f5..9d14633 100644 --- a/lib/pages/fcs_shipment/fcs_shipment_info.dart +++ b/lib/pages/fcs_shipment/fcs_shipment_info.dart @@ -131,6 +131,27 @@ class _FcsShipmentInfoState extends State { callBack: _ship, ), ); + final processBtn = Padding( + padding: const EdgeInsets.symmetric(horizontal: 30), + child: LocalButton( + textKey: "FCSshipment.process.btn", + callBack: _ship, + ), + ); + final arriveBtn = Padding( + padding: const EdgeInsets.symmetric(horizontal: 30), + child: LocalButton( + textKey: "FCSshipment.arrive.btn", + callBack: _ship, + ), + ); + final invoiceBtn = Padding( + padding: const EdgeInsets.symmetric(horizontal: 30), + child: LocalButton( + textKey: "FCSshipment.invoice.btn", + callBack: _ship, + ), + ); final cancelBtn = Padding( padding: const EdgeInsets.symmetric(horizontal: 30), @@ -189,13 +210,22 @@ class _FcsShipmentInfoState extends State { portBox, destinationBox, const SizedBox(height: 30), - _fcsShipment?.status == fcs_shipment_confirmed_status - ? shipBtn + _fcsShipment?.status == fcs_shipment_pending_status + ? processBtn : Container(), - _fcsShipment?.status == fcs_shipment_confirmed_status + _fcsShipment?.status == fcs_shipment_pending_status ? Container( padding: EdgeInsets.only(top: 3), child: cancelBtn) : Container(), + _fcsShipment?.status == fcs_shipment_processing_status + ? shipBtn + : Container(), + _fcsShipment?.status == fcs_shipment_shipped_status + ? arriveBtn + : Container(), + _fcsShipment?.status == fcs_shipment_arrived_status + ? invoiceBtn + : Container(), SizedBox( height: 20, ) diff --git a/lib/pages/fcs_shipment/fcs_shipment_list.dart b/lib/pages/fcs_shipment/fcs_shipment_list.dart index 920553b..d170022 100644 --- a/lib/pages/fcs_shipment/fcs_shipment_list.dart +++ b/lib/pages/fcs_shipment/fcs_shipment_list.dart @@ -9,7 +9,6 @@ import 'package:fcs/pagination/paginator_listview.dart'; import 'package:flutter/cupertino.dart'; import 'package:flutter/material.dart'; import 'package:provider/provider.dart'; - import '../../domain/entities/fcs_shipment.dart'; import 'fcs_shipment_editor.dart'; import 'fcs_shipment_list_row.dart'; @@ -45,17 +44,23 @@ class _FcsShipmentListState extends State { final popupMenu = LocalPopupMenuButton( popmenus: [ LocalPopupMenu( - id: 0, - textKey: "FCSshipment.popupmenu.all", - selected: shipmentModel.selectedIndex == 0), + id: 0, text: "All", selected: shipmentModel.selectedIndex == 0), LocalPopupMenu( - id: 1, - textKey: "FCSshipment.popupmenu.active", - selected: shipmentModel.selectedIndex == 1), + id: 1, text: "Pending", selected: shipmentModel.selectedIndex == 1), LocalPopupMenu( id: 2, - textKey: "FCSshipment.popupmenu.shipped", - selected: shipmentModel.selectedIndex == 2) + text: "Processing", + selected: shipmentModel.selectedIndex == 2), + LocalPopupMenu( + id: 3, text: "Shipped", selected: shipmentModel.selectedIndex == 3), + LocalPopupMenu( + id: 4, text: "Arrived", selected: shipmentModel.selectedIndex == 4), + LocalPopupMenu( + id: 5, + text: "Invoiced", + selected: shipmentModel.selectedIndex == 5), + LocalPopupMenu( + id: 6, text: "Canceled", selected: shipmentModel.selectedIndex == 6) ], popupMenuCallback: (p) { setState(() { diff --git a/lib/pages/fcs_shipment/model/fcs_shipment_model.dart b/lib/pages/fcs_shipment/model/fcs_shipment_model.dart index 26f501e..9d6a6d5 100644 --- a/lib/pages/fcs_shipment/model/fcs_shipment_model.dart +++ b/lib/pages/fcs_shipment/model/fcs_shipment_model.dart @@ -28,18 +28,48 @@ class FcsShipmentModel extends BaseModel { Query col = FirebaseFirestore.instance.collection(path); Query pageQuery = FirebaseFirestore.instance.collection(path); + // pending status if (index == 1) { - col = col.where("status", isEqualTo: fcs_shipment_confirmed_status); + col = col.where("status", isEqualTo: fcs_shipment_pending_status); pageQuery = - pageQuery.where("status", isEqualTo: fcs_shipment_confirmed_status); + pageQuery.where("status", isEqualTo: fcs_shipment_pending_status); } + // processing status if (index == 2) { + col = col.where("status", isEqualTo: fcs_shipment_processing_status); + pageQuery = + pageQuery.where("status", isEqualTo: fcs_shipment_processing_status); + } + + // shipped status + if (index == 3) { col = col.where("status", isEqualTo: fcs_shipment_shipped_status); pageQuery = pageQuery.where("status", isEqualTo: fcs_shipment_shipped_status); } + // arrived status + if (index == 4) { + col = col.where("status", isEqualTo: fcs_shipment_arrived_status); + pageQuery = + pageQuery.where("status", isEqualTo: fcs_shipment_arrived_status); + } + + // invoiced status + if (index == 5) { + col = col.where("status", isEqualTo: fcs_shipment_invoiced_status); + pageQuery = + pageQuery.where("status", isEqualTo: fcs_shipment_invoiced_status); + } + + // canceled status + if (index == 6) { + col = col.where("status", isEqualTo: fcs_shipment_canceled_status); + pageQuery = + pageQuery.where("status", isEqualTo: fcs_shipment_canceled_status); + } + pageQuery = pageQuery.orderBy("shipment_number", descending: true); fcsShipments?.close(); diff --git a/lib/pages/widgets/local_popup_menu_button.dart b/lib/pages/widgets/local_popup_menu_button.dart index 44facd4..1493eda 100644 --- a/lib/pages/widgets/local_popup_menu_button.dart +++ b/lib/pages/widgets/local_popup_menu_button.dart @@ -71,18 +71,18 @@ class _LocalPopupMenuButtonState extends State { height: 30, decoration: new BoxDecoration( shape: BoxShape.circle, - color: Colors.white, + //color: Colors.white, ), child: Stack( - fit: StackFit.expand, + alignment: Alignment.center, children: [ Icon( widget.buttonIcon ?? Icons.filter_list, - color: widget.buttonColor, + color: Colors.white, ), hightlight ? Positioned( - bottom: 0, + bottom: 15, right: 0, child: Container( width: 10, @@ -102,8 +102,15 @@ class _LocalPopupMenuButtonState extends State { value: choice, child: Row( children: [ - LocalText(context, choice.textKey ?? "", - color: choice.enabled ? primaryColor : Colors.grey), + choice.text != null + ? Text(choice.text!, + style: TextStyle( + fontSize: 14, + color: + choice.enabled ? primaryColor : Colors.grey)) + : LocalText(context, choice.textKey ?? "", + color: choice.enabled ? primaryColor : Colors.grey, + fontSize: 14), SizedBox( width: 10, ), diff --git a/lib/pages/widgets/local_popupmenu.dart b/lib/pages/widgets/local_popupmenu.dart index d5931b1..1df056a 100644 --- a/lib/pages/widgets/local_popupmenu.dart +++ b/lib/pages/widgets/local_popupmenu.dart @@ -1,12 +1,14 @@ class LocalPopupMenu { int id; String? textKey; + String? text; bool selected; bool highlight; bool enabled; LocalPopupMenu( {required this.id, this.textKey, + this.text, this.selected = false, this.highlight = false, this.enabled = true});