cmc & hhc order log ui improvements.

merge-update-with-lab-changes
Sikander Saleem 4 years ago
parent 0955a22616
commit 5fda70decf

@ -8,6 +8,7 @@ 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/uitl/utils_new.dart';
import 'package:diplomaticquarterapp/widgets/buttons/defaultButton.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/data_display/text.dart';
import 'package:diplomaticquarterapp/widgets/others/app_scaffold_widget.dart'; import 'package:diplomaticquarterapp/widgets/others/app_scaffold_widget.dart';
@ -27,468 +28,148 @@ class OrdersLogDetailsPage extends StatelessWidget {
void showConfirmMessage(CMCViewModel model, GetHHCAllPresOrdersResponseModel order) { void showConfirmMessage(CMCViewModel model, GetHHCAllPresOrdersResponseModel order) {
showDialog( showDialog(
context: context, context: context,
child: ConfirmCancelOrderDialog( child: ConfirmCancelOrderDialog(
model: model, model: model,
onTap: () async { onTap: () async {
UpdatePresOrderRequestModel updatePresOrderRequestModel = UpdatePresOrderRequestModel(presOrderID: order.iD, rejectionReason: "", presOrderStatus: 4, editedBy: 3); UpdatePresOrderRequestModel updatePresOrderRequestModel = UpdatePresOrderRequestModel(presOrderID: order.iD, rejectionReason: "", presOrderStatus: 4, editedBy: 3);
await model.updateCmcPresOrder(updatePresOrderRequestModel); await model.updateCmcPresOrder(updatePresOrderRequestModel);
if (model.state == ViewState.ErrorLocal) { if (model.state == ViewState.ErrorLocal) {
Utils.showErrorToast(model.error); Utils.showErrorToast(model.error);
} else { } else {
AppToast.showSuccessToast(message: TranslationBase.of(context).processDoneSuccessfully); AppToast.showSuccessToast(message: TranslationBase.of(context).processDoneSuccessfully);
await model.getCmcAllPresOrders(); await model.getCmcAllPresOrders();
} }
}, },
)); ),
);
} }
return AppScaffold( return AppScaffold(
isShowAppBar: false, isShowAppBar: false,
baseViewModel: model, baseViewModel: model,
body: body: ListView.separated(
padding: EdgeInsets.all(21),
// ListView.separated( physics: BouncingScrollPhysics(),
// physics: BouncingScrollPhysics(), itemBuilder: (context, index) {
// padding: EdgeInsets.all(21), GetHHCAllPresOrdersResponseModel order = model.cmcAllPresOrders[index];
// 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( int status = order.status;
physics: ScrollPhysics(), String _statusDisp = projectViewModel.isArabic ? order.descriptionN : order.description;
child: Container( Color _color;
margin: EdgeInsets.all(10), if (status == 1) {
child: Center( //pending
child: FractionallySizedBox( _color = Color(0xffCC9B14);
widthFactor: 0.94, } else if (status == 2) {
child: Column( //processing
crossAxisAlignment: CrossAxisAlignment.start, _color = Color(0xff2E303A);
children: [ } else if (status == 3) {
Column( //completed
crossAxisAlignment: CrossAxisAlignment.start, _color = Color(0xff359846);
children: model.cmcAllPresOrders.map((order) { } else if (status == 4) {
return Container( //cancel // Rejected
// margin: EdgeInsets.all(10), _color = Color(0xffD02127);
child: Container( }
width: double.infinity, return Container(
padding: EdgeInsets.only(left: 12, right: 12, top: 12), decoration: BoxDecoration(
child: Card( color: _color,
shape: cardRadius(12), borderRadius: BorderRadius.all(
elevation: 2, Radius.circular(10.0),
margin: EdgeInsets.zero, ),
color: order.status == 4 boxShadow: [
? Colors.red[900] BoxShadow(
: order.status == 3 color: Color(0xff000000).withOpacity(.05),
? Colors.green[400] blurRadius: 27,
: Color(0xffcd9e1b), offset: Offset(0, -3),
clipBehavior: Clip.antiAlias, ),
child: Container(
// decoration: containerColorRadiusLeft(Colors.white, 12),
margin: EdgeInsets.only(left: projectViewModel.isArabic ? 0 : 8, right: projectViewModel.isArabic ? 8 : 0),
padding: EdgeInsets.all(12),
// color: Colors.white,
decoration: BoxDecoration(
shape: BoxShape.rectangle,
color: Colors.white,
borderRadius: BorderRadius.only(
topLeft: projectViewModel.isArabic ? Radius.zero : Radius.circular(12.0),
topRight: projectViewModel.isArabic ? Radius.circular(12.0) : Radius.zero,
bottomLeft: projectViewModel.isArabic ? Radius.zero : Radius.circular(12.0),
bottomRight: projectViewModel.isArabic ? Radius.circular(12.0) : Radius.zero,
),
),
// clipBehavior: Clip.antiAlias,
child: Row(
children: [
Expanded(
child: Column(
mainAxisAlignment: MainAxisAlignment.start,
crossAxisAlignment: CrossAxisAlignment.start,
children: [
Texts(
TranslationBase.of(context).OrderStatus + ' ' + (projectViewModel.isArabic ? order.descriptionN : order.description),
bold: false,
fontSize: 12,
color: order.status == 4
? Colors.red[900]
: order.status == 3
? Colors.green[400]
: Color(0xffcd9e1b),
fontWeight: FontWeight.bold,
),
Texts(
TranslationBase.of(context).requestID + ' ' + order.iD.toString(),
fontWeight: FontWeight.w600,
fontSize: 18,
),
Column(
crossAxisAlignment: CrossAxisAlignment.start,
children: [
Texts(
TranslationBase.of(context).orderLocation,
bold: false,
fontSize: 13,
),
SizedBox(
height: 4,
),
Texts(
!projectViewModel.isArabic ? order.nearestProjectDescription.toString() : order.nearestProjectDescriptionN.toString(),
fontSize: 13,
),
],
)
],
)),
Column(
children: [
Texts(
DateUtil.getDayMonthYearDateFormatted(DateUtil.convertStringToDate(order.createdOn)),
fontSize: 14,
),
SizedBox(height: 8),
(order.status == 1 || order.status == 2)
? SecondaryButton(
onTap: () {
showConfirmMessage(model, order);
},
label: TranslationBase.of(context).cancel,
color: Colors.red[900],
small: true,
)
: SizedBox()
],
),
],
))),
));
}).toList())
], ],
), ),
), child: Container(
), // decoration: containerColorRadiusLeft(Colors.white, 12),
), margin: EdgeInsets.only(left: projectViewModel.isArabic ? 0 : 6, right: projectViewModel.isArabic ? 6 : 0),
), padding: EdgeInsets.symmetric(vertical: 14, horizontal: 12),
decoration: BoxDecoration(
// SingleChildScrollView( color: Colors.white,
// physics: ScrollPhysics(), border: Border.all(color: Colors.white, width: 1),
// child: Container( borderRadius: BorderRadius.only(
// margin: EdgeInsets.all(12), bottomRight: projectViewModel.isArabic ? Radius.circular(0) : Radius.circular(10.0),
// child: Center( topRight: projectViewModel.isArabic ? Radius.circular(0) : Radius.circular(10.0),
// child: FractionallySizedBox( bottomLeft: projectViewModel.isArabic ? Radius.circular(10.0) : Radius.circular(0),
// widthFactor: 0.94, topLeft: projectViewModel.isArabic ? Radius.circular(10.0) : Radius.circular(0),
// child: Column( ),
// crossAxisAlignment: CrossAxisAlignment.start, ),
// children: [ // clipBehavior: Clip.antiAlias,
// Column( child: Row(
// crossAxisAlignment: CrossAxisAlignment.start, crossAxisAlignment: CrossAxisAlignment.start,
// children: model.cmcAllPresOrders.map((order) { children: [
// return Container( Expanded(
// width: double.infinity, child: Column(
// margin: EdgeInsets.only(top: 12), mainAxisAlignment: MainAxisAlignment.start,
// clipBehavior: Clip.antiAlias, crossAxisAlignment: CrossAxisAlignment.start,
// decoration: BoxDecoration(border: Border.all(color: Colors.grey, width: 1), borderRadius: BorderRadius.circular(12), color: Colors.white), children: [
// child: Column( Text(
// crossAxisAlignment: CrossAxisAlignment.start, _statusDisp,
// children: [ style: TextStyle(fontSize: 12, fontWeight: FontWeight.w600, color: _color, letterSpacing: -0.4, height: 16 / 10),
// SizedBox( ),
// height: 6, SizedBox(height: 6),
// ), Text(
// Container( '${TranslationBase.of(context).requestID}: ${order.iD}',
// width: double.infinity, style: TextStyle(fontSize: 16, fontWeight: FontWeight.w600, color: Color(0xff2E303A), letterSpacing: -0.64, height: 25 / 16),
// padding: EdgeInsets.only(left: 15, bottom: 15, top: 8, right: 15), ),
// decoration: BoxDecoration( Row(
// border: Border( crossAxisAlignment: CrossAxisAlignment.start,
// bottom: BorderSide( children: [
// color: Colors.grey, Text(
// width: 1.0, TranslationBase.of(context).serviceName + ": ",
// ), style: TextStyle(fontSize: 12, fontWeight: FontWeight.w600, color: Color(0xff575757), letterSpacing: -0.4, height: 16 / 10),
// ), ),
// // borderRadius: BorderRadius.circular(12), Expanded(
// ), child: Text(
// child: Column( !projectViewModel.isArabic ? order.nearestProjectDescription.trim().toString() : order.nearestProjectDescriptionN.toString(),
// crossAxisAlignment: CrossAxisAlignment.start, style: TextStyle(fontSize: 14, fontWeight: FontWeight.w600, color: Color(0xff2B353E), letterSpacing: -0.56),
// children: [ ),
// Text( ),
// TranslationBase.of(context).requestID, ],
// style: TextStyle( )
// fontSize: 13, ],
// fontWeight: FontWeight.w600, ),
// letterSpacing: -0.45, ),
// ), Column(
// ), mainAxisAlignment: MainAxisAlignment.spaceBetween,
// SizedBox( crossAxisAlignment: CrossAxisAlignment.end,
// height: 4, children: [
// ), Text(
// Text( DateUtil.formatDateToDate(DateUtil.convertStringToDate(order.createdOn), projectViewModel.isArabic),
// order.iD.toString(), style: TextStyle(fontSize: 12, fontWeight: FontWeight.w600, color: Color(0xff2B353E), letterSpacing: -0.4, height: 16 / 10),
// style: TextStyle( ),
// fontSize: 18, SizedBox(height: 12),
// fontWeight: FontWeight.w600, if (order.status == 1 || order.status == 2)
// letterSpacing: -0.45, InkWell(
// ), onTap: () {
// ), showConfirmMessage(model, order);
// ], },
// ), child: Container(
// ), padding: EdgeInsets.symmetric(vertical: 8, horizontal: 14),
// Container( decoration: BoxDecoration(
// width: double.infinity, color: Color(0xffD02127),
// padding: EdgeInsets.only(left: 15, bottom: 15, top: 15, right: 15), border: Border.all(color: Colors.white, width: 1),
// decoration: BoxDecoration( borderRadius: BorderRadius.circular(10),
// border: Border( ),
// bottom: BorderSide( child: Text(
// color: Colors.grey, TranslationBase.of(context).cancel_nocaps,
// width: 1.0, style: TextStyle(fontSize: 12, fontWeight: FontWeight.w600, color: Colors.white, letterSpacing: -0.4),
// ), ),
// ), ),
// // borderRadius: BorderRadius.circular(12), ),
// ), ],
// child: Column( ),
// crossAxisAlignment: CrossAxisAlignment.start, ],
// children: [ ),
// Text( ),
// TranslationBase.of(context).OrderStatus, );
// style: TextStyle( },
// fontSize: 13, separatorBuilder: (context, index) => SizedBox(height: 12),
// fontWeight: FontWeight.w600, itemCount: model.cmcAllPresOrders.length),
// 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())
// ],
// ),
// ),
// ),
// ),
// ),
); );
} }
} }

@ -1,4 +1,5 @@
import 'package:diplomaticquarterapp/core/enum/viewstate.dart'; import 'package:diplomaticquarterapp/core/enum/viewstate.dart';
import 'package:diplomaticquarterapp/core/model/AlHabibMedicalService/HomeHealthCare/HHC_get_all_services_response_model.dart';
import 'package:diplomaticquarterapp/core/model/AlHabibMedicalService/HomeHealthCare/PatientERHHCInsertServicesList.dart'; import 'package:diplomaticquarterapp/core/model/AlHabibMedicalService/HomeHealthCare/PatientERHHCInsertServicesList.dart';
import 'package:diplomaticquarterapp/core/model/AlHabibMedicalService/HomeHealthCare/patient_er_insert_pres_order_request_model.dart'; import 'package:diplomaticquarterapp/core/model/AlHabibMedicalService/HomeHealthCare/patient_er_insert_pres_order_request_model.dart';
import 'package:diplomaticquarterapp/core/viewModels/AlHabibMedicalService/home_health_care_view_model.dart'; import 'package:diplomaticquarterapp/core/viewModels/AlHabibMedicalService/home_health_care_view_model.dart';
@ -7,6 +8,7 @@ import 'package:diplomaticquarterapp/pages/AlHabibMedicalService/HomeHealthCare/
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/widgets/buttons/button.dart'; import 'package:diplomaticquarterapp/widgets/buttons/button.dart';
import 'package:diplomaticquarterapp/widgets/buttons/defaultButton.dart';
import 'package:diplomaticquarterapp/widgets/data_display/text.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:diplomaticquarterapp/widgets/transitions/fade_page.dart'; import 'package:diplomaticquarterapp/widgets/transitions/fade_page.dart';
@ -45,107 +47,77 @@ class _NewHomeHealthCareStepOnePageState extends State<NewHomeHealthCareStepOneP
body: Column( body: Column(
children: [ children: [
Expanded( Expanded(
child: SingleChildScrollView( child: ListView.separated(
physics: ScrollPhysics(), physics: BouncingScrollPhysics(),
child: Container( padding: EdgeInsets.only(left: 21, right: 21, top: 12, bottom: 12),
margin: EdgeInsets.only(left: MediaQuery.of(context).size.width * 0.05, right: MediaQuery.of(context).size.width * 0.05, top: MediaQuery.of(context).size.width * 0.05), itemBuilder: (context, index) {
child: Center( HHCGetAllServicesResponseModel service = widget.model.hhcAllServicesList[index];
child: FractionallySizedBox(
widthFactor: 1, return Padding(
child: Column( padding: const EdgeInsets.only(top: 4, bottom: 4),
crossAxisAlignment: CrossAxisAlignment.start, child: Row(
children: [ children: [
// Texts( Checkbox(
// TranslationBase.of(context).selectHomeHealthCareServices, value: isServiceSelected(service.serviceID),
// textAlign: TextAlign.center, activeColor: Color(0xffD02127),
// ), tristate: false,
Column( materialTapTargetSize: MaterialTapTargetSize.shrinkWrap,
children: widget.model.hhcAllServicesList.map((service) { onChanged: (bool newValue) {
return Container( setState(() {
margin: EdgeInsets.only(top: 10), if (!isServiceSelected(service.serviceID))
decoration: BoxDecoration( widget.patientERInsertPresOrderRequestModel.patientERHHCInsertServicesList.add(PatientERHHCInsertServicesList(
// border: Border.all(color: Colors.grey, width: 1), recordID: widget.patientERInsertPresOrderRequestModel.patientERHHCInsertServicesList.length, serviceID: service.serviceID, serviceName: service.description));
borderRadius: BorderRadius.circular(12), else
), removeSelected(service.serviceID);
child: Column( // widget.patientERInsertPresOrderRequestModel
children: [ // isPatientInsured = newValue;
Row( });
children: [ }),
Checkbox( SizedBox(width: 6),
value: isServiceSelected(service.serviceID), Expanded(
activeColor: Colors.red[800], child: Text(
tristate: false, projectViewModel.isArabic ? service.descriptionN : service.description.toLowerCase()?.capitalize(),
onChanged: (bool newValue) { maxLines: 1,
setState(() { overflow: TextOverflow.ellipsis,
if (!isServiceSelected(service.serviceID)) style: TextStyle(fontSize: 16, fontWeight: FontWeight.w600, color: Color(0xff2E303A), letterSpacing: -0.64),
widget.patientERInsertPresOrderRequestModel.patientERHHCInsertServicesList.add(PatientERHHCInsertServicesList( ),
recordID: widget.patientERInsertPresOrderRequestModel.patientERHHCInsertServicesList.length,
serviceID: service.serviceID,
serviceName: service.description));
else
removeSelected(service.serviceID);
// widget.patientERInsertPresOrderRequestModel
// isPatientInsured = newValue;
});
}),
Expanded(
child: Padding(
padding: const EdgeInsets.only(left: 0.0, right: 10),
child: Texts(
projectViewModel.isArabic ? service.descriptionN : service.description.toLowerCase()?.capitalize(),
fontSize: 15,
style: 'letterSpacing: -0.48',
fontWeight: FontWeight.bold,
),
),
),
],
),
Divider(
height: 1,
color: Colors.grey,
)
],
),
);
}).toList(),
), ),
SizedBox(height: 20)
], ],
), ),
), );
), },
), separatorBuilder: (context, index) => Divider(
), height: 1,
color: Color(0xffE5E5E5),
),
itemCount: widget.model.hhcAllServicesList.length),
), ),
Container( Container(
width: MediaQuery.of(context).size.width, color: Colors.white,
height: 70.0, padding: EdgeInsets.only(top: 16, bottom: 16, right: 21, left: 21),
color: Theme.of(context).scaffoldBackgroundColor, child: DefaultButton(
margin: EdgeInsets.only(left: 15.0, right: 15.0, top: 10.0), TranslationBase.of(context).next,
child: Button( (this.widget.patientERInsertPresOrderRequestModel.patientERHHCInsertServicesList.length == 0 || widget.model.state == ViewState.BusyLocal)
onTap: () async { ? null
widget.model.setState(ViewState.Busy); : () async {
await widget.model.getCustomerInfo(); widget.model.setState(ViewState.Busy);
if (widget.model.state == ViewState.ErrorLocal) { await widget.model.getCustomerInfo();
Utils.showErrorToast(); if (widget.model.state == ViewState.ErrorLocal) {
} else { Utils.showErrorToast();
Navigator.push( } else {
context, Navigator.push(
FadePage( context,
page: NewHomeHealthCareStepTowPage( FadePage(
patientERInsertPresOrderRequestModel: widget.patientERInsertPresOrderRequestModel, page: NewHomeHealthCareStepTowPage(
model: widget.model, patientERInsertPresOrderRequestModel: widget.patientERInsertPresOrderRequestModel,
), model: widget.model,
), ),
); ),
} );
}, }
label: TranslationBase.of(context).next, },
backgroundColor: textColor: (this.widget.patientERInsertPresOrderRequestModel.patientERHHCInsertServicesList.length == 0 || widget.model.state == ViewState.BusyLocal) ? Color(0xff000000) : Colors.white,
(this.widget.patientERInsertPresOrderRequestModel.patientERHHCInsertServicesList.length == 0 || widget.model.state == ViewState.BusyLocal) ? Colors.grey : Colors.red[900], disabledColor: Color(0xffEAEAEA),
disabled: this.widget.patientERInsertPresOrderRequestModel.patientERHHCInsertServicesList.length == 0 || widget.model.state == ViewState.BusyLocal,
loading: widget.model.state == ViewState.BusyLocal,
), ),
), ),
], ],

@ -2,12 +2,14 @@ import 'dart:ui';
import 'package:diplomaticquarterapp/core/model/ImagesInfo.dart'; import 'package:diplomaticquarterapp/core/model/ImagesInfo.dart';
import 'package:diplomaticquarterapp/core/viewModels/AlHabibMedicalService/home_health_care_view_model.dart'; import 'package:diplomaticquarterapp/core/viewModels/AlHabibMedicalService/home_health_care_view_model.dart';
import 'package:diplomaticquarterapp/core/viewModels/project_view_model.dart';
import 'package:diplomaticquarterapp/pages/base/base_view.dart'; import 'package:diplomaticquarterapp/pages/base/base_view.dart';
import 'package:diplomaticquarterapp/uitl/translations_delegate_base.dart'; import 'package:diplomaticquarterapp/uitl/translations_delegate_base.dart';
import 'package:diplomaticquarterapp/widgets/data_display/text.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/cupertino.dart'; import 'package:flutter/cupertino.dart';
import 'package:flutter/material.dart'; import 'package:flutter/material.dart';
import 'package:provider/provider.dart';
import 'NewHomeHealthCare/new_home_health_care_page.dart'; import 'NewHomeHealthCare/new_home_health_care_page.dart';
import 'orders_log_details_page.dart'; import 'orders_log_details_page.dart';
@ -34,6 +36,7 @@ class _HomeHealthCarePageState extends State<HomeHealthCarePage> with SingleTick
@override @override
Widget build(BuildContext context) { Widget build(BuildContext context) {
ProjectViewModel projectViewModel = Provider.of(context);
return BaseView<HomeHealthCareViewModel>( return BaseView<HomeHealthCareViewModel>(
onModelReady: (model) { onModelReady: (model) {
model.getHHCAllPresOrders(); model.getHHCAllPresOrders();
@ -45,67 +48,44 @@ class _HomeHealthCarePageState extends State<HomeHealthCarePage> with SingleTick
showNewAppBar: true, showNewAppBar: true,
showNewAppBarTitle: true, showNewAppBarTitle: true,
imagesInfo: [ImagesInfo(imageAr: 'https://hmgwebservices.com/Images/MobileApp/HHC/ar/0.png', imageEn: 'https://hmgwebservices.com/Images/MobileApp/HHC/en/0.png')], imagesInfo: [ImagesInfo(imageAr: 'https://hmgwebservices.com/Images/MobileApp/HHC/ar/0.png', imageEn: 'https://hmgwebservices.com/Images/MobileApp/HHC/en/0.png')],
body: Scaffold( body: Column(
extendBodyBehindAppBar: true, children: <Widget>[
appBar: PreferredSize( TabBar(
preferredSize: Size.fromHeight(65.0), controller: _tabController,
child: Stack( indicatorWeight: 3.0,
children: <Widget>[ indicatorSize: TabBarIndicatorSize.tab,
Center( labelColor: Color(0xff2B353E),
child: Center( unselectedLabelColor: Color(0xff575757),
child: TabBar( labelPadding: EdgeInsets.only(top: 15, bottom: 13, left: 20, right: 20),
isScrollable: true, labelStyle: TextStyle(
controller: _tabController, fontFamily: projectViewModel.isArabic ? 'Cairo' : 'Poppins',
indicatorWeight: 5.0, fontSize: 16,
indicatorSize: TabBarIndicatorSize.tab, fontWeight: FontWeight.w600,
indicatorColor: Colors.red[800], letterSpacing: -0.48,
labelColor: Theme.of(context).primaryColor, ),
labelPadding: EdgeInsets.only(top: 4.0, left: 18.0, right: 18.0), unselectedLabelStyle: TextStyle(
unselectedLabelColor: Colors.grey[800], fontFamily: projectViewModel.isArabic ? 'Cairo' : 'Poppins',
tabs: [ fontSize: 16,
Container( fontWeight: FontWeight.w600,
width: MediaQuery.of(context).size.width * 0.37, letterSpacing: -0.48,
child: Center( ),
child: Texts( tabs: [Text(TranslationBase.of(context).homeHealthCare), Text(TranslationBase.of(context).orderLog)],
TranslationBase.of(context).homeHealthCare,
color: Colors.black,
),
),
),
Container(
width: MediaQuery.of(context).size.width * 0.37,
child: Center(
child: Texts(
TranslationBase.of(context).orderLog,
color: Colors.black,
),
),
),
],
),
),
),
],
), ),
), Expanded(
body: Column( child: TabBarView(
children: <Widget>[ physics: BouncingScrollPhysics(),
Expanded( controller: _tabController,
child: TabBarView( children: <Widget>[
physics: BouncingScrollPhysics(), NewHomeHealthCarePage(
controller: _tabController, model: model,
children: <Widget>[ ),
NewHomeHealthCarePage( OrdersLogDetailsPage(
model: model, model: model,
), )
OrdersLogDetailsPage( ],
model: model, ),
) )
], ],
),
)
],
),
), ),
), ),
); );

@ -27,142 +27,150 @@ class OrdersLogDetailsPage extends StatelessWidget {
void showConfirmMessage(HomeHealthCareViewModel model, GetHHCAllPresOrdersResponseModel order) { void showConfirmMessage(HomeHealthCareViewModel model, GetHHCAllPresOrdersResponseModel order) {
showDialog( showDialog(
context: context, context: context,
child: ConfirmCancelOrderDialog( child: ConfirmCancelOrderDialog(
model: model, model: model,
onTap: () async { onTap: () async {
UpdatePresOrderRequestModel updatePresOrderRequestModel = UpdatePresOrderRequestModel(presOrderID: order.iD, rejectionReason: "", presOrderStatus: 4, editedBy: 3); UpdatePresOrderRequestModel updatePresOrderRequestModel = UpdatePresOrderRequestModel(presOrderID: order.iD, rejectionReason: "", presOrderStatus: 4, editedBy: 3);
model.setState(ViewState.Busy); model.setState(ViewState.Busy);
await model.updateHHCPresOrder(updatePresOrderRequestModel); await model.updateHHCPresOrder(updatePresOrderRequestModel);
if (model.state == ViewState.ErrorLocal) { if (model.state == ViewState.ErrorLocal) {
Utils.showErrorToast(model.error); Utils.showErrorToast(model.error);
} else { } else {
AppToast.showSuccessToast(message: TranslationBase.of(context).processDoneSuccessfully); AppToast.showSuccessToast(message: TranslationBase.of(context).processDoneSuccessfully);
await model.getHHCAllPresOrders(); await model.getHHCAllPresOrders();
// await model.getHHCAllServices(); // await model.getHHCAllServices();
} }
}, },
)); ),
);
} }
return AppScaffold( return AppScaffold(
isShowAppBar: false, isShowAppBar: false,
baseViewModel: model, baseViewModel: model,
body: SingleChildScrollView( body: ListView.separated(
physics: ScrollPhysics(), padding: EdgeInsets.all(21),
child: Container( physics: BouncingScrollPhysics(),
margin: EdgeInsets.all(0), itemBuilder: (context, index) {
child: Center( GetHHCAllPresOrdersResponseModel order = model.hhcAllPresOrders[index];
child: FractionallySizedBox(
widthFactor: 0.94, int status = order.status;
child: Column( String _statusDisp = projectViewModel.isArabic ? order.descriptionN : order.description;
crossAxisAlignment: CrossAxisAlignment.start, Color _color;
children: [ if (status == 1) {
Column( //pending
crossAxisAlignment: CrossAxisAlignment.start, _color = Color(0xffCC9B14);
children: model.hhcAllPresOrders.map((order) { } else if (status == 2) {
return Container( //processing
// margin: EdgeInsets.all(10), _color = Color(0xff2E303A);
child: Container( } else if (status == 3) {
width: double.infinity, //completed
padding: EdgeInsets.only(left: 12, right: 12, top: 12), _color = Color(0xff359846);
child: Card( } else if (status == 4) {
shape: cardRadius(12), //cancel // Rejected
elevation: 2, _color = Color(0xffD02127);
margin: EdgeInsets.zero, }
color: order.status == 4 return Container(
? Colors.red[900] decoration: BoxDecoration(
: order.status == 3 color: _color,
? Colors.green[400] borderRadius: BorderRadius.all(
: Color(0xffcd9e1b), Radius.circular(10.0),
clipBehavior: Clip.antiAlias, ),
child: Container( boxShadow: [
// decoration: containerColorRadiusLeft(Colors.white, 12), BoxShadow(
margin: EdgeInsets.only(left: projectViewModel.isArabic ? 0 : 8, right: projectViewModel.isArabic ? 8 : 0), color: Color(0xff000000).withOpacity(.05),
padding: EdgeInsets.all(12), blurRadius: 27,
// color: Colors.white, offset: Offset(0, -3),
decoration: BoxDecoration( ),
shape: BoxShape.rectangle,
color: Colors.white,
borderRadius: BorderRadius.only(
topLeft: projectViewModel.isArabic ? Radius.zero : Radius.circular(12.0),
topRight: projectViewModel.isArabic ? Radius.circular(12.0) : Radius.zero,
bottomLeft: projectViewModel.isArabic ? Radius.zero : Radius.circular(12.0),
bottomRight: projectViewModel.isArabic ? Radius.circular(12.0) : Radius.zero,
),
),
// clipBehavior: Clip.antiAlias,
child: Row(
children: [
Expanded(
child: Column(
mainAxisAlignment: MainAxisAlignment.start,
crossAxisAlignment: CrossAxisAlignment.start,
children: [
Texts(
TranslationBase.of(context).OrderStatus + ' ' + (projectViewModel.isArabic ? order.descriptionN : order.description),
bold: false,
fontSize: 12,
color: order.status == 4
? Colors.red[900]
: order.status == 3
? Colors.green[400]
: Color(0xffcd9e1b),
fontWeight: FontWeight.bold,
),
Texts(
TranslationBase.of(context).requestID + ' ' + order.iD.toString(),
fontWeight: FontWeight.w600,
fontSize: 18,
),
Column(
crossAxisAlignment: CrossAxisAlignment.start,
children: [
Texts(
TranslationBase.of(context).orderLocation,
bold: false,
fontSize: 13,
),
SizedBox(
height: 4,
),
Texts(
!projectViewModel.isArabic ? order.nearestProjectDescription.toString() : order.nearestProjectDescriptionN.toString(),
fontSize: 13,
),
],
)
],
)),
Column(
children: [
Texts(
DateUtil.getDayMonthYearDateFormatted(DateUtil.convertStringToDate(order.createdOn)),
fontSize: 14,
),
SizedBox(height: 8),
(order.status == 1 || order.status == 2)
? SecondaryButton(
onTap: () {
showConfirmMessage(model, order);
},
label: TranslationBase.of(context).cancel,
color: Colors.red[900],
small: true,
)
: SizedBox()
],
),
],
))),
));
}).toList())
], ],
), ),
), child: Container(
), // decoration: containerColorRadiusLeft(Colors.white, 12),
), margin: EdgeInsets.only(left: projectViewModel.isArabic ? 0 : 6, right: projectViewModel.isArabic ? 6 : 0),
), padding: EdgeInsets.symmetric(vertical: 14, horizontal: 12),
decoration: BoxDecoration(
color: Colors.white,
border: Border.all(color: Colors.white, width: 1),
borderRadius: BorderRadius.only(
bottomRight: projectViewModel.isArabic ? Radius.circular(0) : Radius.circular(10.0),
topRight: projectViewModel.isArabic ? Radius.circular(0) : Radius.circular(10.0),
bottomLeft: projectViewModel.isArabic ? Radius.circular(10.0) : Radius.circular(0),
topLeft: projectViewModel.isArabic ? Radius.circular(10.0) : Radius.circular(0),
),
),
// clipBehavior: Clip.antiAlias,
child: Row(
crossAxisAlignment: CrossAxisAlignment.start,
children: [
Expanded(
child: Column(
mainAxisAlignment: MainAxisAlignment.start,
crossAxisAlignment: CrossAxisAlignment.start,
children: [
Text(
_statusDisp,
style: TextStyle(fontSize: 12, fontWeight: FontWeight.w600, color: _color, letterSpacing: -0.4, height: 16 / 10),
),
SizedBox(height: 6),
Text(
'${TranslationBase.of(context).requestID}: ${order.iD}',
style: TextStyle(fontSize: 16, fontWeight: FontWeight.w600, color: Color(0xff2E303A), letterSpacing: -0.64, height: 25 / 16),
),
Row(
crossAxisAlignment: CrossAxisAlignment.start,
children: [
Text(
TranslationBase.of(context).serviceName + ": ",
style: TextStyle(fontSize: 12, fontWeight: FontWeight.w600, color: Color(0xff575757), letterSpacing: -0.4, height: 16 / 10),
),
Expanded(
child: Text(
!projectViewModel.isArabic ? order.nearestProjectDescription.trim().toString() : order.nearestProjectDescriptionN.toString(),
style: TextStyle(fontSize: 14, fontWeight: FontWeight.w600, color: Color(0xff2B353E), letterSpacing: -0.56),
),
),
],
)
],
),
),
Column(
mainAxisAlignment: MainAxisAlignment.spaceBetween,
crossAxisAlignment: CrossAxisAlignment.end,
children: [
Text(
DateUtil.formatDateToDate(DateUtil.convertStringToDate(order.createdOn), projectViewModel.isArabic),
style: TextStyle(fontSize: 12, fontWeight: FontWeight.w600, color: Color(0xff2B353E), letterSpacing: -0.4, height: 16 / 10),
),
SizedBox(height: 12),
if (order.status == 1 || order.status == 2)
InkWell(
onTap: () {
showConfirmMessage(model, order);
},
child: Container(
padding: EdgeInsets.symmetric(vertical: 8, horizontal: 14),
decoration: BoxDecoration(
color: Color(0xffD02127),
border: Border.all(color: Colors.white, width: 1),
borderRadius: BorderRadius.circular(10),
),
child: Text(
TranslationBase.of(context).cancel_nocaps,
style: TextStyle(fontSize: 12, fontWeight: FontWeight.w600, color: Colors.white, letterSpacing: -0.4),
),
),
),
],
),
],
),
),
);
},
separatorBuilder: (context, index) => SizedBox(height: 12),
itemCount: model.hhcAllPresOrders.length),
); );
} }
} }

Loading…
Cancel
Save