From 2140f0a2292a9ff86870f882517450c917102e7c Mon Sep 17 00:00:00 2001 From: Elham Rababah Date: Thu, 17 Jun 2021 12:31:43 +0300 Subject: [PATCH] fix add sick leave --- .../sick_leave/sickleave_service.dart | 5 ++-- .../viewModel/patient-referral-viewmodel.dart | 2 +- lib/core/viewModel/sick_leave_view_model.dart | 5 ++-- .../AddVerifyMedicalReport.dart | 2 +- .../refer-patient-screen-in-patient.dart | 10 +++---- lib/screens/sick-leave/add-sickleave.dart | 9 ++---- lib/screens/sick-leave/sick_leave.dart | 30 ++++++++++++------- 7 files changed, 34 insertions(+), 29 deletions(-) diff --git a/lib/core/service/patient_medical_file/sick_leave/sickleave_service.dart b/lib/core/service/patient_medical_file/sick_leave/sickleave_service.dart index bbddbde2..0294c3e7 100644 --- a/lib/core/service/patient_medical_file/sick_leave/sickleave_service.dart +++ b/lib/core/service/patient_medical_file/sick_leave/sickleave_service.dart @@ -61,9 +61,8 @@ class SickLeaveService extends BaseService { return Future.value(response); }, onFailure: (String error, int statusCode) { - DrAppToastMsg.showErrorToast(error); - // hasError = true; - // super.error = error; + hasError = true; + super.error = error; }, body: addSickLeaveRequest.toJson(), ); diff --git a/lib/core/viewModel/patient-referral-viewmodel.dart b/lib/core/viewModel/patient-referral-viewmodel.dart index 6e67aea3..a55f9732 100644 --- a/lib/core/viewModel/patient-referral-viewmodel.dart +++ b/lib/core/viewModel/patient-referral-viewmodel.dart @@ -200,7 +200,7 @@ class PatientReferralViewModel extends BaseViewModel { patientID: patient.patientId, roomID: patient.roomId, referralClinic: clinicID, - admissionNo: patient.appointmentNo, + admissionNo: patient.appointmentNo, /// TODO Elham* something in case inpateint since we send send appointmentNo for admissionNo which all time null referralDoctor: doctorID, patientTypeID: patient.patientType, referringDoctorRemarks: remarks, diff --git a/lib/core/viewModel/sick_leave_view_model.dart b/lib/core/viewModel/sick_leave_view_model.dart index c5a0bc73..60eebe88 100644 --- a/lib/core/viewModel/sick_leave_view_model.dart +++ b/lib/core/viewModel/sick_leave_view_model.dart @@ -17,12 +17,13 @@ class SickLeaveViewModel extends BaseViewModel { get getReschduleLeave => _sickLeaveService.getAllRescheduleLeave; get postSechedule => _sickLeaveService.postReschedule; get sickleaveResponse => _sickLeaveService.sickLeaveResponse; + Future addSickLeave(AddSickLeaveRequest addSickLeaveRequest) async { - setState(ViewState.Busy); + setState(ViewState.BusyLocal); await _sickLeaveService.addSickLeave(addSickLeaveRequest); if (_sickLeaveService.hasError) { error = _sickLeaveService.error!; - setState(ViewState.Error); + setState(ViewState.ErrorLocal); } else setState(ViewState.Idle); } diff --git a/lib/screens/patients/profile/medical_report/AddVerifyMedicalReport.dart b/lib/screens/patients/profile/medical_report/AddVerifyMedicalReport.dart index 3d9411a0..428ddf4a 100644 --- a/lib/screens/patients/profile/medical_report/AddVerifyMedicalReport.dart +++ b/lib/screens/patients/profile/medical_report/AddVerifyMedicalReport.dart @@ -86,7 +86,7 @@ class _AddVerifyMedicalReportState extends State { if (txtOfMedicalReport.isNotEmpty) { GifLoaderDialogUtils.showMyDialog(context); - model.insertMedicalReport(patient, txtOfMedicalReport); + await model.insertMedicalReport(patient, txtOfMedicalReport); GifLoaderDialogUtils.hideDialog(context); if (model.state == ViewState.ErrorLocal) { DrAppToastMsg.showErrorToast(model.error); diff --git a/lib/screens/patients/profile/referral/refer-patient-screen-in-patient.dart b/lib/screens/patients/profile/referral/refer-patient-screen-in-patient.dart index 348c611a..8b066cbe 100644 --- a/lib/screens/patients/profile/referral/refer-patient-screen-in-patient.dart +++ b/lib/screens/patients/profile/referral/refer-patient-screen-in-patient.dart @@ -476,27 +476,27 @@ class _PatientMakeInPatientReferralScreenState extends State( onModelReady: (model) => model.getSickLeavePatient(patient.patientMRN ?? patient.patientId), builder: (_, model, w) => AppScaffold( @@ -246,11 +246,6 @@ class AddSickLeavScreen extends StatelessWidget { } openSickLeave(BuildContext context, isExtend, {GetAllSickLeaveResponse? extendedData}) { - // showModalBottomSheet( - // context: context, - // builder: (context) { - // return new Container( - // child: Navigator.push( context, FadePage( @@ -260,7 +255,7 @@ class AddSickLeavScreen extends StatelessWidget { : patient.appointmentNo, //extendedData.appointmentNo, patientMRN: isExtend == true ? extendedData!.patientMRN : patient.patientMRN, isExtended: isExtend, - extendedData: extendedData!, + extendedData: extendedData??GetAllSickLeaveResponse(), patient: patient))); } } diff --git a/lib/screens/sick-leave/sick_leave.dart b/lib/screens/sick-leave/sick_leave.dart index f305caf8..a5ced00b 100644 --- a/lib/screens/sick-leave/sick_leave.dart +++ b/lib/screens/sick-leave/sick_leave.dart @@ -1,6 +1,7 @@ import 'package:doctor_app_flutter/config/config.dart'; import 'package:doctor_app_flutter/config/shared_pref_kay.dart'; import 'package:doctor_app_flutter/config/size_config.dart'; +import 'package:doctor_app_flutter/core/enum/viewstate.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/models/sickleave/add_sickleave_request.dart'; @@ -14,6 +15,7 @@ import 'package:doctor_app_flutter/util/translations_delegate_base.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/buttons/app_buttons_widget.dart'; +import 'package:doctor_app_flutter/widgets/shared/loader/gif_loader_dialog_utils.dart'; import 'package:doctor_app_flutter/widgets/shared/text_fields/app_text_form_field.dart'; import 'package:flutter/cupertino.dart'; import 'package:flutter/material.dart'; @@ -29,7 +31,7 @@ class SickLeaveScreen extends StatefulWidget { final patientMRN; final patient; SickLeaveScreen( - {this.appointmentNo, this.patientMRN, this.isExtended = false, required this.extendedData, this.patient}); + {this.appointmentNo, this.patientMRN, this.isExtended = false, required this.extendedData, this.patient}); @override _SickLeaveScreenState createState() => _SickLeaveScreenState(); } @@ -69,7 +71,7 @@ class _SickLeaveScreenState extends State { @override Widget build(BuildContext context) { - return BaseView( + return BaseView( onModelReady: (model) => model.getClinicsList(), builder: (_, model, w) => BaseView( onModelReady: (model2) => model2.preSickLeaveStatistics(widget.appointmentNo, widget.patientMRN), @@ -120,12 +122,12 @@ class _SickLeaveScreenState extends State { borderColor: Colors.white, onChanged: (value) { addSickLeave.noOfDays = value; - if (widget.extendedData != null) { + if (widget.extendedData.noOfDays != null) { widget.extendedData.noOfDays = int.parse(value); } }, hintText: - widget.extendedData != null ? widget.extendedData.noOfDays.toString() : '', + widget.extendedData.noOfDays != null ? widget.extendedData.noOfDays.toString() : '', // validator: (value) { // return TextValidator().validateName(value); // }, @@ -371,13 +373,21 @@ class _SickLeaveScreenState extends State { } else { addSickLeave.patientMRN = widget.patient.patientMRN.toString(); addSickLeave.appointmentNo = widget.patient.appointmentNo.toString(); - await model2.addSickLeave(addSickLeave).then((value) => print(value)); + GifLoaderDialogUtils.showMyDialog(context); + await model2.addSickLeave(addSickLeave); + if(model2.state == ViewState.ErrorLocal){ + GifLoaderDialogUtils.hideDialog(context); + DrAppToastMsg.showErrorToast(model2.error); + } else { + GifLoaderDialogUtils.hideDialog(context); + DrAppToastMsg.showSuccesToast("Sick leave created successfully"); + Navigator.of(context).popUntil((route) { + return route.settings.name == PATIENTS_PROFILE; + }); + Navigator.of(context).pushNamed(ADD_SICKLEAVE, arguments: {'patient': widget.patient}); + } + - DrAppToastMsg.showSuccesToast(model2.sickleaveResponse['ListSickLeavesToExtent']['success']); - Navigator.of(context).popUntil((route) { - return route.settings.name == PATIENTS_PROFILE; - }); - Navigator.of(context).pushNamed(ADD_SICKLEAVE, arguments: {'patient': widget.patient}); } } catch (err) { print(err);