import 'package:doctor_app_flutter/config/size_config.dart'; import 'package:doctor_app_flutter/core/model/sick_leave/sick_leave_patient_model.dart'; import 'package:doctor_app_flutter/core/service/AnalyticsService.dart'; import 'package:doctor_app_flutter/core/viewModel/project_view_model.dart'; import 'package:doctor_app_flutter/core/viewModel/sick_leave_view_model.dart'; import 'package:doctor_app_flutter/locator.dart'; import 'package:doctor_app_flutter/models/patient/patiant_info_model.dart'; import 'package:doctor_app_flutter/models/sickleave/get_all_sickleave_response.dart'; import 'package:doctor_app_flutter/screens/base/base_view.dart'; import 'package:doctor_app_flutter/screens/sick-leave/sick_leave.dart'; import 'package:doctor_app_flutter/util/date-utils.dart'; import 'package:doctor_app_flutter/util/translations_delegate_base.dart'; import 'package:doctor_app_flutter/widgets/patients/profile/patient-profile-app-bar.dart'; import 'package:doctor_app_flutter/widgets/shared/app_scaffold_widget.dart'; import 'package:doctor_app_flutter/widgets/shared/app_texts_widget.dart'; import 'package:doctor_app_flutter/widgets/shared/rounded_container_widget.dart'; import 'package:doctor_app_flutter/widgets/transitions/fade_page.dart'; import 'package:flutter/material.dart'; import 'package:hexcolor/hexcolor.dart'; import 'package:provider/provider.dart'; class AddSickLeavScreen extends StatelessWidget { PatiantInformtion patient; @override Widget build(BuildContext context) { ProjectViewModel projectsProvider = Provider.of(context); final routeArgs = ModalRoute.of(context).settings.arguments as Map; patient = routeArgs['patient']; bool isInpatient = routeArgs['isInpatient']; return BaseView( onModelReady: (model) async { await model.getSickLeavePatient(patient.patientMRN ?? patient.patientId); await model.getSickLeaveDoctor(patient.patientMRN ?? patient.patientId); }, builder: (_, model, w) => AppScaffold( baseViewModel: model, isShowAppBar: true, backgroundColor: Colors.grey[100], appBar: PatientProfileAppBar( patient, isInpatient: isInpatient, ), body: SingleChildScrollView( child: Column(children: [ patient.patientStatusType == 43 ? Column( crossAxisAlignment: CrossAxisAlignment.start, children: [ Padding( padding: EdgeInsets.all(10), child: Column( crossAxisAlignment: CrossAxisAlignment.start, children: [ if (!projectsProvider.isArabic) AppText( TranslationBase.of(context).patient, fontWeight: FontWeight.bold, ), AppText( TranslationBase.of(context).sickLeave, fontSize: 24, fontWeight: FontWeight.bold, ), ], )), InkWell( onTap: () async { await locator().logEvent( eventCategory: "Add Sick Leave Screen" "Leave Screen", eventAction: "apply For Sick Leave", ); openSickLeave( context, false, ); }, child: Container( width: SizeConfig.screenWidth, margin: EdgeInsets.only(left: 20, right: 20, top: 10, bottom: 10), padding: EdgeInsets.all(20), decoration: BoxDecoration(borderRadius: BorderRadius.circular(10), color: HexColor('#EAEAEA')), child: Column( mainAxisAlignment: MainAxisAlignment.start, children: [ Container( child: Container( decoration: BoxDecoration(color: Colors.grey, borderRadius: BorderRadius.circular(10)), padding: EdgeInsets.all(3), child: IconButton( icon: Icon( Icons.add, size: 35, color: Colors.white, ), // onPressed: () { // openSickLeave( // context, // false, // ); // }, ), )), Padding( child: AppText(TranslationBase.of(context).noSickLeaveApplied, fontWeight: FontWeight.bold, fontFamily: 'Poppins', fontSize: 16, textAlign: TextAlign.center, color: HexColor('#7E7E7E')), padding: EdgeInsets.all(10), ), ], )), ), ], ) : SizedBox(), model.getAllSIckLeavePatient.length > 0 ? Column( children: model.getAllSIckLeavePatient.map((SickLeavePatientModel item) { return RoundedContainer( margin: EdgeInsets.all(10), child: Column( children: [ Container( // decoration: BoxDecoration( // border: Border( // left: BorderSide( // // color: item.status == 1 // // ? Colors.yellow[800] // // : item.status == 2 // // ? Colors.green // // : Colors.black, // color: Colors.red, // width: 5.0, // ))), padding: EdgeInsets.all(10), child: Row( mainAxisAlignment: MainAxisAlignment.start, children: [ Expanded( flex: 4, child: Wrap( // mainAxisAlignment: // MainAxisAlignment.start, children: [ Column( crossAxisAlignment: CrossAxisAlignment.start, children: [ Container( padding: EdgeInsets.all(3), child: AppText( item.doctorName ?? "", // item.status == 1 // ? TranslationBase.of( // context) // .hold // : item.status == 2 // ? TranslationBase // .of( // context) // .active // : TranslationBase // .of(context) // .all, fontWeight: FontWeight.bold, // color: item.status == 1 // ? Colors.yellow[800] // : item.status == 2 // ? Colors.green // : Colors.black, color: Colors.red, ), ), Row( children: [ AppText(TranslationBase.of(context).daysSickleave + ": "), AppText( item.sickLeaveDays ?? item.noOfDays.toString(), fontWeight: FontWeight.bold, ), ], ), Row( children: [ AppText( TranslationBase.of(context).startDate + ' ' ?? "", ), Flexible( child: AppText( AppDateUtils.getDayMonthYearDateFormatted( item.startDate.contains("/Date(") ? AppDateUtils.convertStringToDate(item.startDate) : DateTime.parse(item.startDate)), fontWeight: FontWeight.bold, ), ) ], ), Row( children: [ AppText( TranslationBase.of(context).endDate + ' ' ?? "", ), Flexible( child: AppText( AppDateUtils.getDayMonthYearDateFormatted( item.startDate.contains("/Date(") ? AppDateUtils.convertStringToDate(item.endDate) .add(Duration(days: item.noOfDays)) : DateTime.parse(item.startDate) .add(Duration(days: item.noOfDays))), fontWeight: FontWeight.bold, ), ) ], ), ], ), SizedBox( width: 20, ), ], ), ), ], )), ], )); }).toList(), ) : patient.patientStatusType != 43 ? Center( child: Column( crossAxisAlignment: CrossAxisAlignment.center, children: [ SizedBox( height: 100, ), Image.asset('assets/images/no-data.png'), Padding( padding: const EdgeInsets.all(8.0), child: AppText(TranslationBase.of(context).noSickLeave), ) ], ), ) : SizedBox() ])))); } openSickLeave(BuildContext context, isExtend, {GetAllSickLeaveResponse extendedData}) { // showModalBottomSheet( // context: context, // builder: (context) { // return new Container( // child: Navigator.push( context, FadePage( page: SickLeaveScreen( appointmentNo: isExtend == true ? extendedData.appointmentNo : patient.appointmentNo, //extendedData.appointmentNo, patientMRN: isExtend == true ? extendedData.patientMRN : patient.patientMRN, isExtended: isExtend, extendedData: extendedData, patient: patient))); } }