@ -7,7 +7,9 @@ import 'package:diplomaticquarterapp/uitl/app_toast.dart';
import ' package:diplomaticquarterapp/uitl/date_uitl.dart ' ;
import ' package:diplomaticquarterapp/uitl/date_uitl.dart ' ;
import ' package:diplomaticquarterapp/uitl/translations_delegate_base.dart ' ;
import ' package:diplomaticquarterapp/uitl/translations_delegate_base.dart ' ;
import ' package:diplomaticquarterapp/uitl/utils.dart ' ;
import ' package:diplomaticquarterapp/uitl/utils.dart ' ;
import ' package:diplomaticquarterapp/uitl/utils_new.dart ' ;
import ' package:diplomaticquarterapp/widgets/buttons/secondary_button.dart ' ;
import ' package:diplomaticquarterapp/widgets/buttons/secondary_button.dart ' ;
import ' package:diplomaticquarterapp/widgets/data_display/text.dart ' ;
import ' package:diplomaticquarterapp/widgets/others/app_scaffold_widget.dart ' ;
import ' package:diplomaticquarterapp/widgets/others/app_scaffold_widget.dart ' ;
import ' package:flutter/material.dart ' ;
import ' package:flutter/material.dart ' ;
import ' package:provider/provider.dart ' ;
import ' package:provider/provider.dart ' ;
@ -44,10 +46,128 @@ class OrdersLogDetailsPage extends StatelessWidget {
return AppScaffold (
return AppScaffold (
isShowAppBar: false ,
isShowAppBar: false ,
baseViewModel: model ,
baseViewModel: model ,
body: SingleChildScrollView (
body:
/ / ListView . separated (
/ / physics: BouncingScrollPhysics ( ) ,
/ / padding: EdgeInsets . all ( 21 ) ,
/ / separatorBuilder: ( context , index ) {
/ / return SizedBox ( height: 12 ) ;
/ / } ,
/ / itemBuilder: ( context , index ) {
/ / int status = model . cmcAllPresOrders [ index ] . status ;
/ / String _statusDisp = projectViewModel . isArabic ? model . cmcAllPresOrders [ index ] . descriptionN : model . cmcAllPresOrders [ index ] . description ;
/ / Color _color ;
/ / if ( status = = 1 ) {
/ / / / pending
/ / _color = Color ( 0xffCC9B14 ) ;
/ / } else if ( status = = 2 ) {
/ / / / processing
/ / _color = Color ( 0xff2E303A ) ;
/ / } else if ( status = = 3 ) {
/ / / / completed
/ / _color = Color ( 0xff359846 ) ;
/ / } else if ( status = = 4 ) {
/ / / / cancel / / Rejected
/ / _color = Color ( 0xffD02127 ) ;
/ / }
/ /
/ / return InkWell (
/ / / / onTap: ( ) = > Navigator . push (
/ / / / context ,
/ / / / FadePage (
/ / / / page: PrescriptionsHistoryDetailsPage (
/ / / / prescriptionsOrder: prescriptionsViewModel . prescriptionsHistory [ index ] ,
/ / / / ) ,
/ / / / ) ,
/ / / / ) ,
/ / child: Container (
/ / height: 65 ,
/ / decoration: BoxDecoration (
/ / color: Colors . white ,
/ / borderRadius: BorderRadius . all (
/ / Radius . circular ( 10.0 ) ,
/ / ) ,
/ / boxShadow: [
/ / BoxShadow (
/ / color: Color ( 0xff000000 ) . withOpacity ( . 05 ) ,
/ / blurRadius: 27 ,
/ / offset: Offset ( 0 , - 3 ) ,
/ / ) ,
/ / ] ,
/ / ) ,
/ / child: Row (
/ / mainAxisSize: MainAxisSize . min ,
/ / children: [
/ / Container (
/ / width: 6 ,
/ / decoration: BoxDecoration (
/ / color: _color ,
/ / borderRadius: BorderRadius . only (
/ / topLeft: projectViewModel . isArabic ? Radius . circular ( 0.0 ) : Radius . circular ( 10.0 ) ,
/ / bottomLeft: projectViewModel . isArabic ? Radius . circular ( 0.0 ) : Radius . circular ( 10.0 ) ,
/ / topRight: projectViewModel . isArabic ? Radius . circular ( 10.0 ) : Radius . circular ( 0.0 ) ,
/ / bottomRight: projectViewModel . isArabic ? Radius . circular ( 10.0 ) : Radius . circular ( 0.0 ) ,
/ / ) ,
/ / ) ,
/ / ) ,
/ / Expanded (
/ / child: Padding (
/ / padding: EdgeInsets . only ( left: projectViewModel . isArabic ? 6 : 12 , right: projectViewModel . isArabic ? 12 : 6 ) ,
/ / child: Row (
/ / crossAxisAlignment: CrossAxisAlignment . start ,
/ / mainAxisSize: MainAxisSize . min ,
/ / children: [
/ / Expanded (
/ / child: Column (
/ / mainAxisSize: MainAxisSize . min ,
/ / crossAxisAlignment: CrossAxisAlignment . start ,
/ / children: [
/ / Text (
/ / _statusDisp ,
/ / style: TextStyle ( fontSize: 12 , fontWeight: FontWeight . w600 , color: _color , letterSpacing: - 0.4 , height: 16 / 10 ) ,
/ / ) ,
/ / Text (
/ / ' ${ TranslationBase . of ( context ) . orderNo } . ${ model . cmcAllPresOrders [ index ] . iD } ' ,
/ / style: TextStyle ( fontSize: 16 , fontWeight: FontWeight . w600 , color: Color ( 0xff2E303A ) , letterSpacing: - 0.64 , height: 25 / 16 ) ,
/ / ) ,
/ / ] ,
/ / ) ,
/ / ) ,
/ / Column (
/ / mainAxisSize: MainAxisSize . min ,
/ / crossAxisAlignment: CrossAxisAlignment . end ,
/ / children: [
/ / Text (
/ / DateUtil . formatDateToDate ( DateUtil . convertStringToDate ( model . cmcAllPresOrders [ index ] . createdOn ) , projectViewModel . isArabic ) ,
/ / style: TextStyle ( fontSize: 12 , fontWeight: FontWeight . w600 , color: Color ( 0xff2B353E ) , letterSpacing: - 0.4 , height: 16 / 10 ) ,
/ / ) ,
/ / Text (
/ / DateUtil . formatDateToTime ( DateUtil . convertStringToDate ( model . cmcAllPresOrders [ index ] . createdOn ) ) ,
/ / style: TextStyle ( fontSize: 12 , fontWeight: FontWeight . w600 , color: Color ( 0xff575757 ) , letterSpacing: - 0.4 , height: 16 / 10 ) ,
/ / ) ,
/ / ] ,
/ / )
/ / ] ,
/ / ) ,
/ / ) ,
/ / ) ,
/ / Icon (
/ / Icons . arrow_forward_ios ,
/ / size: 16 ,
/ / ) ,
/ / mWidth ( 6 ) ,
/ / ] ,
/ / ) ,
/ / ) ) ;
/ / } ,
/ / itemCount: model . cmcAllPresOrders . length ,
/ / ) ,
SingleChildScrollView (
physics: ScrollPhysics ( ) ,
physics: ScrollPhysics ( ) ,
child: Container (
child: Container (
margin: EdgeInsets . all ( 12 ) ,
margin: EdgeInsets . all ( 1 0 ) ,
child: Center (
child: Center (
child: FractionallySizedBox (
child: FractionallySizedBox (
widthFactor: 0.94 ,
widthFactor: 0.94 ,
@ -58,194 +178,100 @@ class OrdersLogDetailsPage extends StatelessWidget {
crossAxisAlignment: CrossAxisAlignment . start ,
crossAxisAlignment: CrossAxisAlignment . start ,
children: model . cmcAllPresOrders . map ( ( order ) {
children: model . cmcAllPresOrders . map ( ( order ) {
return Container (
return Container (
/ / margin: EdgeInsets . all ( 10 ) ,
child: Container (
width: double . infinity ,
width: double . infinity ,
margin: EdgeInsets . only ( top: 12 ) ,
padding: EdgeInsets . only ( left: 12 , right: 12 , top: 12 ) ,
clipBehavior: Clip . antiAlias ,
child: Card (
decoration: BoxDecoration ( border: Border . all ( color: Colors . grey , width: 1 ) , borderRadius: BorderRadius . circular ( 12 ) , color: Colors . white ) ,
shape: cardRadius ( 12 ) ,
child: Column (
elevation: 2 ,
crossAxisAlignment: CrossAxisAlignment . start ,
margin: EdgeInsets . zero ,
children: [
color: order . status = = 4
SizedBox (
? Colors . red [ 900 ]
height: 6 ,
: order . status = = 3
) ,
? Colors . green [ 400 ]
Container (
: Color ( 0xffcd9e1b ) ,
width: double . infinity ,
clipBehavior: Clip . antiAlias ,
padding: EdgeInsets . only ( left: 15 , bottom: 15 , top: 8 , right: 15 ) ,
child: Container (
decoration: BoxDecoration (
/ / decoration: containerColorRadiusLeft ( Colors . white , 12 ) ,
border: Border (
margin: EdgeInsets . only ( left: projectViewModel . isArabic ? 0 : 8 , right: projectViewModel . isArabic ? 8 : 0 ) ,
bottom: BorderSide (
padding: EdgeInsets . all ( 12 ) ,
color: Colors . grey ,
/ / color: Colors . white ,
width: 1.0 ,
decoration: BoxDecoration (
) ,
shape: BoxShape . rectangle ,
) ,
color: Colors . white ,
/ / borderRadius: BorderRadius . circular ( 12 ) ,
borderRadius: BorderRadius . only (
) ,
topLeft: projectViewModel . isArabic ? Radius . zero : Radius . circular ( 12.0 ) ,
child: Column (
topRight: projectViewModel . isArabic ? Radius . circular ( 12.0 ) : Radius . zero ,
crossAxisAlignment: CrossAxisAlignment . start ,
bottomLeft: projectViewModel . isArabic ? Radius . zero : Radius . circular ( 12.0 ) ,
children: [
bottomRight: projectViewModel . isArabic ? Radius . circular ( 12.0 ) : Radius . zero ,
Text (
TranslationBase . of ( context ) . requestID ,
style: TextStyle (
fontSize: 13 ,
fontWeight: FontWeight . w600 ,
letterSpacing: - 0.45 ,
) ,
) ,
SizedBox (
height: 4 ,
) ,
Text (
order . iD . toString ( ) ,
style: TextStyle (
fontSize: 18 ,
fontWeight: FontWeight . w600 ,
letterSpacing: - 0.45 ,
) ,
) ,
] ,
) ,
) ,
Container (
width: double . infinity ,
padding: EdgeInsets . only ( left: 15 , bottom: 15 , top: 15 , right: 15 ) ,
decoration: BoxDecoration (
border: Border (
bottom: BorderSide (
color: Colors . grey ,
width: 1.0 ,
) ,
) ,
/ / borderRadius: BorderRadius . circular ( 12 ) ,
) ,
child: Column (
crossAxisAlignment: CrossAxisAlignment . start ,
children: [
Text (
TranslationBase . of ( context ) . OrderStatus ,
style: TextStyle (
fontSize: 13 ,
fontWeight: FontWeight . w600 ,
letterSpacing: - 0.45 ,
) ,
) ,
SizedBox (
height: 4 ,
) ,
Text (
projectViewModel . isArabic ? order . descriptionN : order . description ,
style: TextStyle (
fontSize: 18 ,
fontWeight: FontWeight . w600 ,
letterSpacing: - 0.45 ,
) ,
) ,
) ,
] ,
) ,
) ,
Container (
width: double . infinity ,
padding: EdgeInsets . only ( left: 15 , bottom: 15 , top: 15 , right: 15 ) ,
decoration: BoxDecoration (
border: Border (
bottom: BorderSide (
color: Colors . grey ,
width: 1.0 ,
) ,
) ,
/ / borderRadius: BorderRadius . circular ( 12 ) ,
) ,
) ,
child: Column (
/ / clipBehavior: Clip . antiAlias ,
crossAxisAlignment: CrossAxisAlignment . start ,
child: Row (
children: [
children: [
Text (
Expanded (
TranslationBase . of ( context ) . pickupDate ,
child: Column (
style: TextStyle (
mainAxisAlignment: MainAxisAlignment . start ,
fontSize: 13 ,
crossAxisAlignment: CrossAxisAlignment . start ,
fontWeight: FontWeight . w600 ,
children: [
letterSpacing: - 0.45 ,
Texts (
) ,
TranslationBase . of ( context ) . OrderStatus + ' ' + ( projectViewModel . isArabic ? order . descriptionN : order . description ) ,
) ,
bold: false ,
SizedBox (
fontSize: 12 ,
height: 4 ,
color: order . status = = 4
) ,
? Colors . red [ 900 ]
Text (
: order . status = = 3
DateUtil . getDayMonthYearDateFormatted ( DateUtil . convertStringToDate ( order . createdOn ) ) ,
? Colors . green [ 400 ]
style: TextStyle (
: Color ( 0xffcd9e1b ) ,
fontSize: 18 ,
fontWeight: FontWeight . bold ,
fontWeight: FontWeight . w600 ,
) ,
letterSpacing: - 0.45 ,
Texts (
) ,
TranslationBase . of ( context ) . requestID + ' ' + order . iD . toString ( ) ,
) ,
fontWeight: FontWeight . w600 ,
] ,
fontSize: 18 ,
) ,
) ,
) ,
Column (
Container (
crossAxisAlignment: CrossAxisAlignment . start ,
width: double . infinity ,
children: [
clipBehavior: Clip . antiAlias ,
Texts (
padding: EdgeInsets . only ( left: 15 , bottom: 15 , top: 15 , right: 15 ) ,
TranslationBase . of ( context ) . orderLocation ,
decoration: BoxDecoration (
bold: false ,
border: Border (
fontSize: 13 ,
bottom: BorderSide (
) ,
color: ( order . status = = 1 | | order . status = = 2 ) ? Colors . grey : Colors . transparent ,
SizedBox (
width: ( order . status = = 1 | | order . status = = 2 ) ? 1.0 : 0 ,
height: 4 ,
) ,
) ,
) ,
Texts (
/ / borderRadius: BorderRadius . circular ( 12 ) ,
! projectViewModel . isArabic ? order . nearestProjectDescription . toString ( ) : order . nearestProjectDescriptionN . toString ( ) ,
) ,
fontSize: 13 ,
child: Column (
) ,
crossAxisAlignment: CrossAxisAlignment . start ,
] ,
children: [
)
Text (
] ,
TranslationBase . of ( context ) . orderLocation ,
) ) ,
style: TextStyle (
Column (
fontSize: 13 ,
children: [
fontWeight: FontWeight . w600 ,
Texts (
letterSpacing: - 0.45 ,
DateUtil . getDayMonthYearDateFormatted ( DateUtil . convertStringToDate ( order . createdOn ) ) ,
) ,
fontSize: 14 ,
) ,
) ,
SizedBox (
SizedBox ( height: 8 ) ,
height: 4 ,
( order . status = = 1 | | order . status = = 2 )
) ,
? SecondaryButton (
Text (
onTap: ( ) {
! projectViewModel . isArabic ? order . projectDescription . toString ( ) : order . projectDescriptionN . toString ( ) ,
showConfirmMessage ( model , order ) ;
style: TextStyle (
} ,
fontSize: 13 ,
label: TranslationBase . of ( context ) . cancel ,
fontWeight: FontWeight . w600 ,
color: Colors . red [ 900 ] ,
letterSpacing: - 0.45 ,
small: true ,
)
: SizedBox ( )
] ,
) ,
) ,
) ,
] ,
] ,
) ) ) ,
) ,
) ) ;
) ,
( order . status = = 1 | | order . status = = 2 )
? SizedBox (
height: 12 ,
)
: Container ( ) ,
if ( order . status = = 1 | | order . status = = 2 )
Center (
child: Container (
width: MediaQuery . of ( context ) . size . width * 0.85 ,
child: SecondaryButton (
label: TranslationBase . of ( context ) . cancel . toUpperCase ( ) ,
onTap: ( ) {
showConfirmMessage ( model , order ) ;
} ,
color: Colors . red [ 800 ] ,
disabled: false ,
textColor: Theme . of ( context ) . backgroundColor ) ,
) ,
) ,
( order . status = = 1 | | order . status = = 2 )
? SizedBox (
height: 12 ,
)
: SizedBox (
height: 2 ,
) ,
] ,
) ,
) ;
} ) . toList ( ) )
} ) . toList ( ) )
] ,
] ,
) ,
) ,
@ -253,6 +279,216 @@ class OrdersLogDetailsPage extends StatelessWidget {
) ,
) ,
) ,
) ,
) ,
) ,
/ / SingleChildScrollView (
/ / physics: ScrollPhysics ( ) ,
/ / child: Container (
/ / margin: EdgeInsets . all ( 12 ) ,
/ / child: Center (
/ / child: FractionallySizedBox (
/ / widthFactor: 0.94 ,
/ / child: Column (
/ / crossAxisAlignment: CrossAxisAlignment . start ,
/ / children: [
/ / Column (
/ / crossAxisAlignment: CrossAxisAlignment . start ,
/ / children: model . cmcAllPresOrders . map ( ( order ) {
/ / return Container (
/ / width: double . infinity ,
/ / margin: EdgeInsets . only ( top: 12 ) ,
/ / clipBehavior: Clip . antiAlias ,
/ / decoration: BoxDecoration ( border: Border . all ( color: Colors . grey , width: 1 ) , borderRadius: BorderRadius . circular ( 12 ) , color: Colors . white ) ,
/ / child: Column (
/ / crossAxisAlignment: CrossAxisAlignment . start ,
/ / children: [
/ / SizedBox (
/ / height: 6 ,
/ / ) ,
/ / Container (
/ / width: double . infinity ,
/ / padding: EdgeInsets . only ( left: 15 , bottom: 15 , top: 8 , right: 15 ) ,
/ / decoration: BoxDecoration (
/ / border: Border (
/ / bottom: BorderSide (
/ / color: Colors . grey ,
/ / width: 1.0 ,
/ / ) ,
/ / ) ,
/ / / / borderRadius: BorderRadius . circular ( 12 ) ,
/ / ) ,
/ / child: Column (
/ / crossAxisAlignment: CrossAxisAlignment . start ,
/ / children: [
/ / Text (
/ / TranslationBase . of ( context ) . requestID ,
/ / style: TextStyle (
/ / fontSize: 13 ,
/ / fontWeight: FontWeight . w600 ,
/ / letterSpacing: - 0.45 ,
/ / ) ,
/ / ) ,
/ / SizedBox (
/ / height: 4 ,
/ / ) ,
/ / Text (
/ / order . iD . toString ( ) ,
/ / style: TextStyle (
/ / fontSize: 18 ,
/ / fontWeight: FontWeight . w600 ,
/ / letterSpacing: - 0.45 ,
/ / ) ,
/ / ) ,
/ / ] ,
/ / ) ,
/ / ) ,
/ / Container (
/ / width: double . infinity ,
/ / padding: EdgeInsets . only ( left: 15 , bottom: 15 , top: 15 , right: 15 ) ,
/ / decoration: BoxDecoration (
/ / border: Border (
/ / bottom: BorderSide (
/ / color: Colors . grey ,
/ / width: 1.0 ,
/ / ) ,
/ / ) ,
/ / / / borderRadius: BorderRadius . circular ( 12 ) ,
/ / ) ,
/ / child: Column (
/ / crossAxisAlignment: CrossAxisAlignment . start ,
/ / children: [
/ / Text (
/ / TranslationBase . of ( context ) . OrderStatus ,
/ / style: TextStyle (
/ / fontSize: 13 ,
/ / fontWeight: FontWeight . w600 ,
/ / letterSpacing: - 0.45 ,
/ / ) ,
/ / ) ,
/ / SizedBox (
/ / height: 4 ,
/ / ) ,
/ / Text (
/ / projectViewModel . isArabic ? order . descriptionN : order . description ,
/ / style: TextStyle (
/ / fontSize: 18 ,
/ / fontWeight: FontWeight . w600 ,
/ / letterSpacing: - 0.45 ,
/ / ) ,
/ / ) ,
/ / ] ,
/ / ) ,
/ / ) ,
/ / Container (
/ / width: double . infinity ,
/ / padding: EdgeInsets . only ( left: 15 , bottom: 15 , top: 15 , right: 15 ) ,
/ / decoration: BoxDecoration (
/ / border: Border (
/ / bottom: BorderSide (
/ / color: Colors . grey ,
/ / width: 1.0 ,
/ / ) ,
/ / ) ,
/ / / / borderRadius: BorderRadius . circular ( 12 ) ,
/ / ) ,
/ / child: Column (
/ / crossAxisAlignment: CrossAxisAlignment . start ,
/ / children: [
/ / Text (
/ / TranslationBase . of ( context ) . pickupDate ,
/ / style: TextStyle (
/ / fontSize: 13 ,
/ / fontWeight: FontWeight . w600 ,
/ / letterSpacing: - 0.45 ,
/ / ) ,
/ / ) ,
/ / SizedBox (
/ / height: 4 ,
/ / ) ,
/ / Text (
/ / DateUtil . getDayMonthYearDateFormatted ( DateUtil . convertStringToDate ( order . createdOn ) ) ,
/ / style: TextStyle (
/ / fontSize: 18 ,
/ / fontWeight: FontWeight . w600 ,
/ / letterSpacing: - 0.45 ,
/ / ) ,
/ / ) ,
/ / ] ,
/ / ) ,
/ / ) ,
/ / Container (
/ / width: double . infinity ,
/ / clipBehavior: Clip . antiAlias ,
/ / padding: EdgeInsets . only ( left: 15 , bottom: 15 , top: 15 , right: 15 ) ,
/ / decoration: BoxDecoration (
/ / border: Border (
/ / bottom: BorderSide (
/ / color: ( order . status = = 1 | | order . status = = 2 ) ? Colors . grey : Colors . transparent ,
/ / width: ( order . status = = 1 | | order . status = = 2 ) ? 1.0 : 0 ,
/ / ) ,
/ / ) ,
/ / / / borderRadius: BorderRadius . circular ( 12 ) ,
/ / ) ,
/ / child: Column (
/ / crossAxisAlignment: CrossAxisAlignment . start ,
/ / children: [
/ / Text (
/ / TranslationBase . of ( context ) . orderLocation ,
/ / style: TextStyle (
/ / fontSize: 13 ,
/ / fontWeight: FontWeight . w600 ,
/ / letterSpacing: - 0.45 ,
/ / ) ,
/ / ) ,
/ / SizedBox (
/ / height: 4 ,
/ / ) ,
/ / Text (
/ / ! projectViewModel . isArabic ? order . projectDescription . toString ( ) : order . projectDescriptionN . toString ( ) ,
/ / style: TextStyle (
/ / fontSize: 13 ,
/ / fontWeight: FontWeight . w600 ,
/ / letterSpacing: - 0.45 ,
/ / ) ,
/ / ) ,
/ / ] ,
/ / ) ,
/ / ) ,
/ / ( order . status = = 1 | | order . status = = 2 )
/ / ? SizedBox (
/ / height: 12 ,
/ / )
/ / : Container ( ) ,
/ / if ( order . status = = 1 | | order . status = = 2 )
/ / Center (
/ / child: Container (
/ / width: MediaQuery . of ( context ) . size . width * 0.85 ,
/ / child: SecondaryButton (
/ / label: TranslationBase . of ( context ) . cancel . toUpperCase ( ) ,
/ / onTap: ( ) {
/ / showConfirmMessage ( model , order ) ;
/ / } ,
/ / color: Colors . red [ 800 ] ,
/ / disabled: false ,
/ / textColor: Theme . of ( context ) . backgroundColor ) ,
/ / ) ,
/ / ) ,
/ / ( order . status = = 1 | | order . status = = 2 )
/ / ? SizedBox (
/ / height: 12 ,
/ / )
/ / : SizedBox (
/ / height: 2 ,
/ / ) ,
/ / ] ,
/ / ) ,
/ / ) ;
/ / } ) . toList ( ) )
/ / ] ,
/ / ) ,
/ / ) ,
/ / ) ,
/ / ) ,
/ / ) ,
) ;
) ;
}
}
}
}