diff --git a/lib/controllers/api_routes/urls.dart b/lib/controllers/api_routes/urls.dart index ff04c64b..a3c52227 100644 --- a/lib/controllers/api_routes/urls.dart +++ b/lib/controllers/api_routes/urls.dart @@ -3,14 +3,14 @@ class URLs { static const String appReleaseBuildNumber = "17"; - static const host1 = "https://atomsm.hmg.com"; // production url + // static const host1 = "https://atomsm.hmg.com"; // production url // static const host1 = "https://atomsmdev.hmg.com"; // local DEV url - // static const host1 = "https://atomsmuat.hmg.com"; // local UAT url + static const host1 = "https://atomsmuat.hmg.com"; // local UAT url - // static String _baseUrl = "$_host/mobile"; + static String _baseUrl = "$_host/mobile"; // static final String _baseUrl = "$_host/v2/mobile"; // new V2 apis // static final String _baseUrl = "$_host/mobile"; // host local UAT - static final String _baseUrl = "$_host/v3/mobile"; // v3 for new CM,PM,TM + // static final String _baseUrl = "$_host/v3/mobile"; // v3 for new CM,PM,TM static String _host = host1; diff --git a/lib/modules/cm_module/views/forms/maintenance_request/components/assistant_employee_card.dart b/lib/modules/cm_module/views/forms/maintenance_request/components/assistant_employee_card.dart index cd265105..6002b7e7 100644 --- a/lib/modules/cm_module/views/forms/maintenance_request/components/assistant_employee_card.dart +++ b/lib/modules/cm_module/views/forms/maintenance_request/components/assistant_employee_card.dart @@ -107,7 +107,7 @@ class _AssistantEmployeeCardState extends State { label: context.translation.startTime, hideShadow: true, backgroundColor: AppColor.neutral100, - from:requestDetailProvider.currentWorkOrder?.data?.requestedDate, + from: requestDetailProvider.currentWorkOrder?.data?.requestedDate, date: requestDetailProvider.activityMaintenanceHelperModel?.modelAssistantEmployees?.startDate, formatDateWithTime: true, onDatePicker: (selectedDate) { @@ -117,13 +117,13 @@ class _AssistantEmployeeCardState extends State { ).then((selectedTime) { // Handle the selected date and time here. if (selectedTime != null) { - DateTime selectedDateTime = DateTime( - selectedDate.year, - selectedDate.month, - selectedDate.day, - selectedTime.hour, - selectedTime.minute, - ); + DateTime selectedDateTime = DateTime(selectedDate.year, selectedDate.month, selectedDate.day, selectedTime.hour, selectedTime.minute); + if (selectedDateTime.isAfter(DateTime.now())) { + "Start time is after than current time".showToast; + selectedTime = null; + return; + } + requestDetailProvider.activityMaintenanceHelperModel?.modelAssistantEmployees?.startDate = selectedDateTime; requestDetailProvider.updateActivityMaintenanceHelperModel(requestDetailProvider.activityMaintenanceHelperModel); ServiceRequestUtils.calculateAndAssignWorkingHours( @@ -141,8 +141,9 @@ class _AssistantEmployeeCardState extends State { ADatePicker( label: context.translation.endTime, hideShadow: true, - from:requestDetailProvider.currentWorkOrder?.data?.requestedDate, + from: requestDetailProvider.currentWorkOrder?.data?.requestedDate, backgroundColor: AppColor.neutral100, + enable: requestDetailProvider.activityMaintenanceHelperModel?.modelAssistantEmployees?.startDate != null, date: requestDetailProvider.activityMaintenanceHelperModel?.modelAssistantEmployees?.endDate, formatDateWithTime: true, to: DateTime.now(), @@ -154,25 +155,19 @@ class _AssistantEmployeeCardState extends State { // Handle the selected date and time here. if (selectedTime != null) { - final TimeOfDay now = TimeOfDay.now(); - final bool isBeforeNow = Utils.isBeforeOrEqualCurrentTime(selectedTime, now); - if (!isBeforeNow) { + selectedDate = selectedDate.add(Duration(hours: selectedTime.hour, minutes: selectedTime.minute)); + bool isBeforeCurrentTime = selectedDate.isBefore(DateTime.now()); + bool isAfterStartTime = selectedDate.isAfter(requestDetailProvider.activityMaintenanceHelperModel!.modelAssistantEmployees!.startDate!); + if (!isBeforeCurrentTime) { "Please select a time before the current time.".showToast; return; } - DateTime selectedDateTime = DateTime( - selectedDate.year, - selectedDate.month, - selectedDate.day, - selectedTime.hour, - selectedTime.minute, - ); - if (requestDetailProvider.activityMaintenanceHelperModel?.modelAssistantEmployees?.startDate != null && - selectedDateTime.isBefore(requestDetailProvider.activityMaintenanceHelperModel!.modelAssistantEmployees!.startDate!)) { + if (!isAfterStartTime) { "End Date time must be greater then start date".showToast; return; } - requestDetailProvider.activityMaintenanceHelperModel?.modelAssistantEmployees?.endDate = selectedDateTime; + + requestDetailProvider.activityMaintenanceHelperModel?.modelAssistantEmployees?.endDate = selectedDate; requestDetailProvider.updateActivityMaintenanceHelperModel(requestDetailProvider.activityMaintenanceHelperModel); ServiceRequestUtils.calculateAndAssignWorkingHours( startTime: requestDetailProvider.activityMaintenanceHelperModel?.modelAssistantEmployees?.startDate, diff --git a/lib/modules/cm_module/views/forms/maintenance_request/components/external_request.dart b/lib/modules/cm_module/views/forms/maintenance_request/components/external_request.dart index 310c91dd..9284610d 100644 --- a/lib/modules/cm_module/views/forms/maintenance_request/components/external_request.dart +++ b/lib/modules/cm_module/views/forms/maintenance_request/components/external_request.dart @@ -146,13 +146,12 @@ class _ExternalMaintenanceRequestState extends State ).then((selectedTime) { // Handle the selected date and time here. if (selectedTime != null) { - DateTime selectedDateTime = DateTime( - selectedDate.year, - selectedDate.month, - selectedDate.day, - selectedTime.hour, - selectedTime.minute, - ); + DateTime selectedDateTime = DateTime(selectedDate.year, selectedDate.month, selectedDate.day, selectedTime.hour, selectedTime.minute); + if (selectedDateTime.isAfter(DateTime.now())) { + "Start time is after than current time".showToast; + selectedTime = null; + return; + } requestDetailProvider.activityMaintenanceHelperModel?.supplierStartTime = selectedDateTime; requestDetailProvider.activityMaintenanceHelperModel?.supplierEndTime = null; requestDetailProvider.updateActivityMaintenanceHelperModel(requestDetailProvider.activityMaintenanceHelperModel); @@ -176,6 +175,7 @@ class _ExternalMaintenanceRequestState extends State backgroundColor: AppColor.neutral100, from: requestDetailProvider.currentWorkOrder?.data?.requestedDate, to: DateTime.now(), + enable: requestDetailProvider.activityMaintenanceHelperModel?.supplierStartTime != null, date: requestDetailProvider.activityMaintenanceHelperModel?.supplierEndTime, formatDateWithTime: true, onDatePicker: (selectedDate) { @@ -185,25 +185,38 @@ class _ExternalMaintenanceRequestState extends State ).then((selectedTime) { // Handle the selected date and time here. if (selectedTime != null) { - final TimeOfDay now = TimeOfDay.now(); - final bool isBeforeNow = Utils.isBeforeOrEqualCurrentTime(selectedTime, now); - if (!isBeforeNow) { + // final TimeOfDay now = TimeOfDay.now(); + // final bool isBeforeNow = Utils.isBeforeOrEqualCurrentTime(selectedTime, now); + // if (!isBeforeNow) { + // "Please select a time before the current time.".showToast; + // return; + // } + + + + selectedDate = selectedDate.add(Duration(hours: selectedTime.hour, minutes: selectedTime.minute)); + bool isBeforeCurrentTime = selectedDate.isBefore(DateTime.now()); + bool isAfterStartTime = selectedDate.isAfter(requestDetailProvider.activityMaintenanceHelperModel!.supplierStartTime!); + if (!isBeforeCurrentTime) { "Please select a time before the current time.".showToast; return; } - DateTime selectedDateTime = DateTime( - selectedDate.year, - selectedDate.month, - selectedDate.day, - selectedTime.hour, - selectedTime.minute, - ); - if (requestDetailProvider.activityMaintenanceHelperModel!.supplierStartTime != null && - selectedDateTime.isBefore(requestDetailProvider.activityMaintenanceHelperModel!.supplierStartTime!)) { + if (!isAfterStartTime) { "End Date time must be greater then start date".showToast; return; } - requestDetailProvider.activityMaintenanceHelperModel?.supplierEndTime = selectedDateTime; + + // if (requestDetailProvider.activityMaintenanceHelperModel!.supplierStartTime != null && + // selectedDateTime.isBefore(requestDetailProvider.activityMaintenanceHelperModel!.supplierStartTime!)) { + // "End Date time must be greater then start date".showToast; + // return; + // } + + + + + + requestDetailProvider.activityMaintenanceHelperModel?.supplierEndTime = selectedDate; requestDetailProvider.updateActivityMaintenanceHelperModel(requestDetailProvider.activityMaintenanceHelperModel); ServiceRequestUtils.calculateAndAssignWorkingHours( startTime: requestDetailProvider.activityMaintenanceHelperModel!.supplierStartTime, diff --git a/lib/modules/pm_module/ppm_wo/update_ppm/ppm_external_details_form.dart b/lib/modules/pm_module/ppm_wo/update_ppm/ppm_external_details_form.dart index 456206f0..504562a3 100644 --- a/lib/modules/pm_module/ppm_wo/update_ppm/ppm_external_details_form.dart +++ b/lib/modules/pm_module/ppm_wo/update_ppm/ppm_external_details_form.dart @@ -1,5 +1,3 @@ -import 'dart:developer'; - import 'package:flutter/material.dart'; import 'package:provider/provider.dart'; import 'package:test_sa/controllers/providers/api/ppm_provider.dart'; @@ -91,7 +89,7 @@ class ExternalDetailItem extends StatefulWidget { final PreventiveVisitSuppliers model; final VoidCallback onRemove; final int index; - final String ?createdDate; + final String? createdDate; const ExternalDetailItem({ Key? key, @@ -187,20 +185,19 @@ class _ExternalDetailItemState extends State { backgroundColor: AppColor.neutral100, date: widget.model.startDateTime, formatDateWithTime: true, - from:DateTime.tryParse(_ppmProvider?.planPreventiveVisit?.creationDate??'') , + from: DateTime.tryParse(_ppmProvider?.planPreventiveVisit?.creationDate ?? ''), onDatePicker: (selectedDate) { showTimePicker( context: context, initialTime: TimeOfDay.now(), ).then((selectedTime) { if (selectedTime != null) { - DateTime selectedDateTime = DateTime( - selectedDate.year, - selectedDate.month, - selectedDate.day, - selectedTime.hour, - selectedTime.minute, - ); + DateTime selectedDateTime = DateTime(selectedDate.year, selectedDate.month, selectedDate.day, selectedTime.hour, selectedTime.minute); + if (selectedDateTime.isAfter(DateTime.now())) { + "Start time is after than current time".showToast; + selectedTime = null; + return; + } setState(() { widget.model.startDateTime = selectedDateTime; }); @@ -224,27 +221,29 @@ class _ExternalDetailItemState extends State { hideShadow: true, backgroundColor: AppColor.neutral100, date: widget.model.endDateTime, + enable: widget.model.startDateTime != null, formatDateWithTime: true, - from:DateTime.tryParse(_ppmProvider?.planPreventiveVisit?.creationDate??'') , + from: DateTime.tryParse(_ppmProvider?.planPreventiveVisit?.creationDate ?? ''), onDatePicker: (selectedDate) { showTimePicker( context: context, initialTime: TimeOfDay.now(), ).then((selectedTime) { if (selectedTime != null) { - DateTime selectedDateTime = DateTime( - selectedDate.year, - selectedDate.month, - selectedDate.day, - selectedTime.hour, - selectedTime.minute, - ); - if (widget.model.startDateTime != null && selectedDateTime.isBefore(widget.model.startDateTime!)) { - "End Date time must be greater than start date".showToast; + selectedDate = selectedDate.add(Duration(hours: selectedTime.hour, minutes: selectedTime.minute)); + bool isBeforeCurrentTime = selectedDate.isBefore(DateTime.now()); + bool isAfterStartTime = selectedDate.isAfter(widget.model.startDateTime!); + if (!isBeforeCurrentTime) { + "Please select a time before the current time.".showToast; + return; + } + if (!isAfterStartTime) { + "End Date time must be greater then start date".showToast; return; } + setState(() { - widget.model.endDateTime = selectedDateTime; + widget.model.endDateTime = selectedDate; }); ServiceRequestUtils.calculateAndAssignWorkingHours( startTime: widget.model.startDateTime, diff --git a/lib/modules/pm_module/ppm_wo/update_ppm/wo_info_form.dart b/lib/modules/pm_module/ppm_wo/update_ppm/wo_info_form.dart index 1f82daa6..03fbb0d2 100644 --- a/lib/modules/pm_module/ppm_wo/update_ppm/wo_info_form.dart +++ b/lib/modules/pm_module/ppm_wo/update_ppm/wo_info_form.dart @@ -185,7 +185,7 @@ class _WoInfoFormState extends State { hideShadow: true, backgroundColor: AppColor.neutral100, date: widget.planPreventiveVisit.acutalDateOfVisit, - from: DateTime.tryParse(widget.planPreventiveVisit.creationDate??''), + from: DateTime.tryParse(widget.planPreventiveVisit.creationDate ?? ''), formatDateWithTime: true, onDatePicker: (selectedDate) { showTimePicker( @@ -193,19 +193,19 @@ class _WoInfoFormState extends State { initialTime: TimeOfDay.now(), ).then((selectedTime) { if (selectedTime != null) { - final TimeOfDay now = TimeOfDay.now(); - final bool isBeforeNow = Utils.isBeforeOrEqualCurrentTime(selectedTime, now); - if (!isBeforeNow) { - "Please select a time before the current time.".showToast; + // final TimeOfDay now = TimeOfDay.now(); + // final bool isBeforeNow = Utils.isBeforeOrEqualCurrentTime(selectedTime, now); + // if (!isBeforeNow) { + // "Please select a time before the current time.".showToast; + // return; + // } + + DateTime selectedDateTime = DateTime(selectedDate.year, selectedDate.month, selectedDate.day, selectedTime.hour, selectedTime.minute); + if (selectedDateTime.isAfter(DateTime.now())) { + "Start time is after than current time".showToast; + selectedTime = null; return; } - DateTime selectedDateTime = DateTime( - selectedDate.year, - selectedDate.month, - selectedDate.day, - selectedTime.hour, - selectedTime.minute, - ); setState(() { widget.planPreventiveVisit.acutalDateOfVisit = selectedDateTime; }); @@ -363,7 +363,7 @@ class _WoInfoFormState extends State { width: double.infinity, timer: widget.planPreventiveVisit.tbsTimer, pickerTimer: widget.planPreventiveVisit.ppMTimePicker, - pickerFromDate: DateTime.tryParse(widget.planPreventiveVisit.creationDate??''), + pickerFromDate: DateTime.tryParse(widget.planPreventiveVisit.creationDate ?? ''), onPick: (time) { widget.planPreventiveVisit.ppMTimePicker = time; }, diff --git a/lib/modules/tm_module/tasks_wo/update_task_request_view.dart b/lib/modules/tm_module/tasks_wo/update_task_request_view.dart index a41d4e94..813cb39a 100644 --- a/lib/modules/tm_module/tasks_wo/update_task_request_view.dart +++ b/lib/modules/tm_module/tasks_wo/update_task_request_view.dart @@ -1,5 +1,6 @@ import 'dart:convert'; import 'dart:io'; + import 'package:flutter/material.dart'; import 'package:fluttertoast/fluttertoast.dart'; import 'package:provider/provider.dart'; @@ -7,11 +8,11 @@ import 'package:test_sa/controllers/providers/api/all_requests_provider.dart'; import 'package:test_sa/extensions/context_extension.dart'; import 'package:test_sa/extensions/int_extensions.dart'; import 'package:test_sa/extensions/string_extensions.dart'; -import 'package:test_sa/models/new_models/building.dart'; -import 'package:test_sa/models/new_models/department.dart'; import 'package:test_sa/extensions/text_extensions.dart'; import 'package:test_sa/extensions/widget_extensions.dart'; import 'package:test_sa/models/lookup.dart'; +import 'package:test_sa/models/new_models/building.dart'; +import 'package:test_sa/models/new_models/department.dart'; import 'package:test_sa/models/new_models/floor.dart'; import 'package:test_sa/models/new_models/task_request/task_request_model.dart'; import 'package:test_sa/modules/cm_module/utilities/service_request_utils.dart'; @@ -33,6 +34,7 @@ import 'package:test_sa/views/widgets/loaders/app_loading.dart'; import 'package:test_sa/views/widgets/loaders/no_data_found.dart'; import 'package:test_sa/views/widgets/status/report/service_report_assistant_employee_menu.dart'; import 'package:test_sa/views/widgets/timer/app_timer.dart'; + import '../../../../models/new_models/site.dart'; import '../../../../models/new_models/work_order_detail_model.dart'; @@ -654,13 +656,12 @@ class _AssistantEmployeeCardState extends State { ).then((selectedTime) { // Handle the selected date and time here. if (selectedTime != null) { - DateTime selectedDateTime = DateTime( - selectedDate.year, - selectedDate.month, - selectedDate.day, - selectedTime.hour, - selectedTime.minute, - ); + DateTime selectedDateTime = DateTime(selectedDate.year, selectedDate.month, selectedDate.day, selectedTime.hour, selectedTime.minute); + if (selectedDateTime.isAfter(DateTime.now())) { + "Start time is after than current time".showToast; + selectedTime = null; + return; + } taskModel?.modelAssistantEmployees?.startDate = selectedDateTime; taskRequestProvider.updateTaskModel(taskModel); ServiceRequestUtils.calculateAndAssignWorkingHours( @@ -680,6 +681,7 @@ class _AssistantEmployeeCardState extends State { hideShadow: true, backgroundColor: AppColor.neutral100, date: taskModel?.modelAssistantEmployees?.endDate, + enable: taskModel?.modelAssistantEmployees?.startDate != null, formatDateWithTime: true, onDatePicker: (selectedDate) { showTimePicker( @@ -688,19 +690,32 @@ class _AssistantEmployeeCardState extends State { ).then((selectedTime) { // Handle the selected date and time here. if (selectedTime != null) { - DateTime selectedDateTime = DateTime( - selectedDate.year, - selectedDate.month, - selectedDate.day, - selectedTime.hour, - selectedTime.minute, - ); + // DateTime selectedDateTime = DateTime( + // selectedDate.year, + // selectedDate.month, + // selectedDate.day, + // selectedTime.hour, + // selectedTime.minute, + // ); + // + // if (taskModel?.modelAssistantEmployees?.startDate != null && selectedDateTime.isBefore(taskModel!.modelAssistantEmployees!.startDate!)) { + // "End Date time must be greater then start date".showToast; + // return; + // } - if (taskModel?.modelAssistantEmployees?.startDate != null && selectedDateTime.isBefore(taskModel!.modelAssistantEmployees!.startDate!)) { + selectedDate = selectedDate.add(Duration(hours: selectedTime.hour, minutes: selectedTime.minute)); + bool isBeforeCurrentTime = selectedDate.isBefore(DateTime.now()); + bool isAfterStartTime = selectedDate.isAfter(taskModel!.modelAssistantEmployees!.startDate!); + if (!isBeforeCurrentTime) { + "Please select a time before the current time.".showToast; + return; + } + if (!isAfterStartTime) { "End Date time must be greater then start date".showToast; return; } - taskModel?.modelAssistantEmployees?.endDate = selectedDateTime; + + taskModel?.modelAssistantEmployees?.endDate = selectedDate; taskRequestProvider.updateTaskModel(taskModel); ServiceRequestUtils.calculateAndAssignWorkingHours( startTime: taskModel?.modelAssistantEmployees?.startDate, diff --git a/lib/views/pages/device_transfer/update_device_transfer.dart b/lib/views/pages/device_transfer/update_device_transfer.dart index 70d85626..7e038575 100644 --- a/lib/views/pages/device_transfer/update_device_transfer.dart +++ b/lib/views/pages/device_transfer/update_device_transfer.dart @@ -457,13 +457,12 @@ class _AssistantEmployeeCardState extends State { ).then((selectedTime) { // Handle the selected date and time here. if (selectedTime != null) { - DateTime selectedDateTime = DateTime( - selectedDate.year, - selectedDate.month, - selectedDate.day, - selectedTime.hour, - selectedTime.minute, - ); + DateTime selectedDateTime = DateTime(selectedDate.year, selectedDate.month, selectedDate.day, selectedTime.hour, selectedTime.minute); + if (selectedDateTime.isAfter(DateTime.now())) { + "Start time is after than current time".showToast; + selectedTime = null; + return; + } widget.formModel?.modelAssistantEmployees?.startDate = selectedDateTime; ServiceRequestUtils.calculateAndAssignWorkingHours( startTime: widget.formModel?.modelAssistantEmployees?.startDate, @@ -501,6 +500,22 @@ class _AssistantEmployeeCardState extends State { "End Date time must be greater then start date".showToast; return; } + + selectedDate = selectedDate.add(Duration(hours: selectedTime.hour, minutes: selectedTime.minute)); + bool isBeforeCurrentTime = selectedDate.isBefore(DateTime.now()); + bool isAfterStartTime = selectedDate.isAfter(widget.formModel!.modelAssistantEmployees!.startDate!); + if (!isBeforeCurrentTime) { + "Please select a time before the current time.".showToast; + return; + } + if (!isAfterStartTime) { + "End Date time must be greater then start date".showToast; + return; + } + + + + widget.formModel?.modelAssistantEmployees?.endDate = selectedDateTime; ServiceRequestUtils.calculateAndAssignWorkingHours( startTime: widget.formModel?.modelAssistantEmployees?.startDate, diff --git a/lib/views/widgets/timer/app_timer.dart b/lib/views/widgets/timer/app_timer.dart index e72757ca..9583cc5b 100644 --- a/lib/views/widgets/timer/app_timer.dart +++ b/lib/views/widgets/timer/app_timer.dart @@ -7,7 +7,6 @@ import 'package:test_sa/extensions/int_extensions.dart'; import 'package:test_sa/extensions/string_extensions.dart'; import 'package:test_sa/extensions/text_extensions.dart'; import 'package:test_sa/extensions/widget_extensions.dart'; -import 'package:test_sa/helper/utils.dart'; import 'package:test_sa/models/timer_model.dart'; import 'package:test_sa/modules/cm_module/utilities/service_request_utils.dart'; import 'package:test_sa/views/widgets/date_and_time/date_picker.dart'; @@ -166,7 +165,7 @@ class _AppTimerState extends State { backgroundColor: AppColor.neutral100, date: _pickerStartAt, from: widget.pickerFromDate, - enable: widget.enabled ? _tempPickerTimer == null:false, + enable: widget.enabled ? _tempPickerTimer == null : false, formatDateWithTime: true, onDatePicker: (selectedDate) { showTimePicker( @@ -175,6 +174,12 @@ class _AppTimerState extends State { ).then((selectedTime) { if (selectedTime != null) { _pickerStartAt = DateTime(selectedDate.year, selectedDate.month, selectedDate.day, selectedTime.hour, selectedTime.minute); + if (_pickerStartAt!.isAfter(DateTime.now())) { + "Start time is after than current time".showToast; + _pickerStartAt = null; + selectedTime = null; + return; + } setState(() {}); } }); @@ -185,8 +190,8 @@ class _AppTimerState extends State { label: context.translation.endTime, hideShadow: true, backgroundColor: AppColor.neutral100, - enable: widget.enabled? _pickerStartAt != null:false, - from:_pickerStartAt, + enable: widget.enabled ? _pickerStartAt != null : false, + from: _pickerStartAt, date: _pickerEndAt, to: DateTime.now(), formatDateWithTime: true, @@ -195,20 +200,19 @@ class _AppTimerState extends State { context: context, initialTime: TimeOfDay.now(), ).then((selectedTime) { - if (selectedTime != null) { - final TimeOfDay now = TimeOfDay.now(); - final bool isBeforeNow = Utils.isBeforeOrEqualCurrentTime(selectedTime, now); - if (!isBeforeNow) { + selectedDate = selectedDate.add(Duration(hours: selectedTime.hour, minutes: selectedTime.minute)); + bool isBeforeCurrentTime = selectedDate.isBefore(DateTime.now()); + bool isAfterStartTime = selectedDate.isAfter(_pickerStartAt!); + if (!isBeforeCurrentTime) { "Please select a time before the current time.".showToast; return; } - DateTime selectedDateTime = DateTime(selectedDate.year, selectedDate.month, selectedDate.day, selectedTime.hour, selectedTime.minute); - if (_pickerStartAt != null && selectedDateTime.isBefore(_pickerStartAt!)) { + if (!isAfterStartTime) { "End Date time must be greater then start date".showToast; return; } - _pickerEndAt = selectedDateTime; + _pickerEndAt = selectedDate; setPickerTime(); } });