From 51b162e77be4e7a2247e8f6128552d7fc86b3dff Mon Sep 17 00:00:00 2001 From: sma Date: Mon, 5 Feb 2024 17:28:53 +0630 Subject: [PATCH] prepare carton info page --- lib/pages/carton/carton_info.dart | 199 +++++++++++++++++++++++------- 1 file changed, 155 insertions(+), 44 deletions(-) diff --git a/lib/pages/carton/carton_info.dart b/lib/pages/carton/carton_info.dart index 111d061..1dc5c57 100644 --- a/lib/pages/carton/carton_info.dart +++ b/lib/pages/carton/carton_info.dart @@ -1,6 +1,8 @@ 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_size/model/carton_size_model.dart'; @@ -15,7 +17,10 @@ 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'; @@ -32,8 +37,10 @@ import 'widgets.dart'; final DateFormat dateFormat = DateFormat("d MMM yyyy"); class CartonInfo extends StatefulWidget { - final Carton? box; - CartonInfo({this.box}); + final Package? package; + final Carton? box; + + CartonInfo({this.box,this.package}); @override _CartonInfoState createState() => _CartonInfoState(); @@ -42,7 +49,12 @@ class CartonInfo extends StatefulWidget { class _CartonInfoState extends State { bool _isLoading = false; Carton? _box; + + List? cargoTypes; + List pickups=['203PVH','Fh290','HH211']; + Map cargos={"General":150,"Electronics":15}; DeliveryAddress? _deliveryAddress = new DeliveryAddress(); + MultiImgController multiImgController = MultiImgController(); TextEditingController _widthController = new TextEditingController(); TextEditingController _heightController = new TextEditingController(); TextEditingController _lengthController = new TextEditingController(); @@ -57,11 +69,13 @@ class _CartonInfoState extends State { bool isSmallBag = false; bool isFromCartons = false; bool isEdiable = false; + Package? _package; @override void initState() { super.initState(); _box = widget.box; + initPackage(widget.package); //for shipment weight volumetricRatio = Provider.of(context, listen: false) .rate @@ -74,6 +88,14 @@ class _CartonInfoState extends State { _loadPackages(); _loadMixCartons(); } + initPackage(Package? package) { + + if (package == null) return; + multiImgController.setImageUrls = package.photoUrls; + setState(() { + _package = package; + }); + } _updateBoxData() { _widthController.text = _box!.width.toString(); @@ -212,8 +234,8 @@ class _CartonInfoState extends State { ); final consigneeNameBox = DisplayText( - text: _box!.userName != null ? _box!.userName : "", - subText: Text(_box!.fcsID ?? "", style: textStyle), + text: _box!.senderName != null ? _box!.senderName : "", + subText: Text(_box!.senderFCSID ?? "", style: textStyle), labelTextKey: "processing.consignee.name", //maxLines: 2, @@ -288,11 +310,21 @@ class _CartonInfoState extends State { ], ); final packageBox = DisplayText( - text: "203FVH", + //text: "203FVH", labelTextKey: "box.package", - maxLines:20, - //iconData: AntDesign.CodeSandbox, + ); + final img = MultiImageFile( + enabled: false, + controller: multiImgController, + title: "Receipt File", + ); + final cargoBox = DisplayText( + //text: "203FVH", + labelTextKey: "box.cargo.type", + + ); + final cartonSizeBox = DisplayText( text: _cartonSizeController.text, @@ -359,9 +391,9 @@ class _CartonInfoState extends State { ] : [], ), - body: Padding( + body: Container( padding: const EdgeInsets.all(10.0), - child: ListView(shrinkWrap: true, children: [ + child: Row( children: [ // Container(child: Row(children: [ // Column(children: [ // LocalTitle(textKey: "box.type.title"), @@ -372,7 +404,7 @@ class _CartonInfoState extends State { // ],) // ]),), Padding( - padding: EdgeInsets.only(left: 30), + padding: EdgeInsets.only(left: 10), child: Row( mainAxisAlignment: MainAxisAlignment.end, children: [ @@ -394,7 +426,7 @@ class _CartonInfoState extends State { )), Padding( - padding: EdgeInsets.only(left: 30), + padding: EdgeInsets.only(left: 10), child: Row( mainAxisAlignment: MainAxisAlignment.end, children: [ @@ -408,7 +440,7 @@ class _CartonInfoState extends State { ], )), Padding( - padding: EdgeInsets.only(left: 30), + padding: EdgeInsets.only(left: 10), child: Row( children: [ Flexible( @@ -424,6 +456,60 @@ class _CartonInfoState extends State { ])), ], )), + Padding(padding: EdgeInsets.only(left:10), + child: Flexible(child: packageBox)), + for(int pack=0;pack { // ], // ) // : Container(), - Padding(padding: EdgeInsets.only(left: 30), child: packageBox), - 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, - ) + // 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, + // ) ]), ), ), @@ -530,4 +627,18 @@ class _CartonInfoState extends State { }); } } + Widget _packageList(BuildContext context) { + return ListView.builder( + padding: const EdgeInsets.all(8), + itemCount: pickups.length, + itemBuilder: (BuildContext context, int index) { + return Container( + height: 50, + //color: Colors.amber[pickups[index]], + child: Center(child: Text('Entry ${pickups[index]}')), + ); + }, + //separatorBuilder: (BuildContext context, int index) => const Divider(), + ); +} }