diff --git a/lib/screens/pharmacy_intervention/viewmodel/pharmacy_intervention_view_model.dart b/lib/screens/pharmacy_intervention/viewmodel/pharmacy_intervention_view_model.dart index 0f732dc6..809f3695 100644 --- a/lib/screens/pharmacy_intervention/viewmodel/pharmacy_intervention_view_model.dart +++ b/lib/screens/pharmacy_intervention/viewmodel/pharmacy_intervention_view_model.dart @@ -581,8 +581,10 @@ class PharmacyInterventionViewModel extends BaseViewModel { DrAppToastMsg.showErrorToast(errorMessage); return; } - DrAppToastMsg.showSuccesToast(successMessage); - getPharmacyIntervention(); + if(result) { + DrAppToastMsg.showSuccesToast(successMessage); + getPharmacyIntervention(); + } setState(ViewState.Idle); } diff --git a/lib/screens/pharmacy_intervention/widgets/PharmacyInterventionDialog.dart b/lib/screens/pharmacy_intervention/widgets/PharmacyInterventionDialog.dart index 2e698683..58fe5ce5 100644 --- a/lib/screens/pharmacy_intervention/widgets/PharmacyInterventionDialog.dart +++ b/lib/screens/pharmacy_intervention/widgets/PharmacyInterventionDialog.dart @@ -53,8 +53,8 @@ class _PharmacyInterventionDialogState admissionNumber.text = (widget.admissionNumber == '0')?'':widget.admissionNumber; nursingStation.text = (widget.nursingStation == '0')?'':widget.nursingStation; patientId.text = (widget.patientID == '0' )?'':widget.patientID; - dateTo = getDate(widget.dateTo); - dateFrom = getDate(widget.dateFrom); + dateTo = getDateString(widget.dateTo); + dateFrom = getDateString(widget.dateFrom); } @override @@ -102,10 +102,25 @@ class _PharmacyInterventionDialogState _dateSelection(TranslationBase .of(context) .dateFrom, (date) { + DateTime? fromDate = getDate(date); + DateTime? toDate =getDate(dateTo); + if(toDate == null){ + setState(() { + dateFrom = date; + }); + return; + } + if(fromDate!.compareTo(toDate!) == 1){ + setState(() { + dateFrom = date; + dateTo = ''; + }); + return; + } setState(() { dateFrom = date; }); - }, dateFrom), + }, dateFrom, false), SizedBox( height: 4, ), @@ -115,7 +130,7 @@ class _PharmacyInterventionDialogState setState(() { dateTo = date; }); - }, dateTo), + }, dateTo, true, selectedFromDate: dateFrom), SizedBox( height: 8, ), @@ -144,9 +159,9 @@ class _PharmacyInterventionDialogState } Widget _dateSelection(String title, Function(String) onDateSelected, - String selectedDate) { + String selectedDate, bool isToDateSelection,{String? selectedFromDate}) { return GestureDetector( - onTap: () => _selectDate(onDateSelected), + onTap: () => _selectDate(onDateSelected,selectedDate, isToDateSelection , selectedFromDate: selectedFromDate), child: Row( mainAxisSize: MainAxisSize.min, children: [ @@ -164,11 +179,13 @@ class _PharmacyInterventionDialogState ); } - Future _selectDate(Function(String) updateDate) async { + Future _selectDate(Function(String) updateDate , String date, bool toDateSelection, {String? selectedFromDate}) async { + DateTime? dateTime = getDate(date); + DateTime? fromDate = getDate(selectedFromDate??''); final DateTime? picked = await showDatePicker( context: context, - initialDate: DateTime.now(), - firstDate: DateTime(DateTime + initialDate:date.isNotEmpty? getDate(date) :fromDate != null? fromDate: DateTime.now(), + firstDate:(( date.isNotEmpty && dateTime != null ) ) ? dateTime: (toDateSelection && fromDate != null)?fromDate :DateTime(DateTime .now() .year - 150), lastDate: DateTime(DateTime @@ -226,11 +243,18 @@ class _PharmacyInterventionDialogState return DateFormat('yyyy-MM-dd').format(time); } - String getDate(String dateTime) { + String getDateString(String dateTime) { if (dateTime.isEmpty) return ''; + DateTime? now = getDate(dateTime); + if(now == null ) return ''; + return DateFormat('yyyy-MM-dd').format(now); + } + + DateTime? getDate(String dateTime){ + if (dateTime.isEmpty) return null; List splitedDate = dateTime.split('-'); DateTime now = DateTime(int.parse(splitedDate[0]), int.parse(splitedDate[1]), int.parse(splitedDate[2])); - return DateFormat('yyyy-MM-dd').format(now); + return now; } } \ No newline at end of file