import 'package:diplomaticquarterapp/core/enum/viewstate.dart'; import 'package:diplomaticquarterapp/core/model/AlHabibMedicalService/ComprehensiveMedicalCheckup/cmc_insert_pres_order_request_model.dart'; import 'package:diplomaticquarterapp/core/model/AlHabibMedicalService/HomeHealthCare/get_order_detail_by_order_iD_response_model.dart'; import 'package:diplomaticquarterapp/core/model/AlHabibMedicalService/HomeHealthCare/update_pres_oreder_request_model.dart'; import 'package:diplomaticquarterapp/core/viewModels/AlHabibMedicalService/cmc_view_model.dart'; import 'package:diplomaticquarterapp/core/viewModels/project_view_model.dart'; import 'package:diplomaticquarterapp/pages/AlHabibMedicalService/ComprehensiveMedicalCheckup/Dialog/confirm_cancel_order_dialog.dart'; import 'package:diplomaticquarterapp/pages/AlHabibMedicalService/HomeHealthCare/StepsWidget.dart'; import 'package:diplomaticquarterapp/uitl/app_toast.dart'; import 'package:diplomaticquarterapp/uitl/date_uitl.dart'; import 'package:diplomaticquarterapp/uitl/translations_delegate_base.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/data_display/text.dart'; import 'package:flutter/material.dart'; import 'package:geolocator/geolocator.dart'; import 'package:provider/provider.dart'; import 'new_cmc_step_one_page.dart'; import 'new_cmc_step_three_page.dart'; import 'new_cmc_step_tow_page.dart'; class NewCMCPage extends StatefulWidget { NewCMCPage({this.model}); final CMCViewModel model; @override _NewCMCPageState createState() => _NewCMCPageState(); } class _NewCMCPageState extends State with TickerProviderStateMixin { PageController _controller; int _currentIndex = 1; double _latitude; double _longitude; CMCInsertPresOrderRequestModel cMCInsertPresOrderRequestModel; @override void initState() { super.initState(); PatientERCMCInsertServicesList patientERCMCInsertServicesList; if (widget.model.cmcAllServicesList.length > 0) { patientERCMCInsertServicesList = new PatientERCMCInsertServicesList( price: widget.model.cmcAllServicesList[0].price, serviceID: widget.model.cmcAllServicesList[0].serviceID.toString(), selectedServiceName: widget.model.cmcAllServicesList[0].description, selectedServiceNameAR: widget.model.cmcAllServicesList[0].descriptionN, recordID: 1, totalPrice: widget.model.cmcAllServicesList[0].totalPrice, vAT: widget.model.cmcAllServicesList[0].vAT); cMCInsertPresOrderRequestModel = new CMCInsertPresOrderRequestModel(patientERCMCInsertServicesList: [patientERCMCInsertServicesList]); } cMCInsertPresOrderRequestModel = new CMCInsertPresOrderRequestModel(patientERCMCInsertServicesList: patientERCMCInsertServicesList != null ? [patientERCMCInsertServicesList] : []); _controller = new PageController(); _getCurrentLocation(); } _getCurrentLocation() async { await getLastKnownPosition().then((value) { _latitude = value.latitude; _longitude = value.longitude; }).catchError((e) { _longitude = 0; _latitude = 0; }); } @override void dispose() { super.dispose(); } changePageViewIndex(pageIndex) { _controller.jumpToPage(pageIndex); } @override Widget build(BuildContext context) { ProjectViewModel projectViewModel = Provider.of(context); void showConfirmMessage(CMCViewModel model, GetOrderDetailByOrderIDResponseModel order) { showDialog( context: context, child: ConfirmCancelOrderDialog( model: model, onTap: () async { UpdatePresOrderRequestModel updatePresOrderRequestModel = UpdatePresOrderRequestModel(presOrderID: order.presOrderID, rejectionReason: "", presOrderStatus: 4, editedBy: 3); await model.updateCmcPresOrder(updatePresOrderRequestModel); if (model.state == ViewState.ErrorLocal) { Utils.showErrorToast(model.error); } else { AppToast.showSuccessToast(message: TranslationBase.of(context).processDoneSuccessfully); await model.getCmcAllPresOrders(); } }, )); } return Scaffold( body: SafeArea( child: Container( child: widget.model.cmcAllOrderDetail.length != 0 ? Column( children: [ Container( width: double.infinity, padding: EdgeInsets.only(left: 12, right: 12, top: 12), child: Card( shape: cardRadius(12), elevation: 2, margin: EdgeInsets.zero, color: Color(0xffcd9e1b), 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: [ Text( TranslationBase.of(context).OrderStatus + ' ' + (projectViewModel.isArabic ? widget.model.cmcAllOrderDetail[0].descriptionN : widget.model.cmcAllOrderDetail[0].description), style: TextStyle( fontSize: 12, letterSpacing: -0.48, color: Color(0xffcd9e1b), fontWeight: FontWeight.w700, ), ), mHeight(12), Text( TranslationBase.of(context).requestID + ' ' + widget.model.cmcAllOrderDetail[0].iD.toString(), style: TextStyle( fontSize: 16, letterSpacing: -0.48, fontWeight: FontWeight.w700, ), ), Text( TranslationBase.of(context).serviceName, style: TextStyle( fontSize: 12, letterSpacing: -0.48, fontWeight: FontWeight.w500, ), ), Text( !projectViewModel.isArabic ? widget.model.cmcAllOrderDetail[0].description.toString() : widget.model.cmcAllOrderDetail[0].descriptionN.toString(), style: TextStyle( fontSize: 12, letterSpacing: -0.48, fontWeight: FontWeight.w700, ), ), ], ), ), Column( children: [ Text( DateUtil.getDayMonthYearDateFormatted(DateUtil.convertStringToDate(widget.model.cmcAllOrderDetail[0].createdOn)), style: TextStyle( fontSize: 12, letterSpacing: -0.48, fontWeight: FontWeight.w700, ), ), mHeight(8), SecondaryButton( onTap: () { showConfirmMessage(widget.model, widget.model.cmcAllOrderDetail[0]); }, label: TranslationBase.of(context).cancel, color: Colors.red[900], small: true, ) ], ), ], ), ), ), ), ], ) : Container( color: Colors.red, child: NewCMCStepOnePage( changePageViewIndex: changePageViewIndex, cMCInsertPresOrderRequestModel: cMCInsertPresOrderRequestModel, model: widget.model, latitude: _latitude, longitude: _longitude, ), ), ), ), ); } }