2020-05-29 15:54:26 +06:30
import ' package:fcs/model/pickup_model.dart ' ;
import ' package:fcs/model/shipment_rate_model.dart ' ;
2020-05-31 15:00:11 +06:30
import ' package:fcs/pages/shipment_rates_calculate.dart ' ;
import ' package:fcs/pages/shipment_rates_edit.dart ' ;
2020-05-29 15:54:26 +06:30
import ' package:fcs/vo/pickup.dart ' ;
import ' package:provider/provider.dart ' ;
import ' package:fcs/widget/localization/app_translations.dart ' ;
import ' package:flutter/material.dart ' ;
import ' package:fcs/widget/progress.dart ' ;
import ' ../theme/theme.dart ' ;
2020-05-31 15:00:11 +06:30
import ' util.dart ' ;
2020-05-29 15:54:26 +06:30
class ShipmentRates extends StatefulWidget {
final PickUp pickUp ;
ShipmentRates ( { this . pickUp } ) ;
@ override
_ShipmentRatesState createState ( ) = > _ShipmentRatesState ( ) ;
}
class _ShipmentRatesState extends State < ShipmentRates > {
TextEditingController _addressEditingController = new TextEditingController ( ) ;
TextEditingController _fromTimeEditingController =
new TextEditingController ( ) ;
TextEditingController _toTimeEditingController = new TextEditingController ( ) ;
TextEditingController _noOfPackageEditingController =
new TextEditingController ( ) ;
TextEditingController _weightEditingController = new TextEditingController ( ) ;
PickUp _pickUp ;
bool _isLoading = false ;
2020-05-31 15:00:11 +06:30
List < String > texts = [
" Minimum shipping weight is 1lbs. " ,
" Oversized goods, Light weight/Large volume items, laptops, phones, tablets may incur extra charges based on specifications. Please contact us for pricing. " ,
" Goods with lithium battary needs extra packaging and declaration. Please inform us ahead of time so that we can process your package accordingly. " ,
" Loose Batteries, Drones, and Prescription medicines are not allowed on aircraft. " ,
" Payment: We accept money orders, any US bank transfers via Zelle, AYA, KBZ and CB. No COD except for pick-ups. " ,
" Payments made in Myanmar will incur 2% tranfer fee "
] ;
2020-05-29 15:54:26 +06:30
@ override
void initState ( ) {
super . initState ( ) ;
if ( widget . pickUp ! = null ) {
_pickUp = widget . pickUp ;
_addressEditingController . text = _pickUp . address ;
_fromTimeEditingController . text = _pickUp . fromTime ;
_toTimeEditingController . text = _pickUp . toTime ;
_noOfPackageEditingController . text = _pickUp . numberOfPackage . toString ( ) ;
_weightEditingController . text = _pickUp . weight . toString ( ) ;
}
}
@ override
void dispose ( ) {
super . dispose ( ) ;
}
@ override
Widget build ( BuildContext context ) {
var shipmentRateModel = Provider . of < ShipmentRateModel > ( context ) ;
2020-05-31 15:00:11 +06:30
var textList = texts
. map (
( e ) = > TextSpan (
text: " \n * " + e + " \n " ,
style: TextStyle ( fontWeight: FontWeight . normal , fontSize: 13 ) ) ,
)
. toList ( ) ;
2020-05-29 15:54:26 +06:30
final usaAddress = Container (
child: TextFormField (
maxLines: null ,
controller: _addressEditingController ,
cursorColor: primaryColor ,
style: textStyle ,
decoration: new InputDecoration (
labelText: ' USA Delivery Address ' ,
enabledBorder: UnderlineInputBorder (
borderSide: BorderSide ( color: primaryColor , width: 1.0 ) ) ,
focusedBorder: UnderlineInputBorder (
borderSide: BorderSide ( color: primaryColor , width: 1.0 ) ) ,
) ,
) ) ;
return LocalProgress (
inAsyncCall: _isLoading ,
child: Scaffold (
appBar: AppBar (
2020-05-31 15:00:11 +06:30
centerTitle: true ,
leading: new IconButton (
icon: new Icon (
Icons . close ,
) ,
onPressed: ( ) = > Navigator . of ( context ) . pop ( ) ,
) ,
2020-05-29 15:54:26 +06:30
backgroundColor: primaryColor ,
2020-05-31 15:00:11 +06:30
title: Text ( AppTranslations . of ( context ) . text ( " rate.title " ) ) ,
2020-05-29 15:54:26 +06:30
) ,
2020-05-31 15:00:11 +06:30
body: Padding (
padding: const EdgeInsets . all ( 8.0 ) ,
child: ListView (
// crossAxisAlignment: CrossAxisAlignment.center,
2020-05-29 15:54:26 +06:30
children: < Widget > [
2020-05-31 15:00:11 +06:30
Container (
height: 135 ,
child: ListView . builder (
itemCount: shipmentRateModel . rates . length ,
itemBuilder: ( context , index ) {
return _row (
shipmentRateModel . rates [ index ] . description ,
" \$ " + shipmentRateModel . rates [ index ] . price . toString ( ) ,
' per pound ' ) ;
} ) ,
2020-05-29 15:54:26 +06:30
) ,
2020-05-31 15:00:11 +06:30
_row ( " Free delivery within Yangon \n for shipments over " , " 10 " , " pounds " ) ,
_row ( " Delivery fees " , " \$ 5 " , " below 10 pounds " ) ,
2020-06-02 14:52:31 +06:30
// Padding(
// padding: const EdgeInsets.only(left: 18.0, right: 18),
// child: RichText(
// // overflow: TextOverflow.fade,
// text: TextSpan(
// style: TextStyle(color: primaryColor),
// children: textList,
// ),
// ),
// ),
2020-05-31 15:00:11 +06:30
fcsButton ( context , " Calculate " , callack: ( ) {
Navigator . of ( context )
. push ( MaterialPageRoute ( builder: ( _ ) = > ShipmentRatesCal ( ) ) ) ;
} ) ,
fcsButton ( context , " Edit " , callack: ( ) {
Navigator . of ( context )
. push ( MaterialPageRoute ( builder: ( _ ) = > ShipmentRatesEdit ( ) ) ) ;
} ) ,
SizedBox ( height: 10 )
2020-05-29 15:54:26 +06:30
] ,
) ,
) ,
) ,
) ;
}
2020-05-31 15:00:11 +06:30
_row ( String desc , String price , String unit ) {
return Container (
padding: EdgeInsets . only ( left: 25 , top: 5 , bottom: 5 ) ,
child: Row (
children: < Widget > [
Text ( ' $ desc ' , style: TextStyle ( fontSize: 15 ) ) ,
Spacer ( ) ,
Column (
crossAxisAlignment: CrossAxisAlignment . end ,
children: < Widget > [
Padding (
padding: const EdgeInsets . only ( bottom: 3.0 ) ,
child: Text (
' $ price ' ,
style: TextStyle ( color: primaryColor , fontSize: 14 ) ,
) ,
) ,
Text (
' $ unit ' ,
style: TextStyle ( color: Colors . grey , fontSize: 14 ) ,
) ,
] ,
) ,
SizedBox (
width: 50 ,
) ,
] ,
) ) ;
}
2020-05-29 15:54:26 +06:30
}