From 0530d401f4c8cf6e353b88d569117fbb8c8d293c Mon Sep 17 00:00:00 2001 From: sma Date: Thu, 8 Feb 2024 17:01:32 +0630 Subject: [PATCH 1/3] prepare carton image upload page and carton info page --- lib/domain/entities/carton.dart | 10 +- lib/pages/carton/carton_image_upload.dart | 100 +-- lib/pages/carton/carton_info.dart | 741 ++++++++-------------- 3 files changed, 342 insertions(+), 509 deletions(-) diff --git a/lib/domain/entities/carton.dart b/lib/domain/entities/carton.dart index aefc255..35d74e0 100644 --- a/lib/domain/entities/carton.dart +++ b/lib/domain/entities/carton.dart @@ -37,6 +37,7 @@ class Carton { String? cartonSizeID; String? cartonSizeName; double cartonWeight; + String? billToValue; bool isSelected; int rate; @@ -44,6 +45,7 @@ class Carton { String? packageType; String? pickUpID; List photos = []; + List photoUrls; String? remark; DateTime? arrivedDate; String? cartonNumber; @@ -147,6 +149,7 @@ class Carton { this.packages = const [], this.cargoTypes = const [], this.cartonNumber, + this.billToValue, this.fcsShipmentID, this.fcsShipmentNumber, this.packageIDs = const [], @@ -160,6 +163,7 @@ class Carton { this.mixCartons = const [], this.mixCartonIDs = const [], this.cartonWeight =0, + this.photoUrls = const [], this.isSelected = false}); Map toMap() { @@ -199,6 +203,8 @@ class Carton { List>.from(map['mix_cartons'] ?? []); var _mixCartons = mixCartonsMaps.map((e) => Carton.fromMap(e, e["id"])).toList(); + List _photoUrls = + map['photo_urls'] == null ? [] : List.from(map['photo_urls']); return Carton( id: docID, @@ -231,6 +237,7 @@ class Carton { senderName: map['sender_name'], mixCartonIDs: List.from(map['mix_carton_ids'] ?? []), cartonWeight: (map['carton_weight'] ?? 0).toDouble(), + photoUrls: _photoUrls, ); } @@ -254,7 +261,8 @@ class Carton { 'mix_cartons': _mixCartons, 'sender_id': senderID, 'sender_fcs_id': senderFCSID, - 'sender_name': senderName + 'sender_name': senderName, + "photo_urls": photoUrls }; } diff --git a/lib/pages/carton/carton_image_upload.dart b/lib/pages/carton/carton_image_upload.dart index 66cc338..e39f374 100644 --- a/lib/pages/carton/carton_image_upload.dart +++ b/lib/pages/carton/carton_image_upload.dart @@ -1,21 +1,11 @@ import 'package:fcs/domain/entities/carton.dart'; -import 'package:fcs/domain/entities/package.dart'; -import 'package:fcs/domain/entities/user.dart'; import 'package:fcs/helpers/theme.dart'; -import 'package:fcs/pages/main/util.dart'; -import 'package:fcs/pages/package/model/package_model.dart'; -import 'package:fcs/pages/user_search/user_serach.dart'; -import 'package:fcs/pages/widgets/barcode_scanner.dart'; -import 'package:fcs/pages/widgets/display_text.dart'; -import 'package:fcs/pages/widgets/fcs_id_icon.dart'; -import 'package:fcs/pages/widgets/input_text.dart'; import 'package:fcs/pages/widgets/local_app_bar.dart'; import 'package:fcs/pages/widgets/multi_img_controller.dart'; import 'package:fcs/pages/widgets/multi_img_file.dart'; import 'package:fcs/pages/widgets/progress.dart'; import 'package:flutter/material.dart'; - typedef void FindCallBack(); class CartonImageUpload extends StatefulWidget { @@ -26,15 +16,15 @@ class CartonImageUpload extends StatefulWidget { } class _CartonImageUploaState extends State { - bool _isLoading = false; - Carton? _box; - late bool _isNew; + bool _isLoading = false; + Carton? _box; MultiImgController multiImgController = MultiImgController(); @override void initState() { super.initState(); - multiImgController.setImageUrls = _box!.photos; + _box = widget.box; + multiImgController.setImageUrls = _box?.photoUrls; } @override @@ -42,39 +32,53 @@ class _CartonImageUploaState extends State { return LocalProgress( inAsyncCall: _isLoading, child: Scaffold( - appBar: LocalAppBar( - labelKey: "box.imageupload.title", - backgroundColor: Colors.white, - labelColor: primaryColor, - arrowColor: primaryColor, - actions: [] - // isEdiable - // ? [ - // IconButton( - // icon: Icon(Icons.edit, color: primaryColor), - // onPressed: _gotoEditor, - // ), - // IconButton( - // icon: Icon(Icons.delete, color: primaryColor), - // onPressed: _delete, - // ), - // ] - // : [], - ), - body: ListView( - children: [ - - //img - ], - ) - - - ) - ); + appBar: LocalAppBar( + labelKey: "box.imageupload.title", + backgroundColor: Colors.white, + labelColor: primaryColor, + arrowColor: primaryColor, + actions: [] + // isEdiable + // ? [ + // IconButton( + // icon: Icon(Icons.edit, color: primaryColor), + // onPressed: _gotoEditor, + // ), + // IconButton( + // icon: Icon(Icons.delete, color: primaryColor), + // onPressed: _delete, + // ), + // ] + // : [], + ), + body: ListView( + children: [ + Center( + child: Text("${_box?.cartonNumber}", + style: TextStyle( + color: primaryColor, + fontSize: 25, + ))), + MultiImageFile( + enabled: true, + controller: multiImgController, + title: "Receipt File", + ), + Center( + child: ElevatedButton( + style: ElevatedButton.styleFrom( + backgroundColor: Color(0xff272262), + elevation: 3, + shape: RoundedRectangleBorder( + borderRadius: BorderRadius.circular(5.0)), + minimumSize: Size(300, 45), //////// HERE + ), + onPressed: () {}, + child: + const Text('Save', style: TextStyle(fontSize: 20)), + ), + ), + ], + ))); } - // final img = MultiImageFile( - // enabled: true, - // controller:multiImgController, - // title: "Receipt File", - // ); } diff --git a/lib/pages/carton/carton_info.dart b/lib/pages/carton/carton_info.dart index 65982eb..b9a6dd3 100644 --- a/lib/pages/carton/carton_info.dart +++ b/lib/pages/carton/carton_info.dart @@ -2,48 +2,38 @@ import 'package:fcs/domain/constants.dart'; import 'package:fcs/domain/entities/cargo_type.dart'; import 'package:fcs/domain/entities/carton.dart'; import 'package:fcs/domain/entities/package.dart'; -import 'package:fcs/domain/entities/pickup.dart'; -import 'package:fcs/domain/vo/delivery_address.dart'; import 'package:fcs/helpers/theme.dart'; import 'package:fcs/pages/carton/carton_image_upload.dart'; +import 'package:fcs/pages/carton/carton_submit.dart'; import 'package:fcs/pages/carton_size/model/carton_size_model.dart'; import 'package:fcs/pages/main/util.dart'; import 'package:fcs/pages/package/model/package_model.dart'; import 'package:fcs/pages/rates/model/shipment_rate_model.dart'; -import 'package:fcs/pages/widgets/defalut_delivery_address.dart'; import 'package:fcs/pages/widgets/display_text.dart'; -import 'package:fcs/pages/widgets/fcs_id_icon.dart'; -import 'package:fcs/pages/widgets/length_picker.dart'; import 'package:fcs/pages/widgets/local_app_bar.dart'; -import 'package:fcs/pages/widgets/local_radio_buttons.dart'; import 'package:fcs/pages/widgets/local_text.dart'; -import 'package:fcs/pages/widgets/local_title.dart'; import 'package:fcs/pages/widgets/multi_img_controller.dart'; import 'package:fcs/pages/widgets/multi_img_file.dart'; import 'package:fcs/pages/widgets/progress.dart'; -import 'package:fcs/pages/widgets/status_tree.dart'; import 'package:flutter/cupertino.dart'; import 'package:flutter/material.dart'; import 'package:flutter_vector_icons/flutter_vector_icons.dart'; -import 'package:image_picker/image_picker.dart'; import 'package:intl/intl.dart'; import 'package:provider/provider.dart'; -import 'cargo_table.dart'; import 'carton_editor.dart'; -import 'carton_package_table.dart'; -import 'carton_row.dart'; import 'model/carton_model.dart'; -import 'widgets.dart'; final DateFormat dateFormat = DateFormat("d MMM yyyy"); final NumberFormat numberFormatter = NumberFormat("#,###"); class CartonInfo extends StatefulWidget { final Package? package; - final Carton box; - - CartonInfo({required this.box,this.package}); + final Carton box; + final String? billToValue; + final CartonSubmit? cartonSubmit; + + CartonInfo({required this.box,this.billToValue,this.package,this.cartonSubmit}); @override _CartonInfoState createState() => _CartonInfoState(); @@ -52,10 +42,9 @@ class CartonInfo extends StatefulWidget { class _CartonInfoState extends State { bool _isLoading = false; Carton? _box; + + CartonSubmit? _cartonSubmit; - - - DeliveryAddress? _deliveryAddress = new DeliveryAddress(); MultiImgController multiImgController = MultiImgController(); TextEditingController _widthController = new TextEditingController(); TextEditingController _heightController = new TextEditingController(); @@ -70,13 +59,17 @@ class _CartonInfoState extends State { bool isFromPackages = false; bool isSmallBag = false; bool isFromCartons = false; - bool isEdiable = false; - final List cargoTypes=[]; -final List surchareItems=[]; + bool isEdiable = false; + final List cargoTypes = []; + final List surchareItems = []; + @override void initState() { super.initState(); _box = widget.box; + _box?.billToValue="Bill to sender"; + _cartonSubmit=widget.cartonSubmit; + //initPackage(widget.package!); //for shipment weight volumetricRatio = Provider.of(context, listen: false) @@ -85,19 +78,18 @@ final List surchareItems=[]; _lengthController.addListener(_calShipmentWeight); _widthController.addListener(_calShipmentWeight); _heightController.addListener(_calShipmentWeight); - multiImgController.setImageUrls = _box!.photos; - _updateBoxData(); + multiImgController.setImageUrls = _box!.photos; + // _updateBoxData(); _loadPackages(); _loadMixCartons(); } - _updateBoxData() { _widthController.text = _box!.width.toString(); _heightController.text = _box!.height.toString(); _lengthController.text = _box!.length.toString(); _cartonSizeController.text = _box!.cartonSizeName ?? ""; - _deliveryAddress = _box!.deliveryAddress; + isMixBox = _box!.cartonType == carton_mix_box; isFromShipments = _box!.cartonType == carton_from_shipments; isFromPackages = _box!.cartonType == carton_from_packages; @@ -126,8 +118,8 @@ final List surchareItems=[]; _loadPackages() async { if (!isFromPackages && !isSmallBag) return; - if (_box!.cartonType == carton_from_packages && _box!.userID == null) - return; + // if (_box!.cartonType == carton_from_packages && _box!.userID == null) + // return; PackageModel packageModel = Provider.of(context, listen: false); List packages = @@ -179,161 +171,59 @@ final List surchareItems=[]; @override Widget build(BuildContext context) { - var cartonModel = Provider.of(context); - double totalWeight = _box!.cargoTypes.fold(0, (sum, value) => sum + value.weight); -double totalPieces = surchareItems.fold(0, (sum, value) => sum + value.qty); - // final cartonTypeBox = LocalRadioButtons( - // readOnly: true, - // values: cartonModel.cartonTypesInfo, - // selectedValue: (_box!.isShipmentCarton ?? false) - // ? carton_from_shipments - // : _box!.cartonType); + double totalWeight = + _box!.cargoTypes.fold(0, (sum, value) => sum + value.weight); + double totalPieces = surchareItems.fold(0, (sum, value) => sum + value.qty); + final cartonTypeBox = DisplayText( text: _box!.cartonNumber, labelTextKey: "box.number", - //iconData: Ionicons.ios_airplane, ); final cartonQrBox = DisplayText( - // text: _box!., - //labelTextKey: "box.number", iconData: AntDesign.qrcode, ); final shipmentBox = DisplayText( text: _box!.fcsShipmentNumber, labelTextKey: "box.fcs_shipment_num", - // iconData: Ionicons.ios_airplane, ); final deliveryBox = DisplayText( text: "Delivery Carton", labelTextKey: "box.delivery_type", - //icon: FcsIDIcon(), ); - // final fcsIDBox = DisplayText( - // text: _box!.fcsID == null ? "" : _box!.fcsID, - // labelTextKey: "box.fcs.id", - // //icon: FcsIDIcon(), - // ); - final customerNameBox = DisplayText( text: _box!.userName == null ? "" : _box!.userName, subText: Text(_box!.fcsID ?? "", style: textStyle), labelTextKey: "box.name", - - //iconData: Icons.person, ); - // final consigneefcsIDBox = DisplayText( - // text: _box!.fcsID != null ? _box!.fcsID : "", - // labelTextKey: "processing.fcs.id", - // icon: FcsIDIcon(), - // ); - final consigneeNameBox = DisplayText( text: _box!.senderName != null ? _box!.senderName : "", subText: Text(_box!.senderFCSID ?? "", style: textStyle), - labelTextKey: "processing.consignee.name", - //maxLines: 2, - // iconData: Ionicons.document_text_outline, ); - // final consigneeBox = Container( - // child: Column( - // children: [ - // consigneeNameBox, - // IconButton(icon:Icon(Ionicons.document_text_outline), - // onPressed:() {},), - // Text("Bill to",style:TextStyle(color:Color.fromARGB(255, 57, 80, 233))) - - // ], - // ), - // ); - - // final shipperIDBox = Row( - // children: [ - // Expanded( - // child: DisplayText( - // text: _box!.senderFCSID, - // labelTextKey: "processing.fcs.id", - // icon: FcsIDIcon(), - // )), - // ], - // ); - - // final shipperNamebox = DisplayText( - // text: _box!.senderName, - // labelTextKey: "processing.shipper.name", - // maxLines: 2, - // iconData: Icons.person, - // ); - - // final shipperBox = Container( - // child: Column( - // children: [ - // shipperIDBox, - // shipperNamebox, - // ], - // ), - // ); - - final lengthBox = LengthPicker( - controller: _lengthController, - lableKey: "box.length", - isReadOnly: true, - ); - final widthBox = LengthPicker( - controller: _widthController, - lableKey: "box.width", - isReadOnly: true, - ); - final heightBox = LengthPicker( - controller: _heightController, - lableKey: "box.height", - isReadOnly: true, - ); - - final dimBox = Row( - mainAxisAlignment: MainAxisAlignment.start, - children: [ - Padding( - padding: const EdgeInsets.only(right: 8.0), - child: Icon(FontAwesome.arrow_circle_right, color: primaryColor), - ), - SizedBox(child: lengthBox, width: 80), - SizedBox(child: widthBox, width: 80), - SizedBox(child: heightBox, width: 80), - ], - ); final packageBox = DisplayText( - //text: "203FVH", labelTextKey: "box.package", - ); - final cargosBox = Padding( + final cargosBox = Padding( padding: const EdgeInsets.only(top: 10), child: Column(crossAxisAlignment: CrossAxisAlignment.start, children: [ - // Padding( - // padding: const EdgeInsets.only(left: 5, bottom: 5, right: 20), Row( - mainAxisAlignment: MainAxisAlignment.spaceBetween, - children: [ - LocalText(context, 'box.cargo.type', - color: Colors.black54, - fontSize: 16, - fontWeight: FontWeight.normal), - Padding(padding: EdgeInsets.only(right: 100), - child: - Text("${removeTrailingZeros(totalWeight)} lb", - style: TextStyle(color: Colors.black54, fontSize: 15))) - ], - ), + mainAxisAlignment: MainAxisAlignment.spaceBetween, + children: [ + LocalText(context, 'box.cargo.type', + color: Colors.black54, + fontSize: 16, + fontWeight: FontWeight.normal), + Padding( + padding: EdgeInsets.only(right: 100), + child: Text("${removeTrailingZeros(totalWeight)} lb", + style: TextStyle(color: Colors.black54, fontSize: 15))) + ], + ), //), Container( - // decoration: BoxDecoration( - // border: Border.all(color: primaryColor), - // borderRadius: BorderRadius.circular(5), - // ), child: Padding( padding: const EdgeInsets.only(right: 100), child: Column( @@ -359,7 +249,6 @@ double totalPieces = surchareItems.fold(0, (sum, value) => sum + value.qty); ); }).toList()), const SizedBox(height: 10), - ], ), ), @@ -369,27 +258,21 @@ double totalPieces = surchareItems.fold(0, (sum, value) => sum + value.qty); final surchargeItemBox = Padding( padding: const EdgeInsets.only(top: 10), child: Column(crossAxisAlignment: CrossAxisAlignment.start, children: [ - // Padding( - // padding: const EdgeInsets.only(left: 5, bottom: 5, right: 20), Row( - mainAxisAlignment: MainAxisAlignment.spaceBetween, - children: [ - LocalText(context, 'box.surcharge.item', - color: Colors.black54, - fontSize: 16, - fontWeight: FontWeight.normal), - Padding(padding: EdgeInsets.only(right: 100), - child: - Text("${removeTrailingZeros(totalPieces)} pcs", - style: TextStyle(color: Colors.black54, fontSize: 15))) - ], - ), + mainAxisAlignment: MainAxisAlignment.spaceBetween, + children: [ + LocalText(context, 'box.surcharge.item', + color: Colors.black54, + fontSize: 16, + fontWeight: FontWeight.normal), + Padding( + padding: EdgeInsets.only(right: 100), + child: Text("${removeTrailingZeros(totalPieces)} pcs", + style: TextStyle(color: Colors.black54, fontSize: 15))) + ], + ), //), Container( - // decoration: BoxDecoration( - // border: Border.all(color: primaryColor), - // borderRadius: BorderRadius.circular(5), - // ), child: Padding( padding: const EdgeInsets.only(right: 100), child: Column( @@ -407,7 +290,8 @@ double totalPieces = surchareItems.fold(0, (sum, value) => sum + value.qty); style: TextStyle(color: Colors.black, fontSize: 15), ), - Text("${removeTrailingZeros((e.qty).toDouble())} pc", + Text( + "${removeTrailingZeros((e.qty).toDouble())} pc", style: TextStyle( color: Colors.black, fontSize: 15)) ], @@ -440,289 +324,228 @@ double totalPieces = surchareItems.fold(0, (sum, value) => sum + value.qty); ), ]), ); - - final img = MultiImageFile( + + final img = MultiImageFile( enabled: false, controller: multiImgController, title: "Receipt File", ); - final billWidget - = Expanded(child:Padding( - padding: EdgeInsets.only(left: 0,top: 15), - child: + final displayMixBox= + Container(child:Row(children: [ Row( - mainAxisAlignment: MainAxisAlignment.start, - children: [ - Icon(Ionicons.document_text_outline, color: primaryColor, size: 20), - Text("Bill to", style: TextStyle(color: primaryColor, fontSize: 15)) - ], - ))); - - final cargoBox = DisplayText( - //text: "203FVH", - labelTextKey: "box.cargo.type", - - ); - - - final cartonSizeBox = DisplayText( - text: _cartonSizeController.text, - labelTextKey: "box.carton_size", - iconData: AntDesign.CodeSandbox, - ); - // final cargoTableBox = CargoTable( - // cargoTypes: _box!.cargoTypes, - // ); - // final mixCartonNumberBox = DisplayText( - // text: _box!.mixCartonNumber, - // labelTextKey: "box.mix.carton", - // iconData: MaterialCommunityIcons.package, - // ); - - final mixTypeBox = Container( - padding: EdgeInsets.only(top: 20), - child: Column( - crossAxisAlignment: CrossAxisAlignment.start, - children: [ - Container( - padding: EdgeInsets.only(left: 5), - child: LocalText( - context, - "box.mix_type", - color: primaryColor, - fontSize: 15, - fontWeight: FontWeight.bold, - )), - Row( - children: [ - Padding( - padding: const EdgeInsets.all(8.0), - child: Icon( - Icons.check, - color: primaryColor, - ), - ), - Text(selectMixBoxType ?? "") - ], - ) - ], - ), - ); + mainAxisAlignment: MainAxisAlignment.start, + children: [ + Expanded( + child: Row( + //crossAxisAlignment: CrossAxisAlignment.start, + children: [ + Expanded( + child: Column( + crossAxisAlignment: CrossAxisAlignment.start, + children: [ + customerNameBox, + ], + ), + ), + _box?.billToValue == billToSender + ? Expanded( + child: Padding( + padding: EdgeInsets.only(left: 0, top: 15), + child: Row( + mainAxisAlignment: MainAxisAlignment.start, + children: [ + Icon(Ionicons.document_text_outline, + color: primaryColor, size: 20), + Text("Bill to", + style: TextStyle(color: primaryColor, fontSize: 15)) + ], + ))) + : const SizedBox() + ], + ), + ), + Expanded( + child: Padding( + padding: const EdgeInsets.only(left: 0), + child: Row( + crossAxisAlignment: CrossAxisAlignment.start, + children: [ + Expanded( + child: Column( + crossAxisAlignment: CrossAxisAlignment.start, + children: [ + consigneeNameBox, + ], + ), + ), + _cartonSubmit?.billToValue == billToSender + ? Expanded( + child: Padding( + padding: EdgeInsets.only(left: 0, top: 15), + child: Row( + mainAxisAlignment: MainAxisAlignment.start, + children: [ + Icon(Ionicons.document_text_outline, + color: primaryColor, size: 20), + Text("Bill to", + style: TextStyle(color: primaryColor, fontSize: 15)) + ], + ))) + : const SizedBox() + ], + ), + )) + ], + ), + packageBox, + Row( + children: getPackageList(_box!.packages), + ) + ],)); + final billWidget = Expanded( + child: Padding( + padding: EdgeInsets.only(left: 0, top: 15), + child: Row( + mainAxisAlignment: MainAxisAlignment.start, + children: [ + Icon(Ionicons.document_text_outline, + color: primaryColor, size: 20), + Text("Bill to", + style: TextStyle(color: primaryColor, fontSize: 15)) + ], + ))); return LocalProgress( - inAsyncCall: _isLoading, - child: Scaffold( - appBar: LocalAppBar( - labelKey: "box.info.title", - backgroundColor: Colors.white, - labelColor: primaryColor, - arrowColor: primaryColor, - actions: isEdiable - ? [ - IconButton( - icon: Icon(Icons.edit, color: primaryColor), - onPressed: _gotoEditor, - ), - IconButton( - icon: Icon(Icons.delete, color: primaryColor), - onPressed: _delete, - ), - ] - : [], - ), - body: - Container( - padding: const EdgeInsets.all(10.0), - child: - Column(children: [ - - Row(children:[ - Flexible(child: - cartonTypeBox), - Flexible(child: - cartonQrBox, - ), - ]), - Row( - mainAxisAlignment: MainAxisAlignment.spaceBetween, - children: [ - Flexible(child: shipmentBox,), - Flexible(child: deliveryBox,), - - - ],), - - Row( - mainAxisAlignment: MainAxisAlignment.start, - children: [ - Expanded( - child: Row( - //crossAxisAlignment: CrossAxisAlignment.start, - children: [ - Expanded( - child: Column( - crossAxisAlignment: CrossAxisAlignment.start, - children: [ - customerNameBox, - ], + inAsyncCall: _isLoading, + child: Scaffold( + appBar: LocalAppBar( + labelKey: "box.info.title", + backgroundColor: Colors.white, + labelColor: primaryColor, + arrowColor: primaryColor, + actions: isEdiable + ? [ + IconButton( + icon: Icon(Icons.edit, color: primaryColor), + onPressed: _gotoEditor, ), - ), - CargoType().isCutomDuty == false - ? billWidget - : const SizedBox() - ], - ), - ), - Expanded( - child: Padding( - padding: const EdgeInsets.only(left: 0), - child: Row( - crossAxisAlignment: CrossAxisAlignment.start, - children: [ - Expanded( - child: Column( - crossAxisAlignment: CrossAxisAlignment.start, - children: [ - consigneeNameBox, - ], + IconButton( + icon: Icon(Icons.delete, color: primaryColor), + onPressed: _delete, ), - ), - CargoType().isCutomDuty == true - ? billWidget - : const SizedBox() - ], - ), - )) - - ],), - - packageBox, - Column(children: - getPackageList(_box!.packages), - ), - cargosBox, - surchargeItemBox, - - - Flexible(child: - Padding(padding: EdgeInsets.only(left: 200.0,right: 8.0), - - child: ElevatedButton( - style: ElevatedButton.styleFrom( - backgroundColor: Color(0xff272262), - elevation: 3, - shape: RoundedRectangleBorder( - borderRadius: BorderRadius.circular(5.0)), - minimumSize: Size(10, 35), //////// HERE + ] + : [], ), - onPressed: (){ - Navigator.push( - context, - CupertinoPageRoute(builder: (context) => CartonImageUpload()), - ); + body: Container( + padding: const EdgeInsets.all(10.0), + child: ListView(children: [ + Row(children: [ + Flexible(child: cartonTypeBox), + Flexible( + child: cartonQrBox, + ), + ]), + Row( + mainAxisAlignment: MainAxisAlignment.spaceBetween, + children: [ + Flexible( + child: shipmentBox, + ), + Flexible( + child: deliveryBox, + ), + ], + ), + + + // Row( + // mainAxisAlignment: MainAxisAlignment.start, + // children: [ + // Expanded( + // child: Row( + // //crossAxisAlignment: CrossAxisAlignment.start, + // children: [ + // Expanded( + // child: Column( + // crossAxisAlignment: CrossAxisAlignment.start, + // children: [ + // customerNameBox, + // ], + // ), + // ), + // _box?.billToValue == billToSender + // ? billWidget + // : const SizedBox() + // ], + // ), + // ), + // Expanded( + // child: Padding( + // padding: const EdgeInsets.only(left: 0), + // child: Row( + // crossAxisAlignment: CrossAxisAlignment.start, + // children: [ + // Expanded( + // child: Column( + // crossAxisAlignment: CrossAxisAlignment.start, + // children: [ + // consigneeNameBox, + // ], + // ), + // ), + // _cartonSubmit?.billToValue == billToSender + // ? billWidget + // : const SizedBox() + // ], + // ), + // )) + // ], + // ), + // packageBox, + // Row( + // children: getPackageList(_box!.packages), + // ), + // ]):Container(), + + cargosBox, + surchargeItemBox, + Padding( + padding: EdgeInsets.only(left: 200.0, right: 8.0), + child: ElevatedButton( + style: ElevatedButton.styleFrom( + backgroundColor: Color(0xff272262), + elevation: 3, + shape: RoundedRectangleBorder( + borderRadius: BorderRadius.circular(5.0)), + minimumSize: Size(10, 35), //////// HERE + ), + onPressed: () { + Navigator.push( + context, + CupertinoPageRoute( + builder: (context) => + CartonImageUpload(box: _box)), + ); }, - child: const Text('Upload Images'), - ),)), - img, - Center(child: ElevatedButton( - style: ElevatedButton.styleFrom( - backgroundColor:Color(0xffff0606), - elevation: 3, - shape: RoundedRectangleBorder( - borderRadius: BorderRadius.circular(5.0)), - minimumSize: Size(300, 45), //////// HERE - ), - onPressed: (){}, - child: const Text('Delete Carton',style:TextStyle(fontSize: 20)), - ),), - - //_package!.photoUrls.length == 0 || _package!.photoUrls.isEmpty ? Container() : img, - - - - //LocalTitle(textKey: "box.shipment_info"), - // shipmentBox, - // isSmallBag ? mixCartonNumberBox : Container(), - // isMixBox - // ? Container() - // : isFromPackages - // ? fcsIDBox - // : Container(), - // isMixBox - // ? Container() - // : isFromPackages - // ? customerNameBox - // : Container(), - // isFromCartons - // ? Row( - // children: [ - // Flexible(child: consigneeBox), - // Flexible(child: shipperBox) - // ], - // ) - // : Container(), - // Padding(padding: EdgeInsets.only(left: 10), - // child: Row(children:[ - - // ListView.builder( - // itemCount: pickups.length, - // itemBuilder: (context, index) { - // return ListTile( - // title: Text(pickups[index]), - // ); - // },) - - // ])), - // // isMixBox ? mixTypeBox : Container(), - // isMixBox ? LocalTitle(textKey: "box.mix_caton_title") : Container(), - // isMixBox - // ? Column(children: _getCartons(context, _box!.mixCartons)) - // : Container(), - // isFromPackages || isSmallBag - // ? CartonPackageTable( - // packages: _box!.packages, - // ) - // : Container(), - // isMixBox ? Container() : LocalTitle(textKey: "box.cargo.type"), - // isMixBox ? Container() : cargoTableBox, - // ...(isFromPackages || isFromCartons - // ? [ - // LocalTitle(textKey: "box.dimension"), - // cartonSizeBox, - // dimBox, - // ] - // : []), - // isMixBox - // ? Container() - // : LocalTitle(textKey: "box.delivery_address"), - // isMixBox - // ? Container() - // : DefaultDeliveryAddress( - // deliveryAddress: _deliveryAddress, - // labelKey: "box.delivery_address", - // ), - // SizedBox( - // height: 20, - // ) - ]) - ) - ) - - // ]) - // ) - // ) - ); - } - - List _getCartons(BuildContext context, List cartons) { - return cartons.map((c) { - return CartonRow(box: c); - }).toList(); - } - List _getPackages(BuildContext context, List packages) { - return packages.map((p) { - return Text(p.packageType!); - }).toList(); + child: const Text('Upload Images'), + ), + ), + img, + Center( + child: ElevatedButton( + style: ElevatedButton.styleFrom( + backgroundColor: Color(0xffff0606), + elevation: 3, + shape: RoundedRectangleBorder( + borderRadius: BorderRadius.circular(5.0)), + minimumSize: Size(300, 45), //////// HERE + ), + onPressed: () {}, + child: const Text('Delete Carton', + style: TextStyle(fontSize: 20)), + ), + ), + ])))); } _gotoEditor() async { @@ -733,7 +556,7 @@ double totalPieces = surchareItems.fold(0, (sum, value) => sum + value.qty); ); if (updated ?? false) { var cartonModel = Provider.of(context, listen: false); - var c = await cartonModel.getCarton(widget.box!.id ?? ""); + var c = await cartonModel.getCarton(widget.box.id ?? ""); setState(() { _box = c; _loadPackages(); @@ -755,7 +578,7 @@ double totalPieces = surchareItems.fold(0, (sum, value) => sum + value.qty); }); try { var cartonModel = Provider.of(context, listen: false); - await cartonModel.deleteCarton(widget.box!); + await cartonModel.deleteCarton(widget.box); Navigator.pop(context, true); } catch (e) { showMsgDialog(context, "Error", e.toString()); @@ -766,29 +589,27 @@ double totalPieces = surchareItems.fold(0, (sum, value) => sum + value.qty); } } - List getPackageList(List _p) { - return _p.map((p) { - return Container( + List getPackageList(List _p) { + return _p.map((p) { + return Container( padding: EdgeInsets.only(top: 0), child: Container( //padding: - //EdgeInsets.only(top: 0.0), - child: Row(children: [ - new Text(p.packageType ?? '') - ]), - ));}).toList(); - } - List getCargoList(List _c) { - return _c.map((c) { - return Container( + //EdgeInsets.only(top: 0.0), + child: Row(children: [new Text(p.trackingID ?? '')]), + )); + }).toList(); + } + + List getCargoList(List _c) { + return _c.map((c) { + return Container( padding: EdgeInsets.only(top: 0), child: Container( //padding: - //EdgeInsets.only(top: 0.0), - child: Row(children: [ - new Text(c.name ?? '') - ]), - ));}).toList(); - } - + //EdgeInsets.only(top: 0.0), + child: Row(children: [new Text(c.name ?? '')]), + )); + }).toList(); + } } From b927619027211313fa3925c8a9a0aaf71816b0d1 Mon Sep 17 00:00:00 2001 From: tzw Date: Thu, 8 Feb 2024 17:04:37 +0630 Subject: [PATCH 2/3] update cartion editor --- lib/pages/carton/carton_editor.dart | 29 ++++++++++++++++++++--------- 1 file changed, 20 insertions(+), 9 deletions(-) diff --git a/lib/pages/carton/carton_editor.dart b/lib/pages/carton/carton_editor.dart index 7f975cf..29840ae 100644 --- a/lib/pages/carton/carton_editor.dart +++ b/lib/pages/carton/carton_editor.dart @@ -16,6 +16,7 @@ import 'package:flutter/material.dart'; import 'package:flutter_vector_icons/flutter_vector_icons.dart'; import '../main/util.dart'; import 'carton_editor_for_package.dart'; +import 'carton_info.dart'; import 'mix_carton/mix_carton_editor.dart'; import 'carton_row.dart'; @@ -63,10 +64,7 @@ class _CartonEditorState extends State { _carton = Carton(cargoTypes: [], packages: []); _isNew = true; _selectedCartonType = carton_from_packages; - _cartons = [ - Carton(cartonNumber: "A177(A)-3#2", cartonWeight: 35.5), - Carton(cartonNumber: "A177(A)-3#1", cartonWeight: 25.5) - ]; + _cartons = []; _sender = User( name: "ptd-phyo44 kaelone", fcsID: "FCS-8X6V", @@ -159,7 +157,9 @@ class _CartonEditorState extends State { context, CupertinoPageRoute( builder: (context) => CartonEditorForPackage( - sender: _sender!, consignee: _consignee!,billToValue: _billToValue))); + sender: _sender!, + consignee: _consignee!, + billToValue: _billToValue))); } // for mix cartion else { @@ -293,7 +293,9 @@ class _CartonEditorState extends State { padding: const EdgeInsets.only(left: 10), child: LocalText(context, 'box.bill_to_sender', fontSize: 15, - color: _billToValue == billToSender ? primaryColor : Colors.black), + color: _billToValue == billToSender + ? primaryColor + : Colors.black), ), ) ]), @@ -320,7 +322,9 @@ class _CartonEditorState extends State { padding: const EdgeInsets.only(left: 10), child: LocalText(context, 'box.bill_to.consignee', fontSize: 15, - color: _billToValue == billToConsignee ? primaryColor : Colors.black), + color: _billToValue == billToConsignee + ? primaryColor + : Colors.black), ), ) ]), @@ -372,8 +376,15 @@ class _CartonEditorState extends State { } List _getCartons(BuildContext context, List cartons) { - return cartons.asMap().entries.map((c) { - return InkWell(onTap: () async {}, child: CartonRow(box: c.value)); + return cartons.map((c) { + return InkWell( + onTap: () async { + Navigator.push( + context, + CupertinoPageRoute(builder: (context) => CartonInfo(box: c)), + ); + }, + child: CartonRow(box: c)); }).toList(); } } From 19d9d7ea2d7ff0f09a598d91f81de37a3c07266e Mon Sep 17 00:00:00 2001 From: sma Date: Thu, 8 Feb 2024 17:09:53 +0630 Subject: [PATCH 3/3] merge --- lib/pages/carton/carton_image_upload.dart | 2 ++ 1 file changed, 2 insertions(+) diff --git a/lib/pages/carton/carton_image_upload.dart b/lib/pages/carton/carton_image_upload.dart index 0b1607f..d2bf2f9 100644 --- a/lib/pages/carton/carton_image_upload.dart +++ b/lib/pages/carton/carton_image_upload.dart @@ -5,6 +5,8 @@ import 'package:fcs/pages/widgets/multi_img_controller.dart'; import 'package:fcs/pages/widgets/progress.dart'; import 'package:flutter/material.dart'; +import '../widgets/multi_img_file.dart'; + typedef void FindCallBack(); class CartonImageUpload extends StatefulWidget {