diff --git a/assets/local/localization_en.json b/assets/local/localization_en.json index 2ad5e19..acc52b3 100644 --- a/assets/local/localization_en.json +++ b/assets/local/localization_en.json @@ -273,11 +273,16 @@ "box.mix.number":"Carton number", "box.mix.desc":"Description", "box.info.title":"Carton", + "box.popupmenu.active":"Active Cartons", + "box.popupmenu.delivered":"Delivered Cartons", + "box.cargo.total":"Total Weight", "Boxes End ================================================================":"", "Delivery Start ================================================================":"", "delivery.title":"Deliveries", "delivery":"Deliveries", + "delivery.popupmenu.active":"Active Cartons", + "delivery.popupmenu.delivered":"Delivered Cartons", "Delivery End ================================================================":"", "FCS Shipment Start ================================================================":"", @@ -306,7 +311,7 @@ "Shipment Start ================================================================":"", "shipment": "Shipments", "shipment.title": "Shipments", - "shipment.new": "Request shipment", + "shipment.new": "New shipment", "shipment.new.title": "New Shipment", "shipment.edit.title": "Edit Shipment", "shipment.type": "Pickup/drop-off", @@ -328,6 +333,11 @@ "shipment.box.width":"Width", "shipment.box.height":"Height", "shipment.box.add":"Add carton", + "shipment.cargo.total":"Total Weight", + "shipment.popupmenu.active":"Active Shipments", + "shipment.popupmenu.delivered":"Delivered Shipments", + "shipment.create":"Create shipment", + "shipment.update":"Update shipment", "Shipment End ================================================================":"", "Rate Start ================================================================":"", diff --git a/assets/local/localization_mu.json b/assets/local/localization_mu.json index 3dda664..e019251 100644 --- a/assets/local/localization_mu.json +++ b/assets/local/localization_mu.json @@ -273,11 +273,16 @@ "box.mix.number":"သေတ္တာ နံပါတ်", "box.mix.desc":"ဖော်ပြချက်", "box.info.title":"သေတ္တာ", + "box.popupmenu.active":"လာမည့် သေတ္တာများ", + "box.popupmenu.delivered":"ပို့ပြီးသော သေတ္တာများ", + "box.cargo.total":"စုစုပေါင်း အလေးချိန်", "Boxes End ================================================================":"", "Delivery Start ================================================================":"", "delivery.title":"ပေးပို့ရန်များ", "delivery":"ပေးပို့ရန်များ", + "delivery.popupmenu.active":"လာမည့် သေတ္တာများ", + "delivery.popupmenu.delivered":"ပို့ပြီးသော သေတ္တာများ", "Delivery End ================================================================":"", "FCS Shipment Start ================================================================":"", @@ -295,12 +300,12 @@ "FCSshipment.final_destination":"ဆိုက်ရောက်နေရာ", "FCSshipment.status":"အခြေအနေ", "FCSshipment.remark":"မှတ်ချက်", - "FCSshipment.commercial_invoice":"Download Commercial Invoice", - "FCSshipment.packing_list":"Download Packing List", - "FCSshipment.dms":"Download DMS", - "FCSshipment.cargo_manifest":"Download Cargo Manifest", - "FCSshipment.create":"FCS တင်ပို့ခြင်းပြုလုပ်ရန်", - "FCSshipment.update":"FCS တင်ပို့ခြင်းပြုပြင်ရန်", + "FCSshipment.commercial_invoice":"ငွေတောင်းခံလွှာကိုဒေါင်းမည်", + "FCSshipment.packing_list":"ထုပ်ပိုးစာရင်းကိုဒေါင်းမည်", + "FCSshipment.dms":"DMS ကိုဒေါင်းမည်", + "FCSshipment.cargo_manifest":"ကုန်ပစ္စည်းကိုဒေါင်းမည်", + "FCSshipment.create":"FCS တင်ပို့ခြင်းပြုလုပ်မည်", + "FCSshipment.update":"FCS တင်ပို့ခြင်းပြုပြင်မည်", "FCS Shipment End ================================================================":"", "Shipment Start ================================================================":"", @@ -309,25 +314,30 @@ "shipment.new": "ပို့ဆောင်ခြင်း အသစ်", "shipment.new.title": "ပို့ဆောင်ခြင်း အသစ်", "shipment.edit.title": "ပို့ဆောင်ခြင်း ပြင်ဆင်ခြင်း", - "shipment.type": "Pickup/Drop-off", - "shipment.date": "Pickup date", - "shipment.date.time": "Pickup date/Time", - "shipment.time": "Pickup time", + "shipment.type": "Pickup/Drop-off ရွေးရန်", + "shipment.date": "Pickup နေ့စွဲ", + "shipment.date.time": "Pickup နေ့စွဲ/အချိန်", + "shipment.time": "Pickup အချိန်", "shipment.location_time": "Pickup location / Time", - "shipment.location": "Pickup location", + "shipment.location": "Pickup လိပ်စာ", "shipment.information": "Pickup informations", "shipment.recipient_information": "Recipient informations", - "shipment.from":"From", - "shipment.to":"To", - "shipment.box.delivery":"Delivery address", + "shipment.from":"အချိန်(မှ)", + "shipment.to":"အချိန်(သို့)", + "shipment.box.delivery":"ပို့ဆောင်ရမည့်လိပ်စာ", "shipment.handling.fee":"Handling fee/Courier fee", - "shipment.box.cargo.type":"Cargo types", - "shipment.box.dimemsion":"Dimension", - "shipment.box.shipment.weight":"Shipment weight", - "shipment.box.length":"Length", - "shipment.box.width":"Width", - "shipment.box.height":"Height", - "shipment.box.add":"Add carton", + "shipment.box.cargo.type":"ကုန်ပစ္စည်းအမျိုးအစားများ", + "shipment.box.dimemsion":"အရွယ်အစား", + "shipment.box.shipment.weight":"တင်ပို့အလေးချိန်", + "shipment.box.length":"အလျား", + "shipment.box.width":"အနံ", + "shipment.box.height":"အမြင့်", + "shipment.box.add":"သေတ္တာထည့်မည်", + "shipment.cargo.total":"စုစုပေါင်း အလေးချိန်", + "shipment.popupmenu.active":"လာမည့် အထုပ်များ", + "shipment.popupmenu.delivered":"ပို့ပြီးသော အထုပ်များ", + "shipment.create":"ပို့ဆောင်ခြင်း ပြုလုပ်မည်", + "shipment.update":"ပို့ဆောင်ခြင်းပြုပြင်မည်", "Shipment End ================================================================":"", "Rate Start ================================================================":"", diff --git a/lib/pages/box/box_editor.dart b/lib/pages/box/box_editor.dart index 5dbd6a8..55044d4 100644 --- a/lib/pages/box/box_editor.dart +++ b/lib/pages/box/box_editor.dart @@ -464,10 +464,9 @@ class _BoxEditorState extends State { child: Row( children: [ Expanded( - child: new Text( - "Total Weight", - style: TextStyle(fontWeight: FontWeight.bold), - )), + child: LocalText(context, "box.cargo.total", + color: Colors.black87, fontWeight: FontWeight.bold), + ), Padding( padding: const EdgeInsets.only(right: 40.0), child: Align( diff --git a/lib/pages/box/box_list.dart b/lib/pages/box/box_list.dart index c035366..0b9daec 100644 --- a/lib/pages/box/box_list.dart +++ b/lib/pages/box/box_list.dart @@ -2,6 +2,8 @@ import 'package:fcs/helpers/theme.dart'; import 'package:fcs/localization/app_translations.dart'; import 'package:fcs/pages/box/model/box_model.dart'; import 'package:fcs/pages/widgets/bottom_up_page_route.dart'; +import 'package:fcs/pages/widgets/local_popup_menu_button.dart'; +import 'package:fcs/pages/widgets/local_popupmenu.dart'; import 'package:fcs/pages/widgets/local_text.dart'; import 'package:fcs/pages/widgets/progress.dart'; import 'package:flutter/cupertino.dart'; @@ -18,6 +20,7 @@ class BoxList extends StatefulWidget { class _BoxListState extends State { bool _isLoading = false; + bool _showDelivered = false; @override void initState() { @@ -31,110 +34,70 @@ class _BoxListState extends State { @override Widget build(BuildContext context) { + var boxModel = Provider.of(context); + final popupMenu = LocalPopupMenuButton( + popmenus: [ + LocalPopupMenu(id: 1, textKey: "box.popupmenu.active", selected: true), + LocalPopupMenu(id: 2, textKey: "box.popupmenu.delivered") + ], + popupMenuCallback: (p) => this.setState(() { + _showDelivered = p.id == 2; + }), + ); return LocalProgress( inAsyncCall: _isLoading, child: DefaultTabController( length: 2, child: Scaffold( - appBar: AppBar( - centerTitle: true, - leading: new IconButton( - icon: new Icon(CupertinoIcons.back), - onPressed: () => Navigator.of(context).pop(), - ), - backgroundColor: primaryColor, - title: LocalText(context, "boxes.name", - color: Colors.white, fontSize: 20), - actions: [ - IconButton( - icon: Icon( - Icons.search, - color: Colors.white, - ), - iconSize: 30, onPressed: () {}, - // onPressed: () => showPlacesSearch(context), + appBar: AppBar( + centerTitle: true, + leading: new IconButton( + icon: new Icon(CupertinoIcons.back), + onPressed: () => Navigator.of(context).pop(), + ), + backgroundColor: primaryColor, + title: LocalText(context, "boxes.name", + color: Colors.white, fontSize: 20), + actions: [ + IconButton( + icon: Icon( + Icons.search, + color: Colors.white, ), - ], - bottom: TabBar( - unselectedLabelColor: Colors.grey, - tabs: [ - Tab( - text: "Upcoming", - ), - Tab(text: "Delivered"), - ], + iconSize: 30, onPressed: () {}, + // onPressed: () => showPlacesSearch(context), ), - ), - floatingActionButton: FloatingActionButton.extended( - onPressed: () { - _newPickup(); - }, - icon: Icon(Icons.add), - label: Text(AppTranslations.of(context).text("boxes.new")), - backgroundColor: primaryColor, - ), - body: TabBarView( - children: [ - _upComing(), - _completed(), - ], - )), + popupMenu + ], + ), + floatingActionButton: FloatingActionButton.extended( + onPressed: () { + _newBox(); + }, + icon: Icon(Icons.add), + label: LocalText(context, "boxes.new", color: Colors.white), + backgroundColor: primaryColor, + ), + body: new ListView.separated( + separatorBuilder: (context, index) => Divider( + color: Colors.black, + ), + scrollDirection: Axis.vertical, + padding: EdgeInsets.only(top: 15), + shrinkWrap: true, + itemCount: boxModel.boxes.length, + itemBuilder: (BuildContext context, int index) { + return BoxListRow(box: boxModel.boxes[index]); + }), + ), ), ); } - _newPickup() { + _newBox() { Navigator.push( context, CupertinoPageRoute(builder: (context) => BoxEditor()), ); } - - Widget _upComing() { - var boxModel = Provider.of(context); - return Column( - children: [ - Expanded( - child: new ListView.separated( - separatorBuilder: (context, index) => Divider( - color: Colors.black, - ), - scrollDirection: Axis.vertical, - padding: EdgeInsets.only(top: 15), - shrinkWrap: true, - itemCount: boxModel.upcoming.length, - itemBuilder: (BuildContext context, int index) { - return BoxListRow( - box: boxModel.upcoming[index], - isReadOnly: false, - ); - }), - ), - ], - ); - } - - Widget _completed() { - var boxModel = Provider.of(context); - return Column( - children: [ - Expanded( - child: new ListView.separated( - separatorBuilder: (context, index) => Divider( - color: Colors.black, - ), - scrollDirection: Axis.vertical, - padding: EdgeInsets.only(top: 15), - shrinkWrap: true, - itemCount: boxModel.completed.length, - itemBuilder: (BuildContext context, int index) { - return BoxListRow( - box: boxModel.completed[index], - isReadOnly: false, - ); - }), - ), - ], - ); - } } diff --git a/lib/pages/box/box_list_row.dart b/lib/pages/box/box_list_row.dart index a4ba0c3..e8cce5b 100644 --- a/lib/pages/box/box_list_row.dart +++ b/lib/pages/box/box_list_row.dart @@ -6,9 +6,8 @@ import 'package:intl/intl.dart'; import 'box_info.dart'; class BoxListRow extends StatefulWidget { - final bool isReadOnly; final Box box; - const BoxListRow({this.box, this.isReadOnly}); + const BoxListRow({this.box}); @override _BoxListRowState createState() => _BoxListRowState(); diff --git a/lib/pages/delivery/delivery_list.dart b/lib/pages/delivery/delivery_list.dart index 2314714..6e1b557 100644 --- a/lib/pages/delivery/delivery_list.dart +++ b/lib/pages/delivery/delivery_list.dart @@ -1,6 +1,9 @@ import 'package:fcs/helpers/theme.dart'; import 'package:fcs/localization/app_translations.dart'; import 'package:fcs/pages/box/model/box_model.dart'; +import 'package:fcs/pages/widgets/local_popup_menu_button.dart'; +import 'package:fcs/pages/widgets/local_popupmenu.dart'; +import 'package:fcs/pages/widgets/local_text.dart'; import 'package:fcs/pages/widgets/progress.dart'; import 'package:flutter/cupertino.dart'; import 'package:flutter/material.dart'; @@ -15,6 +18,7 @@ class DeliverList extends StatefulWidget { class _DeliverListState extends State { bool _isLoading = false; + bool _showDelivered = false; @override void initState() { @@ -28,102 +32,55 @@ class _DeliverListState extends State { @override Widget build(BuildContext context) { + var boxModel = Provider.of(context); + final popupMenu = LocalPopupMenuButton( + popmenus: [ + LocalPopupMenu(id: 1, textKey: "delivery.popupmenu.active", selected: true), + LocalPopupMenu(id: 2, textKey: "delivery.popupmenu.delivered") + ], + popupMenuCallback: (p) => this.setState(() { + _showDelivered = p.id == 2; + }), + ); return LocalProgress( inAsyncCall: _isLoading, child: DefaultTabController( length: 2, child: Scaffold( - appBar: AppBar( - centerTitle: true, - leading: new IconButton( - icon: new Icon(CupertinoIcons.back), - onPressed: () => Navigator.of(context).pop(), - ), - backgroundColor: primaryColor, - title: Text(AppTranslations.of(context).text("delivery")), - actions: [ - IconButton( - icon: Icon( - Icons.search, - color: Colors.white, - ), - iconSize: 30, - // onPressed: () => showPlacesSearch(context), - ), - ], - bottom: TabBar( - unselectedLabelColor: Colors.grey, - tabs: [ - Tab( - text: "Upcoming", - ), - Tab(text: "Delivered"), - ], - ), + appBar: AppBar( + centerTitle: true, + leading: new IconButton( + icon: new Icon(CupertinoIcons.back), + onPressed: () => Navigator.of(context).pop(), ), - // floatingActionButton: FloatingActionButton.extended( - // onPressed: () { - // _newPickup(); - // }, - // icon: Icon(Icons.add), - // label: Text(AppTranslations.of(context).text("boxes.new")), - // backgroundColor: primaryColor, - // ), - body: TabBarView( - children: [ - _upComing(), - _completed(), - ], - )), + backgroundColor: primaryColor, + title: LocalText(context, "delivery", + color: Colors.white, fontSize: 20), + actions: [ + IconButton( + icon: Icon( + Icons.search, + color: Colors.white, + ), + iconSize: 30, + // onPressed: () => showPlacesSearch(context), + ), + popupMenu + ], + ), + body: new ListView.separated( + separatorBuilder: (context, index) => Divider( + color: Colors.black, + ), + scrollDirection: Axis.vertical, + padding: EdgeInsets.only(top: 15), + shrinkWrap: true, + itemCount: boxModel.boxes.length, + itemBuilder: (BuildContext context, int index) { + return DeliveryListRow(box: boxModel.boxes[index]); + }), + ), ), ); } - - Widget _upComing() { - var boxModel = Provider.of(context); - return Column( - children: [ - Expanded( - child: new ListView.separated( - separatorBuilder: (context, index) => Divider( - color: Colors.black, - ), - scrollDirection: Axis.vertical, - padding: EdgeInsets.only(top: 15), - shrinkWrap: true, - itemCount: boxModel.upcoming.length, - itemBuilder: (BuildContext context, int index) { - return DeliveryListRow( - box: boxModel.upcoming[index], - isReadOnly: false, - ); - }), - ), - ], - ); - } - - Widget _completed() { - var boxModel = Provider.of(context); - return Column( - children: [ - Expanded( - child: new ListView.separated( - separatorBuilder: (context, index) => Divider( - color: Colors.black, - ), - scrollDirection: Axis.vertical, - padding: EdgeInsets.only(top: 15), - shrinkWrap: true, - itemCount: boxModel.completed.length, - itemBuilder: (BuildContext context, int index) { - return DeliveryListRow( - box: boxModel.completed[index], - isReadOnly: false, - ); - }), - ), - ], - ); - } } diff --git a/lib/pages/delivery/delivery_list_row.dart b/lib/pages/delivery/delivery_list_row.dart index 0941bbf..fd7eeef 100644 --- a/lib/pages/delivery/delivery_list_row.dart +++ b/lib/pages/delivery/delivery_list_row.dart @@ -1,15 +1,13 @@ import 'package:fcs/domain/entities/box.dart'; import 'package:fcs/pages/box/box_editor.dart'; import 'package:fcs/pages/main/util.dart'; -import 'package:fcs/pages/widgets/bottom_up_page_route.dart'; import 'package:flutter/cupertino.dart'; import 'package:flutter/material.dart'; import 'package:intl/intl.dart'; class DeliveryListRow extends StatefulWidget { - final bool isReadOnly; final Box box; - const DeliveryListRow({this.box, this.isReadOnly}); + const DeliveryListRow({this.box}); @override _DeliveryListRowState createState() => _DeliveryListRowState(); @@ -32,17 +30,10 @@ class _DeliveryListRowState extends State { padding: EdgeInsets.only(left: 15, right: 15), child: InkWell( onTap: () { - if (widget.isReadOnly) { - // Navigator.push( - // context, - // CupertinoPageRoute(builder: (context) => PackageInfo(package: _box)), - // ); - } else { - Navigator.push( - context, - CupertinoPageRoute(builder: (context) => BoxEditor(box: _box)), - ); - } + Navigator.push( + context, + CupertinoPageRoute(builder: (context) => BoxEditor(box: _box)), + ); }, child: Row( children: [ diff --git a/lib/pages/fcs_shipment/fcs_shipment_editor.dart b/lib/pages/fcs_shipment/fcs_shipment_editor.dart index 4d700bf..bbaa818 100644 --- a/lib/pages/fcs_shipment/fcs_shipment_editor.dart +++ b/lib/pages/fcs_shipment/fcs_shipment_editor.dart @@ -100,7 +100,6 @@ class _FcsShipmentEditorState extends State { color: primaryColor, fontSize: 18, ), - actions: _isNew ? [] : [menuPopWidget(context)], ), body: Padding( padding: const EdgeInsets.all(10.0), @@ -175,59 +174,6 @@ class _FcsShipmentEditorState extends State { ); } - Widget menuPopWidget(BuildContext context) { - return PopupMenuButton( - elevation: 3.2, - icon: Icon(Icons.more_vert, color: primaryColor), - tooltip: 'This is tooltip', - onSelected: (choice) { - if (choice.id == 1) { - Navigator.pop(context); - } else if (choice.id == 2) { - Navigator.pop(context); - } else if (choice.id == 3) { - Navigator.pop(context); - } else if (choice.id == 4) { - Navigator.pop(context); - } - }, - itemBuilder: (BuildContext context) { - List menuPopup = [ - PopupMenu( - id: 3, - status: "FCSshipment.commercial_invoice", - ), - PopupMenu(id: 2, status: "FCSshipment.packing_list"), - PopupMenu( - id: 5, - status: "FCSshipment.dms", - ), - PopupMenu( - id: 4, - status: "FCSshipment.cargo_manifest", - ), - ]; - - return menuPopup.map((PopupMenu choice) { - return PopupMenuItem( - value: choice, - child: Row( - crossAxisAlignment: CrossAxisAlignment.start, - children: [ - Container( - padding: EdgeInsets.only(left: 15), - child: LocalText( - context, - choice.status, - color: primaryColor, - )), - ], - ), - ); - }).toList(); - }); - } - FcsShipment _getPayload() { FcsShipment fcsShipment = FcsShipment(); fcsShipment.id = _shipment.id; diff --git a/lib/pages/fcs_shipment/fcs_shipment_info.dart b/lib/pages/fcs_shipment/fcs_shipment_info.dart new file mode 100644 index 0000000..d181032 --- /dev/null +++ b/lib/pages/fcs_shipment/fcs_shipment_info.dart @@ -0,0 +1,206 @@ +import 'package:fcs/domain/entities/fcs_shipment.dart'; +import 'package:fcs/helpers/theme.dart'; +import 'package:fcs/pages/widgets/display_text.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'; +import 'package:flutter_icons/flutter_icons.dart'; +import 'package:font_awesome_flutter/font_awesome_flutter.dart'; +import 'package:intl/intl.dart'; + +import 'fcs_shipment_editor.dart'; + +class FcsShipmentInfo extends StatefulWidget { + final FcsShipment fcsShipment; + FcsShipmentInfo({this.fcsShipment}); + + @override + _FcsShipmentInfoState createState() => _FcsShipmentInfoState(); +} + +class _FcsShipmentInfoState extends State { + var dateFormatter = new DateFormat('dd MMM yyyy'); + FcsShipment _fcsShipment; + bool _isLoading = false; + TextEditingController _shipmentNumberController = new TextEditingController(); + TextEditingController _cutoffDateController = new TextEditingController(); + TextEditingController _arrivalDateController = new TextEditingController(); + TextEditingController _departureDateControler = new TextEditingController(); + TextEditingController _shipmentTypeControler = new TextEditingController(); + TextEditingController _consigneeController = new TextEditingController(); + TextEditingController _portController = new TextEditingController(); + TextEditingController _destinationController = new TextEditingController(); + TextEditingController _statusController = new TextEditingController(); + + @override + void initState() { + super.initState(); + _fcsShipment = widget.fcsShipment; + _shipmentNumberController.text = _fcsShipment.shipmentNumber; + _cutoffDateController.text = dateFormatter.format(_fcsShipment.cutoffDate); + _arrivalDateController.text = + dateFormatter.format(_fcsShipment.arrivalDate); + _departureDateControler.text = + dateFormatter.format(_fcsShipment.departureDate); + _shipmentTypeControler.text = _fcsShipment.shipType; + _consigneeController.text = _fcsShipment.consignee; + _portController.text = _fcsShipment.port; + _destinationController.text = _fcsShipment.destination; + _statusController.text = _fcsShipment.status; + } + + @override + void dispose() { + super.dispose(); + } + + @override + Widget build(BuildContext context) { + final shipmentNumberBox = DisplayText( + text: _shipmentNumberController.text, + labelTextKey: "FCSshipment.number", + iconData: Ionicons.ios_airplane, + ); + final cutoffDateDBox = DisplayText( + text: _cutoffDateController.text, + labelTextKey: "FCSshipment.cutoff_date", + iconData: Icons.date_range, + ); + final etaBox = DisplayText( + text: _arrivalDateController.text, + labelTextKey: "FCSshipment.ETA", + iconData: Icons.date_range, + ); + + final departureDateBox = DisplayText( + text: _departureDateControler.text, + labelTextKey: "FCSshipment.departure_date", + iconData: Icons.date_range, + ); + + final shipTypeBox = DisplayText( + text: _shipmentTypeControler.text, + labelTextKey: "FCSshipment.shipment_type", + iconData: Ionicons.ios_airplane, + ); + + final consigneeBox = DisplayText( + text: _consigneeController.text, + labelTextKey: "FCSshipment.consignee", + iconData: Icons.work, + ); + + final portBox = DisplayText( + text: _portController.text, + labelTextKey: "FCSshipment.port_of_loading", + iconData: FontAwesomeIcons.ship, + ); + + final destinationBox = DisplayText( + text: _destinationController.text, + labelTextKey: "FCSshipment.final_destination", + iconData: MaterialCommunityIcons.location_enter, + ); + + final statusBox = DisplayText( + text: _statusController.text, + labelTextKey: "FCSshipment.status", + iconData: Icons.av_timer, + ); + + return LocalProgress( + inAsyncCall: _isLoading, + child: Scaffold( + appBar: AppBar( + centerTitle: true, + leading: new IconButton( + icon: new Icon(CupertinoIcons.back, color: primaryColor, size: 30), + onPressed: () => Navigator.of(context).pop(), + ), + shadowColor: Colors.transparent, + backgroundColor: Colors.white, + title: LocalText( + context, + "FCSshipment.form.title", + fontSize: 20, + color: primaryColor, + ), + actions: [ + IconButton( + icon: Icon(Icons.edit, color: primaryColor), + onPressed: _edit, + ), + menuPopWidget(context) + ], + ), + body: Card( + child: Column( + children: [ + Expanded( + child: Padding( + padding: const EdgeInsets.all(10.0), + child: ListView(children: [ + shipmentNumberBox, + cutoffDateDBox, + etaBox, + departureDateBox, + shipTypeBox, + consigneeBox, + portBox, + destinationBox, + statusBox, + SizedBox( + height: 20, + ) + ]), + )), + ], + ), + ), + ), + ); + } + + _edit() async { + await Navigator.push( + context, + CupertinoPageRoute( + builder: (context) => FcsShipmentEditor(shipment: _fcsShipment)), + ); + } + + Widget menuPopWidget(BuildContext context) { + return PopupMenuButton( + elevation: 3.2, + icon: Icon(Icons.more_vert, color: primaryColor), + tooltip: 'This is tooltip', + onSelected: (choice) { + print(choice.id); + if (choice.id == 1) { + } else if (choice.id == 2) { + } else if (choice.id == 3) { + } else if (choice.id == 4) {} + }, + itemBuilder: (BuildContext context) { + return menuPopup.map((PopupMenu choice) { + return PopupMenuItem( + value: choice, + child: Row( + crossAxisAlignment: CrossAxisAlignment.start, + children: [ + Container( + padding: EdgeInsets.only(left: 15), + child: LocalText( + context, + choice.status, + color: primaryColor, + )), + ], + ), + ); + }).toList(); + }); + } +} diff --git a/lib/pages/fcs_shipment/fcs_shipment_list.dart b/lib/pages/fcs_shipment/fcs_shipment_list.dart index 8303721..c13242b 100644 --- a/lib/pages/fcs_shipment/fcs_shipment_list.dart +++ b/lib/pages/fcs_shipment/fcs_shipment_list.dart @@ -1,7 +1,5 @@ import 'package:fcs/helpers/theme.dart'; -import 'package:fcs/localization/app_translations.dart'; import 'package:fcs/pages/fcs_shipment/model/fcs_shipment_model.dart'; -import 'package:fcs/pages/widgets/bottom_up_page_route.dart'; import 'package:fcs/pages/widgets/local_text.dart'; import 'package:fcs/pages/widgets/progress.dart'; import 'package:flutter/cupertino.dart'; diff --git a/lib/pages/fcs_shipment/fcs_shipment_list_row.dart b/lib/pages/fcs_shipment/fcs_shipment_list_row.dart index 9d0495e..7b5146d 100644 --- a/lib/pages/fcs_shipment/fcs_shipment_list_row.dart +++ b/lib/pages/fcs_shipment/fcs_shipment_list_row.dart @@ -1,13 +1,11 @@ import 'package:fcs/domain/entities/fcs_shipment.dart'; import 'package:fcs/helpers/theme.dart'; import 'package:fcs/pages/main/util.dart'; -import 'package:fcs/pages/widgets/bottom_up_page_route.dart'; import 'package:flutter/cupertino.dart'; import 'package:flutter/material.dart'; import 'package:flutter_icons/flutter_icons.dart'; import 'package:intl/intl.dart'; - -import 'fcs_shipment_editor.dart'; +import 'fcs_shipment_info.dart'; class FcsShipmentListRow extends StatelessWidget { final FcsShipment shipment; @@ -21,7 +19,7 @@ class FcsShipmentListRow extends StatelessWidget { child: InkWell( onTap: () { Navigator.of(context).push(CupertinoPageRoute( - builder: (context) => FcsShipmentEditor(shipment: shipment))); + builder: (context) => FcsShipmentInfo(fcsShipment: shipment))); }, child: Row( children: [ diff --git a/lib/pages/shipment/shipment_box_editor.dart b/lib/pages/shipment/shipment_box_editor.dart index c838e64..6b83b4c 100644 --- a/lib/pages/shipment/shipment_box_editor.dart +++ b/lib/pages/shipment/shipment_box_editor.dart @@ -252,14 +252,17 @@ class _ShipmentBoxEditorState extends State { cells: [ MyDataCell(Align( alignment: Alignment.centerRight, - child: Text("Total", - style: TextStyle( - fontWeight: FontWeight.bold, - )), + child: LocalText( + context, + "shipment.cargo.total", + color: Colors.black87, + fontWeight: FontWeight.bold, + ), + )), MyDataCell( Padding( - padding: const EdgeInsets.only(right: 45.0), + padding: const EdgeInsets.only(right: 48.0), child: Align( alignment: Alignment.centerRight, child: Text(total.toString(), diff --git a/lib/pages/shipment/shipment_editor.dart b/lib/pages/shipment/shipment_editor.dart index c4d7838..9efd83e 100644 --- a/lib/pages/shipment/shipment_editor.dart +++ b/lib/pages/shipment/shipment_editor.dart @@ -181,6 +181,13 @@ class _ShipmentEditorState extends State { selectedValue: _selectedPickupType, values: pickupModel.pickupTypes, ); + final createBtn = LocalButton( + textKey: "shipment.create", + ); + + final updateBtn = LocalButton( + textKey: "shipment.update", + ); return LocalProgress( inAsyncCall: _isLoading, @@ -245,9 +252,7 @@ class _ShipmentEditorState extends State { Column( children: getBoxList(context, boxModel.boxes), ), - LocalButton( - textKey: "shipment.new", - ), + _isNew ? createBtn : updateBtn, ], ), ), diff --git a/lib/pages/shipment/shipment_list.dart b/lib/pages/shipment/shipment_list.dart index ec766db..b254f55 100644 --- a/lib/pages/shipment/shipment_list.dart +++ b/lib/pages/shipment/shipment_list.dart @@ -2,6 +2,8 @@ import 'package:fcs/helpers/theme.dart'; import 'package:fcs/localization/app_translations.dart'; import 'package:fcs/pages/shipment/model/shipment_model.dart'; import 'package:fcs/pages/widgets/bottom_up_page_route.dart'; +import 'package:fcs/pages/widgets/local_popup_menu_button.dart'; +import 'package:fcs/pages/widgets/local_popupmenu.dart'; import 'package:fcs/pages/widgets/local_text.dart'; import 'package:fcs/pages/widgets/progress.dart'; import 'package:flutter/cupertino.dart'; @@ -19,6 +21,7 @@ class ShipmentList extends StatefulWidget { class _ShipmentListState extends State { bool _isLoading = false; + bool _showDelivered = false; @override void initState() { @@ -33,6 +36,16 @@ class _ShipmentListState extends State { @override Widget build(BuildContext context) { var pickupModel = Provider.of(context); + final popupMenu = LocalPopupMenuButton( + popmenus: [ + LocalPopupMenu( + id: 1, textKey: "shipment.popupmenu.active", selected: true), + LocalPopupMenu(id: 2, textKey: "shipment.popupmenu.delivered") + ], + popupMenuCallback: (p) => this.setState(() { + _showDelivered = p.id == 2; + }), + ); return LocalProgress( inAsyncCall: _isLoading, child: DefaultTabController( @@ -56,6 +69,7 @@ class _ShipmentListState extends State { iconSize: 30, // onPressed: () => showPlacesSearch(context), ), + popupMenu ], ), floatingActionButton: FloatingActionButton.extended( diff --git a/lib/pages/widgets/length_picker.dart b/lib/pages/widgets/length_picker.dart index 386e90d..9721bef 100644 --- a/lib/pages/widgets/length_picker.dart +++ b/lib/pages/widgets/length_picker.dart @@ -62,6 +62,7 @@ class _LengthPickerState extends State { builder: (BuildContext context) { return LengthPickerDialog( controller: widget.controller, + labelKey: widget.lableKey, ); }, ); @@ -70,8 +71,10 @@ class _LengthPickerState extends State { class LengthPickerDialog extends StatefulWidget { final TextEditingController controller; + final String labelKey; - const LengthPickerDialog({Key key, this.controller}) : super(key: key); + const LengthPickerDialog({Key key, this.controller, this.labelKey}) + : super(key: key); @override _LengthPickerDialogState createState() => _LengthPickerDialogState(); @@ -98,7 +101,7 @@ class _LengthPickerDialogState extends State { title: Center( child: LocalText( context, - "shipment.box.height", + widget.labelKey, color: primaryColor, fontSize: 16, )), diff --git a/lib/pages/widgets/popupmenu.dart b/lib/pages/widgets/popupmenu.dart index c95d348..3587571 100644 --- a/lib/pages/widgets/popupmenu.dart +++ b/lib/pages/widgets/popupmenu.dart @@ -5,8 +5,17 @@ class PopupMenu { } List menuPopup = [ - PopupMenu(id: 1, status: "Download Commercial Invoice"), - PopupMenu(id: 2, status: "Download Packing List"), - PopupMenu(id: 3, status: "Download DMS"), - PopupMenu(id: 5, status: "Download Cargo Manifest"), + PopupMenu( + id: 1, + status: "FCSshipment.commercial_invoice", + ), + PopupMenu(id: 2, status: "FCSshipment.packing_list"), + PopupMenu( + id: 3, + status: "FCSshipment.dms", + ), + PopupMenu( + id: 4, + status: "FCSshipment.cargo_manifest", + ), ];