From 7337dc4f879439e3ee4f0102abd9af3d8df3a38e Mon Sep 17 00:00:00 2001 From: Elham Rababah Date: Thu, 29 Apr 2021 17:16:11 +0300 Subject: [PATCH 1/5] date picker --- lib/core/viewModel/PatientSearchViewModel.dart | 16 ++++++++++++---- .../patients/out_patient/filter_date_page.dart | 9 ++++++--- .../patients/out_patient/out_patient_screen.dart | 4 ++-- 3 files changed, 20 insertions(+), 9 deletions(-) diff --git a/lib/core/viewModel/PatientSearchViewModel.dart b/lib/core/viewModel/PatientSearchViewModel.dart index 9ef94647..7fbd7d1f 100644 --- a/lib/core/viewModel/PatientSearchViewModel.dart +++ b/lib/core/viewModel/PatientSearchViewModel.dart @@ -16,6 +16,9 @@ class PatientSearchViewModel extends BaseViewModel{ List filterData = []; + DateTime selectedFromDate; + DateTime selectedToDate; + searchData(String str) { var strExist = str.length > 0 ? true : false; if (strExist) { @@ -83,14 +86,19 @@ class PatientSearchViewModel extends BaseViewModel{ String dateTo; String dateFrom; if (item == 'Previous') { + + selectedFromDate = DateTime(DateTime.now().year, DateTime.now().month-1, + DateTime.now().day); + selectedToDate = DateTime(DateTime.now().year, DateTime.now().month, + DateTime.now().day-1); dateTo = DateUtils.convertDateToFormat( - DateTime(DateTime.now().year, DateTime.now().month, - DateTime.now().day-1), + selectedToDate, 'yyyy-MM-dd'); dateFrom = DateUtils.convertDateToFormat( - DateTime(DateTime.now().year, DateTime.now().month-3, - DateTime.now().day), + selectedFromDate, 'yyyy-MM-dd'); + + } else if (item == 'Next Week') { diff --git a/lib/screens/patients/out_patient/filter_date_page.dart b/lib/screens/patients/out_patient/filter_date_page.dart index 034f6136..a8f7904d 100644 --- a/lib/screens/patients/out_patient/filter_date_page.dart +++ b/lib/screens/patients/out_patient/filter_date_page.dart @@ -16,6 +16,7 @@ class FilterDatePage extends StatefulWidget { final OutPatientFilterType outPatientFilterType; final PatientSearchViewModel patientSearchViewModel; + const FilterDatePage( {Key key, this.outPatientFilterType, this.patientSearchViewModel}) : super(key: key); @@ -30,6 +31,8 @@ class _FilterDatePageState extends State { @override Widget build(BuildContext context) { + DateTime selectedFromDate = widget.patientSearchViewModel.selectedFromDate; + DateTime selectedToDate= widget.patientSearchViewModel.selectedToDate; var screenSize; return AppScaffold( isShowAppBar: false, @@ -235,9 +238,9 @@ class _FilterDatePageState extends State { return DateTime( DateTime .now() - .year, DateTime + .year -20, DateTime .now() - .month - 3, DateTime + .month, DateTime .now() .day); } else { @@ -257,7 +260,7 @@ class _FilterDatePageState extends State { return DateTime( DateTime .now() - .year, DateTime + .year +20, DateTime .now() .month, (DateTime .now() diff --git a/lib/screens/patients/out_patient/out_patient_screen.dart b/lib/screens/patients/out_patient/out_patient_screen.dart index f99f791b..953e7722 100644 --- a/lib/screens/patients/out_patient/out_patient_screen.dart +++ b/lib/screens/patients/out_patient/out_patient_screen.dart @@ -199,7 +199,7 @@ class _OutPatientsScreenState extends State { , prefix: IconButton( icon: Icon( - _activeLocation == 1 + _activeLocation !=0 ? DoctorApp.filter_1 : FontAwesomeIcons.slidersH, color: Colors.black, @@ -208,7 +208,7 @@ class _OutPatientsScreenState extends State { padding: EdgeInsets.only( bottom: 30), - onPressed: _activeLocation == 1 ? null : () { + onPressed: _activeLocation !=0 ? null : () { Navigator.push(context, MaterialPageRoute( builder: (BuildContext context) => FilterDatePage(outPatientFilterType: outPatientFilterType,patientSearchViewModel: model,))); From 4d87c6fb7571d2d92a7ac1b290c2bb137ec82ff0 Mon Sep 17 00:00:00 2001 From: Elham Rababah Date: Thu, 29 Apr 2021 17:24:31 +0300 Subject: [PATCH 2/5] date fix --- .../out_patient/filter_date_page.dart | 34 ++++++++++--------- 1 file changed, 18 insertions(+), 16 deletions(-) diff --git a/lib/screens/patients/out_patient/filter_date_page.dart b/lib/screens/patients/out_patient/filter_date_page.dart index a8f7904d..541a70eb 100644 --- a/lib/screens/patients/out_patient/filter_date_page.dart +++ b/lib/screens/patients/out_patient/filter_date_page.dart @@ -26,13 +26,15 @@ class FilterDatePage extends StatefulWidget { } class _FilterDatePageState extends State { - DateTime selectedFromDate; - DateTime selectedToDate; + @override + void initState() { + // TODO: implement initState + super.initState(); + } @override Widget build(BuildContext context) { - DateTime selectedFromDate = widget.patientSearchViewModel.selectedFromDate; - DateTime selectedToDate= widget.patientSearchViewModel.selectedToDate; + var screenSize; return AppScaffold( isShowAppBar: false, @@ -80,10 +82,10 @@ class _FilterDatePageState extends State { .of( context) .fromDate, - selectedFromDate != null + widget.patientSearchViewModel.selectedFromDate != null ? "${DateUtils .convertStringToDateFormat( - selectedFromDate.toString(), + widget.patientSearchViewModel.selectedFromDate.toString(), "yyyy-MM-dd")}" : null, true, @@ -113,10 +115,10 @@ class _FilterDatePageState extends State { .of( context) .toDate, - selectedToDate != null + widget.patientSearchViewModel.selectedToDate != null ? "${DateUtils .convertStringToDateFormat( - selectedToDate.toString(), + widget.patientSearchViewModel.selectedToDate.toString(), "yyyy-MM-dd")}" : null, true, @@ -167,16 +169,16 @@ class _FilterDatePageState extends State { padding: 10, color: Color(0xFF359846), onPressed: () async { - if (selectedFromDate == null || - selectedToDate == null) { + if (widget.patientSearchViewModel.selectedFromDate == null || + widget.patientSearchViewModel.selectedToDate == null) { Helpers.showErrorToast( "Please Select All The date Fields "); } else { String dateTo = DateUtils.convertDateToFormat( - selectedToDate, + widget.patientSearchViewModel.selectedToDate, 'yyyy-MM-dd'); String dateFrom = DateUtils.convertDateToFormat( - selectedFromDate, + widget.patientSearchViewModel.selectedFromDate, 'yyyy-MM-dd'); PatientSearchRequestModel currentModel = PatientSearchRequestModel(); @@ -211,8 +213,8 @@ class _FilterDatePageState extends State { {bool isFromDate = true, DateTime firstDate, lastDate}) async { Helpers.hideKeyboard(context); DateTime selectedDate = isFromDate - ? this.selectedFromDate ?? firstDate - : this.selectedToDate ?? lastDate; + ? this.widget.patientSearchViewModel.selectedFromDate ?? firstDate + : this.widget.patientSearchViewModel.selectedToDate ?? lastDate; final DateTime picked = await showDatePicker( context: context, initialDate: selectedDate, @@ -223,11 +225,11 @@ class _FilterDatePageState extends State { if (picked != null) { if (isFromDate) { setState(() { - this.selectedFromDate = picked; + this.widget.patientSearchViewModel.selectedFromDate = picked; }); } else { setState(() { - this.selectedToDate = picked; + this.widget.patientSearchViewModel.selectedToDate = picked; }); } } From f4020af4f82d62b3c4ed1b1975375cc1902de92c Mon Sep 17 00:00:00 2001 From: Elham Rababah Date: Thu, 29 Apr 2021 17:32:15 +0300 Subject: [PATCH 3/5] date fix --- lib/screens/patients/out_patient/filter_date_page.dart | 10 ++-------- 1 file changed, 2 insertions(+), 8 deletions(-) diff --git a/lib/screens/patients/out_patient/filter_date_page.dart b/lib/screens/patients/out_patient/filter_date_page.dart index 541a70eb..e95cb425 100644 --- a/lib/screens/patients/out_patient/filter_date_page.dart +++ b/lib/screens/patients/out_patient/filter_date_page.dart @@ -259,14 +259,8 @@ class _FilterDatePageState extends State { getLastDate(OutPatientFilterType outPatientFilterType) { if (outPatientFilterType == OutPatientFilterType.Previous) { - return DateTime( - DateTime - .now() - .year +20, DateTime - .now() - .month, (DateTime - .now() - .day - 1)); + return DateTime(DateTime.now().year, DateTime.now().month, + DateTime.now().day-1); } else { return DateTime( DateTime From 01bd55366a489eae25d2d03eded616e15f855482 Mon Sep 17 00:00:00 2001 From: Elham Rababah Date: Thu, 29 Apr 2021 17:44:28 +0300 Subject: [PATCH 4/5] date difference --- .../out_patient/filter_date_page.dart | 54 ++++++++++++------- 1 file changed, 34 insertions(+), 20 deletions(-) diff --git a/lib/screens/patients/out_patient/filter_date_page.dart b/lib/screens/patients/out_patient/filter_date_page.dart index e95cb425..f4577008 100644 --- a/lib/screens/patients/out_patient/filter_date_page.dart +++ b/lib/screens/patients/out_patient/filter_date_page.dart @@ -169,31 +169,45 @@ class _FilterDatePageState extends State { padding: 10, color: Color(0xFF359846), onPressed: () async { - if (widget.patientSearchViewModel.selectedFromDate == null || - widget.patientSearchViewModel.selectedToDate == null) { + if (widget.patientSearchViewModel.selectedFromDate == + null || + widget.patientSearchViewModel.selectedToDate == + null) { Helpers.showErrorToast( "Please Select All The date Fields "); } else { - String dateTo = DateUtils.convertDateToFormat( - widget.patientSearchViewModel.selectedToDate, - 'yyyy-MM-dd'); - String dateFrom = DateUtils.convertDateToFormat( - widget.patientSearchViewModel.selectedFromDate, - 'yyyy-MM-dd'); + Duration difference = widget + .patientSearchViewModel.selectedToDate + .difference( + widget.patientSearchViewModel.selectedFromDate); + if (difference.inDays > 30) { + Helpers.showErrorToast( + "The difference between from date and end date must be less"); + } else { + String dateTo = DateUtils.convertDateToFormat( + widget.patientSearchViewModel.selectedToDate, + 'yyyy-MM-dd'); + String dateFrom = DateUtils.convertDateToFormat( + widget.patientSearchViewModel.selectedFromDate, + 'yyyy-MM-dd'); - PatientSearchRequestModel currentModel = PatientSearchRequestModel(); - currentModel.to = dateTo; - currentModel.from= dateFrom; - GifLoaderDialogUtils.showMyDialog(context); - await widget.patientSearchViewModel.getOutPatient( - currentModel, isLocalBusy: true); - GifLoaderDialogUtils.hideDialog(context); - if(widget.patientSearchViewModel.state == ViewState.ErrorLocal) { - Helpers.showErrorToast(widget.patientSearchViewModel.error); - }else { - Navigator.of(context).pop(); - } + PatientSearchRequestModel currentModel = + PatientSearchRequestModel(); + currentModel.to = dateTo; + currentModel.from = dateFrom; + GifLoaderDialogUtils.showMyDialog(context); + await widget.patientSearchViewModel + .getOutPatient(currentModel, isLocalBusy: true); + GifLoaderDialogUtils.hideDialog(context); + if (widget.patientSearchViewModel.state == + ViewState.ErrorLocal) { + Helpers.showErrorToast( + widget.patientSearchViewModel.error); + } else { + Navigator.of(context).pop(); + } + } } }, ), From eebaf01570765b52602a00673743f51f4f7a437a Mon Sep 17 00:00:00 2001 From: Elham Rababah Date: Thu, 29 Apr 2021 17:54:09 +0300 Subject: [PATCH 5/5] fix diff msg --- lib/screens/patients/out_patient/filter_date_page.dart | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/lib/screens/patients/out_patient/filter_date_page.dart b/lib/screens/patients/out_patient/filter_date_page.dart index f4577008..193c1ec2 100644 --- a/lib/screens/patients/out_patient/filter_date_page.dart +++ b/lib/screens/patients/out_patient/filter_date_page.dart @@ -180,9 +180,9 @@ class _FilterDatePageState extends State { .patientSearchViewModel.selectedToDate .difference( widget.patientSearchViewModel.selectedFromDate); - if (difference.inDays > 30) { + if (difference.inDays > 90) { Helpers.showErrorToast( - "The difference between from date and end date must be less"); + "The difference between from date and end date must be less than 3 months"); } else { String dateTo = DateUtils.convertDateToFormat( widget.patientSearchViewModel.selectedToDate,