import 'package:doctor_app_flutter/config/size_config.dart'; import 'package:doctor_app_flutter/core/viewModel/patient_view_model.dart'; import 'package:doctor_app_flutter/core/viewModel/sick_leave_view_model.dart'; import 'package:doctor_app_flutter/icons_app/doctor_app_icons.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/dr_app_toast_msg.dart'; import 'package:doctor_app_flutter/util/translations_delegate_base.dart'; import 'package:doctor_app_flutter/widgets/patients/profile/patient-page-header-widget.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/card_with_bgNew_widget.dart'; import 'package:flutter/material.dart'; import 'package:hexcolor/hexcolor.dart'; class AddSickLeavScreen extends StatelessWidget { PatiantInformtion patient; @override Widget build(BuildContext context) { final routeArgs = ModalRoute.of(context).settings.arguments as Map; patient = routeArgs['patient']; return BaseView( onModelReady: (model) => model.getSickLeave(patient.patientMRN), builder: (_, model, w) => AppScaffold( baseViewModel: model, appBarTitle: TranslationBase.of(context).sickleave, body: SingleChildScrollView( child: Column(children: [ PatientPageHeaderWidget(patient), model.getAllSIckLeave.length > 0 ? Column( children: model.getAllSIckLeave .map((GetAllSickLeaveResponse item) { return CardWithBgWidgetNew( widget: Column( children: [ Container( padding: EdgeInsets.only(left: 10, right: 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.status == 1 ? TranslationBase.of( context) .hold : item.status == 2 ? TranslationBase.of( context) .active : TranslationBase.of( context) .all, fontWeight: FontWeight.bold, color: Colors.white, ), color: item.status == 1 ? Colors.yellow[800] : item.status == 2 ? Colors.green : Colors.black, ), Row( children: [ AppText( TranslationBase.of(context) .leaveStartDate + ' ', fontWeight: FontWeight.bold, ), Flexible( child: Text( item.startDate, overflow: TextOverflow.ellipsis, )) ], ), AppText( item.noOfDays.toString() + ' ' + TranslationBase.of(context) .daysSickleave, fontWeight: FontWeight.bold, ), Row(children: [ AppText( item.remarks ?? "", ) ]), ], ), SizedBox( width: 20, ), ], ), ), (item.status == 1 || item.status == 2) ? Expanded( flex: 1, child: IconButton( icon: Icon( Icons.open_in_full, size: 25, color: item.status == 1 ? Colors.grey[400] : Colors.black, ), // color: Colors.green, //Colors.black, onPressed: () => { if (item.status == 1) { DrAppToastMsg.showErrorToast( TranslationBase.of( context) .sickleaveonhold) } else { openSickLeave(context, true, extendedData: item) } }, )) : SizedBox(), ], )), SizedBox( height: 20, ), Divider( height: 1, ), ], )); }).toList(), ) : new Builder(builder: (context) { return Container( height: MediaQuery.of(context).size.height * .7, child: Column( mainAxisAlignment: MainAxisAlignment.center, children: [ Container( padding: EdgeInsets.all(40), decoration: BoxDecoration( border: Border.all( color: HexColor('#B8382C'), width: 4), borderRadius: BorderRadius.all(Radius.circular(100))), child: IconButton( icon: Icon( Icons.add, size: 35, ), onPressed: () { openSickLeave( context, false, ); }), ), Padding( child: AppText( TranslationBase.of(context) .noSickLeaveApplied, fontWeight: FontWeight.bold, ), padding: EdgeInsets.all(10), ), AppText( TranslationBase.of(context).applyNow, fontWeight: FontWeight.bold, color: HexColor('#B8382C'), ) ], )); }), ])))); } openSickLeave(BuildContext context, isExtend, {GetAllSickLeaveResponse extendedData}) { showModalBottomSheet( context: context, builder: (context) { return new Container( child: SickLeaveScreen( appointmentNo: isExtend == true ? extendedData.appointmentNo : patient.appointmentNo, //extendedData.appointmentNo, patientMRN: isExtend == true ? extendedData.patientMRN : patient.patientMRN, isExtended: isExtend, extendedData: extendedData, patient: patient)); }); } }