working hours issue fixed

design_3.0_latest
WaseemAbbasi22 1 year ago
parent f45e0e4f80
commit 010aaf9fe2

@ -7,7 +7,7 @@ class FixRemotelyHelperModel {
int? workOrderId; int? workOrderId;
DateTime? startDate; DateTime? startDate;
DateTime? endDate; DateTime? endDate;
int? workingHour; dynamic workingHour;
String? comment; String? comment;
FixRemotelyHelperModel({this.workOrderId, this.startDate, this.endDate, this.workingHour, this.comment}); FixRemotelyHelperModel({this.workOrderId, this.startDate, this.endDate, this.workingHour, this.comment});

@ -53,16 +53,6 @@ class _SingleItemDropDownMenuState<T extends Base, X extends LoadingListNotifier
if (X != NullableLoadingProvider) { if (X != NullableLoadingProvider) {
provider = Provider.of<X>(widget.context); provider = Provider.of<X>(widget.context);
} }
print('initial value i got is ${widget.initialValue?.identifier}');
print('condition value ${X == NullableLoadingProvider}');
if(widget.staticData!=null){
for(int i = 0;i<widget.staticData!.length;i++){
print('id i got is ${widget.staticData?[i].identifier}');
}
}
if (widget.initialValue != null) { if (widget.initialValue != null) {
final result = (X == NullableLoadingProvider ? widget.staticData : provider?.items)?.where((element) => element.identifier == widget.initialValue?.identifier); final result = (X == NullableLoadingProvider ? widget.staticData : provider?.items)?.where((element) => element.identifier == widget.initialValue?.identifier);
if (result?.isNotEmpty ?? false) _selectedItem = result!.first as T?; if (result?.isNotEmpty ?? false) _selectedItem = result!.first as T?;

@ -1,25 +1,23 @@
import 'package:flutter/material.dart'; import 'package:flutter/material.dart';
class ServiceRequestUtils{ class ServiceRequestUtils {
static int calculateAndAssignWorkingHours({ static double calculateAndAssignWorkingHours({
required DateTime? startTime, required DateTime? startTime,
required DateTime? endTime, required DateTime? endTime,
required TextEditingController workingHoursController, required TextEditingController workingHoursController,
required Function(int) updateModel, // A callback to update the model required Function(double) updateModel, // A callback to update the model
}) { }) {
print('end date i got is ${endTime}'); print('start date i got is $startTime');
print('end date i got is $endTime');
if (startTime != null && endTime != null) { if (startTime != null && endTime != null) {
Duration difference = endTime.difference(startTime); Duration difference = endTime.difference(startTime);
int hours = difference.inHours; double hours = difference.inMinutes / 60.0; // Calculate hours as a decimal
workingHoursController.text = hours.toStringAsFixed(1); // Format to 1 decimal places
// Update the controller and model
workingHoursController.text = hours.toString();
updateModel(hours); // Call the function to update the model updateModel(hours); // Call the function to update the model
return hours; return hours;
} else { } else {
return -1; // Indicating invalid input return -1; // Indicating invalid input
} }
} }
}
}

@ -18,6 +18,7 @@ import 'package:test_sa/models/lookup.dart';
import 'package:test_sa/new_views/common_widgets/single_item_drop_down_menu.dart'; import 'package:test_sa/new_views/common_widgets/single_item_drop_down_menu.dart';
import 'package:test_sa/providers/service_request_providers/reject_reason_provider.dart'; import 'package:test_sa/providers/service_request_providers/reject_reason_provider.dart';
import 'package:test_sa/service_request_latest/request_detail_provider.dart'; import 'package:test_sa/service_request_latest/request_detail_provider.dart';
import 'package:test_sa/service_request_latest/utilities/service_request_utils.dart';
import 'package:test_sa/service_request_latest/views/forms/maintenance_request/maintenance_request_main.dart'; import 'package:test_sa/service_request_latest/views/forms/maintenance_request/maintenance_request_main.dart';
import 'package:test_sa/service_request_latest/views/forms/spare_part/spare_part_request.dart'; import 'package:test_sa/service_request_latest/views/forms/spare_part/spare_part_request.dart';
import 'package:test_sa/views/widgets/date_and_time/date_picker.dart'; import 'package:test_sa/views/widgets/date_and_time/date_picker.dart';
@ -43,23 +44,6 @@ class ServiceRequestBottomSheet {
static Future fixRemotelyBottomSheet({required BuildContext context}) { static Future fixRemotelyBottomSheet({required BuildContext context}) {
TextEditingController _workingHoursController = TextEditingController(); TextEditingController _workingHoursController = TextEditingController();
int calculateWorkingHours(DateTime? startTime, DateTime? endTime) {
if (startTime != null && endTime != null) {
Duration difference = endTime.difference(startTime);
int hours = difference.inHours;
return hours;
} else {
return -1;
}
}
assignWorkingHours({required RequestDetailProvider requestDetailProvider}) {
int hours = calculateWorkingHours(requestDetailProvider.fixRemotelyHelperModel?.startDate, requestDetailProvider.fixRemotelyHelperModel?.endDate);
if (hours != -1) {
_workingHoursController.text = hours.toString();
requestDetailProvider.fixRemotelyHelperModel?.workingHour = hours;
}
}
return buildBottomSheetParent( return buildBottomSheetParent(
context: context, context: context,
@ -95,10 +79,18 @@ class ServiceRequestBottomSheet {
selectedTime.hour, selectedTime.hour,
selectedTime.minute, selectedTime.minute,
); );
requestDetailProvider.fixRemotelyHelperModel?.startDate = selectedDateTime; requestDetailProvider.fixRemotelyHelperModel?.startDate = selectedDateTime;
requestDetailProvider.fixRemotelyHelperModel?.endDate = null;
requestDetailProvider.updateFixRemotelyHelperModel(requestDetailProvider.fixRemotelyHelperModel); requestDetailProvider.updateFixRemotelyHelperModel(requestDetailProvider.fixRemotelyHelperModel);
assignWorkingHours(requestDetailProvider: requestDetailProvider); _workingHoursController.clear();
ServiceRequestUtils.calculateAndAssignWorkingHours(
startTime: requestDetailProvider.fixRemotelyHelperModel?.startDate,
endTime: requestDetailProvider.fixRemotelyHelperModel?.endDate,
workingHoursController: _workingHoursController,
updateModel: (hours) {
requestDetailProvider.fixRemotelyHelperModel?.workingHour = hours;
},
);
// serviceRequestProvider.updateCurrentSelectedRequest(serviceRequestProvider.currentSelectedRequest); // serviceRequestProvider.updateCurrentSelectedRequest(serviceRequestProvider.currentSelectedRequest);
} }
}); });
@ -131,12 +123,16 @@ class ServiceRequestBottomSheet {
"End Date time must be greater then start date".showToast; "End Date time must be greater then start date".showToast;
return; return;
} }
requestDetailProvider.fixRemotelyHelperModel?.endDate = selectedDateTime; requestDetailProvider.fixRemotelyHelperModel?.endDate = selectedDateTime;
requestDetailProvider.updateFixRemotelyHelperModel(requestDetailProvider.fixRemotelyHelperModel); requestDetailProvider.updateFixRemotelyHelperModel(requestDetailProvider.fixRemotelyHelperModel);
assignWorkingHours(requestDetailProvider: requestDetailProvider); ServiceRequestUtils.calculateAndAssignWorkingHours(
startTime: requestDetailProvider.fixRemotelyHelperModel?.startDate,
// serviceRequestProvider.updateCurrentSelectedRequest(serviceRequestProvider.currentSelectedRequest); endTime: requestDetailProvider.fixRemotelyHelperModel?.endDate,
workingHoursController: _workingHoursController,
updateModel: (hours) {
requestDetailProvider.fixRemotelyHelperModel?.workingHour = hours;
},
);
} }
}); });
}, },

@ -10,6 +10,7 @@ import 'package:test_sa/models/new_models/work_order_detail_model.dart';
import 'package:test_sa/new_views/app_style/app_color.dart'; import 'package:test_sa/new_views/app_style/app_color.dart';
import 'package:test_sa/new_views/common_widgets/app_text_form_field.dart'; import 'package:test_sa/new_views/common_widgets/app_text_form_field.dart';
import 'package:test_sa/service_request_latest/request_detail_provider.dart'; import 'package:test_sa/service_request_latest/request_detail_provider.dart';
import 'package:test_sa/service_request_latest/utilities/service_request_utils.dart';
import 'package:test_sa/views/widgets/date_and_time/date_picker.dart'; import 'package:test_sa/views/widgets/date_and_time/date_picker.dart';
import 'package:test_sa/views/widgets/status/report/service_report_assistant_employee_menu.dart'; import 'package:test_sa/views/widgets/status/report/service_report_assistant_employee_menu.dart';
@ -120,7 +121,13 @@ class _AssistantEmployeeCardState extends State<AssistantEmployeeCard> {
); );
requestDetailProvider.activityMaintenanceHelperModel?.modelAssistantEmployees?.startDate = selectedDateTime; requestDetailProvider.activityMaintenanceHelperModel?.modelAssistantEmployees?.startDate = selectedDateTime;
requestDetailProvider.updateActivityMaintenanceHelperModel(requestDetailProvider.activityMaintenanceHelperModel); requestDetailProvider.updateActivityMaintenanceHelperModel(requestDetailProvider.activityMaintenanceHelperModel);
assignWorkingHours(requestDetailProvider: requestDetailProvider); ServiceRequestUtils.calculateAndAssignWorkingHours(
startTime: requestDetailProvider.activityMaintenanceHelperModel?.startTime,
endTime: requestDetailProvider.activityMaintenanceHelperModel?.endTime,
workingHoursController: _workingHoursController,
updateModel: (hours){
});
} }
}); });
}, },
@ -153,7 +160,7 @@ class _AssistantEmployeeCardState extends State<AssistantEmployeeCard> {
} }
requestDetailProvider.activityMaintenanceHelperModel?.modelAssistantEmployees?.endDate = selectedDateTime; requestDetailProvider.activityMaintenanceHelperModel?.modelAssistantEmployees?.endDate = selectedDateTime;
requestDetailProvider.updateActivityMaintenanceHelperModel(requestDetailProvider.activityMaintenanceHelperModel); requestDetailProvider.updateActivityMaintenanceHelperModel(requestDetailProvider.activityMaintenanceHelperModel);
assignWorkingHours(requestDetailProvider: requestDetailProvider); // assignWorkingHours(requestDetailProvider: requestDetailProvider);
} }
}); });
}, },
@ -200,24 +207,24 @@ class _AssistantEmployeeCardState extends State<AssistantEmployeeCard> {
}); });
} }
//TODO move this to some common place....@waseem // //TODO move this to some common place....@waseem
double calculateWorkingHours(DateTime? startTime, DateTime? endTime) { // double calculateWorkingHours(DateTime? startTime, DateTime? endTime) {
if (startTime != null && endTime != null) { // if (startTime != null && endTime != null) {
Duration difference = endTime.difference(startTime); // Duration difference = endTime.difference(startTime);
int hours = difference.inHours; // int hours = difference.inHours;
int minutes = difference.inMinutes % 60; // int minutes = difference.inMinutes % 60;
return hours.toDouble(); // return hours.toDouble();
} else { // } else {
return -1; // return -1;
} // }
} // }
//
assignWorkingHours({required RequestDetailProvider requestDetailProvider}) { // assignWorkingHours({required RequestDetailProvider requestDetailProvider}) {
double hours = calculateWorkingHours( // double hours = calculateWorkingHours(
requestDetailProvider.activityMaintenanceHelperModel?.modelAssistantEmployees?.startDate, requestDetailProvider.activityMaintenanceHelperModel?.modelAssistantEmployees?.endDate); // requestDetailProvider.activityMaintenanceHelperModel?.modelAssistantEmployees?.startDate, requestDetailProvider.activityMaintenanceHelperModel?.modelAssistantEmployees?.endDate);
if (hours != -1) { // if (hours != -1) {
_workingHoursController.text = hours.toString(); // _workingHoursController.text = hours.toString();
requestDetailProvider.activityMaintenanceHelperModel?.modelAssistantEmployees?.workingHours = hours; // requestDetailProvider.activityMaintenanceHelperModel?.modelAssistantEmployees?.workingHours = hours;
} // }
} // }
} }

@ -20,6 +20,7 @@ import 'package:test_sa/providers/loading_list_notifier.dart';
import 'package:test_sa/providers/work_order/reason_provider.dart'; import 'package:test_sa/providers/work_order/reason_provider.dart';
import 'package:test_sa/providers/work_order/vendor_provider.dart'; import 'package:test_sa/providers/work_order/vendor_provider.dart';
import 'package:test_sa/service_request_latest/request_detail_provider.dart'; import 'package:test_sa/service_request_latest/request_detail_provider.dart';
import 'package:test_sa/service_request_latest/utilities/service_request_utils.dart';
import 'package:test_sa/service_request_latest/views/components/action_button/footer_action_button.dart'; import 'package:test_sa/service_request_latest/views/components/action_button/footer_action_button.dart';
import 'package:test_sa/views/pages/user/requests/add_supplier_engineer_bottom_sheet.dart'; import 'package:test_sa/views/pages/user/requests/add_supplier_engineer_bottom_sheet.dart';
import 'package:test_sa/views/widgets/date_and_time/date_picker.dart'; import 'package:test_sa/views/widgets/date_and_time/date_picker.dart';
@ -168,8 +169,18 @@ class _ExternalMaintenanceRequestState extends State<ExternalMaintenanceRequest>
selectedTime.minute, selectedTime.minute,
); );
requestDetailProvider.activityMaintenanceHelperModel?.supplierStartTime = selectedDateTime; requestDetailProvider.activityMaintenanceHelperModel?.supplierStartTime = selectedDateTime;
requestDetailProvider.activityMaintenanceHelperModel?.supplierEndTime = null;
requestDetailProvider.updateActivityMaintenanceHelperModel(requestDetailProvider.activityMaintenanceHelperModel); requestDetailProvider.updateActivityMaintenanceHelperModel(requestDetailProvider.activityMaintenanceHelperModel);
assignWorkingHours(requestDetailProvider: requestDetailProvider); _workingHoursController.clear();
ServiceRequestUtils.calculateAndAssignWorkingHours(
startTime: requestDetailProvider.activityMaintenanceHelperModel!.supplierStartTime,
endTime: requestDetailProvider.activityMaintenanceHelperModel!.endTime,
workingHoursController: _workingHoursController,
updateModel: (hours) {
requestDetailProvider.activityMaintenanceHelperModel?.supplierWorkingHour = hours;
},
);
} }
}); });
}, },
@ -202,7 +213,14 @@ class _ExternalMaintenanceRequestState extends State<ExternalMaintenanceRequest>
} }
requestDetailProvider.activityMaintenanceHelperModel?.supplierEndTime = selectedDateTime; requestDetailProvider.activityMaintenanceHelperModel?.supplierEndTime = selectedDateTime;
requestDetailProvider.updateActivityMaintenanceHelperModel(requestDetailProvider.activityMaintenanceHelperModel); requestDetailProvider.updateActivityMaintenanceHelperModel(requestDetailProvider.activityMaintenanceHelperModel);
assignWorkingHours(requestDetailProvider: requestDetailProvider); ServiceRequestUtils.calculateAndAssignWorkingHours(
startTime: requestDetailProvider.activityMaintenanceHelperModel!.supplierStartTime,
endTime: requestDetailProvider.activityMaintenanceHelperModel!.supplierEndTime,
workingHoursController: _workingHoursController,
updateModel: (hours) {
requestDetailProvider.activityMaintenanceHelperModel?.supplierWorkingHour = hours;
},
);
} }
}); });
}, },
@ -232,22 +250,4 @@ class _ExternalMaintenanceRequestState extends State<ExternalMaintenanceRequest>
}); });
} }
int calculateWorkingHours(DateTime? startTime, DateTime? endTime) {
if (startTime != null && endTime != null) {
Duration difference = endTime.difference(startTime);
int hours = difference.inHours;
int minutes = difference.inMinutes % 60;
return hours;
} else {
return -1;
}
}
assignWorkingHours({required RequestDetailProvider requestDetailProvider}) {
int hours = calculateWorkingHours(requestDetailProvider.activityMaintenanceHelperModel!.supplierStartTime, requestDetailProvider.activityMaintenanceHelperModel!.supplierEndTime);
if (hours != -1) {
_workingHoursController.text = hours.toString();
requestDetailProvider.activityMaintenanceHelperModel!.supplierWorkingHour = hours;
}
}
} }

@ -13,6 +13,7 @@ import 'package:test_sa/new_views/app_style/app_color.dart';
import 'package:test_sa/providers/service_request_providers/last_situation_provider.dart'; import 'package:test_sa/providers/service_request_providers/last_situation_provider.dart';
import 'package:test_sa/providers/work_order/activity_status_provider.dart'; import 'package:test_sa/providers/work_order/activity_status_provider.dart';
import 'package:test_sa/service_request_latest/request_detail_provider.dart'; import 'package:test_sa/service_request_latest/request_detail_provider.dart';
import 'package:test_sa/service_request_latest/utilities/service_request_utils.dart';
import 'package:test_sa/service_request_latest/views/forms/maintenance_request/components/assistant_employee_card.dart'; import 'package:test_sa/service_request_latest/views/forms/maintenance_request/components/assistant_employee_card.dart';
import 'package:test_sa/views/widgets/date_and_time/date_picker.dart'; import 'package:test_sa/views/widgets/date_and_time/date_picker.dart';
@ -140,8 +141,17 @@ class _InternalMaintenanceRequestState extends State<InternalMaintenanceRequest>
selectedTime.minute, selectedTime.minute,
); );
requestDetailProvider.activityMaintenanceHelperModel?.startTime = selectedDateTime; requestDetailProvider.activityMaintenanceHelperModel?.startTime = selectedDateTime;
requestDetailProvider.activityMaintenanceHelperModel?.endTime = null;
requestDetailProvider.updateActivityMaintenanceHelperModel(requestDetailProvider.activityMaintenanceHelperModel); requestDetailProvider.updateActivityMaintenanceHelperModel(requestDetailProvider.activityMaintenanceHelperModel);
assignWorkingHours(requestDetailProvider: requestDetailProvider); _workingHoursController.clear();
ServiceRequestUtils.calculateAndAssignWorkingHours(
startTime: requestDetailProvider.activityMaintenanceHelperModel!.startTime,
endTime: requestDetailProvider.activityMaintenanceHelperModel!.endTime,
workingHoursController: _workingHoursController,
updateModel: (hours) {
requestDetailProvider.activityMaintenanceHelperModel?.workingHour = hours;
},
);
} }
}); });
}, },
@ -168,7 +178,14 @@ class _InternalMaintenanceRequestState extends State<InternalMaintenanceRequest>
} }
requestDetailProvider.activityMaintenanceHelperModel?.endTime = selectedDateTime; requestDetailProvider.activityMaintenanceHelperModel?.endTime = selectedDateTime;
requestDetailProvider.updateActivityMaintenanceHelperModel(requestDetailProvider.activityMaintenanceHelperModel); requestDetailProvider.updateActivityMaintenanceHelperModel(requestDetailProvider.activityMaintenanceHelperModel);
assignWorkingHours(requestDetailProvider: requestDetailProvider); ServiceRequestUtils.calculateAndAssignWorkingHours(
startTime: requestDetailProvider.activityMaintenanceHelperModel!.startTime,
endTime: requestDetailProvider.activityMaintenanceHelperModel!.endTime,
workingHoursController: _workingHoursController,
updateModel: (hours) {
requestDetailProvider.activityMaintenanceHelperModel?.workingHour = hours;
},
);
} }
}); });
}, },
@ -296,22 +313,5 @@ class _InternalMaintenanceRequestState extends State<InternalMaintenanceRequest>
}); });
} }
int calculateWorkingHours(DateTime? startTime, DateTime? endTime) {
if (startTime != null && endTime != null) {
Duration difference = endTime.difference(startTime);
int hours = difference.inHours;
int minutes = difference.inMinutes % 60;
return hours;
} else {
return -1;
}
}
assignWorkingHours({required RequestDetailProvider requestDetailProvider}) {
int hours = calculateWorkingHours(requestDetailProvider.activityMaintenanceHelperModel!.startTime, requestDetailProvider.activityMaintenanceHelperModel!.endTime);
if (hours != -1) {
_workingHoursController.text = hours.toString();
requestDetailProvider.activityMaintenanceHelperModel!.workingHour = hours;
}
}
} }

Loading…
Cancel
Save