timer picker end date selection fixed.

design_3.0_dark_mode
Sikander Saleem 4 months ago
parent be2fd8a2d5
commit 616ce9b630

@ -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;

@ -107,7 +107,7 @@ class _AssistantEmployeeCardState extends State<AssistantEmployeeCard> {
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<AssistantEmployeeCard> {
).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<AssistantEmployeeCard> {
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<AssistantEmployeeCard> {
// 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,

@ -146,13 +146,12 @@ class _ExternalMaintenanceRequestState extends State<ExternalMaintenanceRequest>
).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<ExternalMaintenanceRequest>
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<ExternalMaintenanceRequest>
).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,

@ -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<ExternalDetailItem> {
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<ExternalDetailItem> {
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,

@ -185,7 +185,7 @@ class _WoInfoFormState extends State<WoInfoForm> {
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<WoInfoForm> {
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<WoInfoForm> {
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;
},

@ -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<AssistantEmployeeCard> {
).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<AssistantEmployeeCard> {
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<AssistantEmployeeCard> {
).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,

@ -457,13 +457,12 @@ class _AssistantEmployeeCardState extends State<AssistantEmployeeCard> {
).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<AssistantEmployeeCard> {
"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,

@ -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<AppTimer> {
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<AppTimer> {
).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<AppTimer> {
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<AppTimer> {
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();
}
});

Loading…
Cancel
Save