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