working hours issue fixed

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

@ -7,7 +7,7 @@ class FixRemotelyHelperModel {
int? workOrderId;
DateTime? startDate;
DateTime? endDate;
int? workingHour;
dynamic workingHour;
String? 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) {
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) {
final result = (X == NullableLoadingProvider ? widget.staticData : provider?.items)?.where((element) => element.identifier == widget.initialValue?.identifier);
if (result?.isNotEmpty ?? false) _selectedItem = result!.first as T?;

@ -1,25 +1,23 @@
import 'package:flutter/material.dart';
class ServiceRequestUtils{
static int calculateAndAssignWorkingHours({
class ServiceRequestUtils {
static double calculateAndAssignWorkingHours({
required DateTime? startTime,
required DateTime? endTime,
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) {
Duration difference = endTime.difference(startTime);
int hours = difference.inHours;
// Update the controller and model
workingHoursController.text = hours.toString();
double hours = difference.inMinutes / 60.0; // Calculate hours as a decimal
workingHoursController.text = hours.toStringAsFixed(1); // Format to 1 decimal places
updateModel(hours); // Call the function to update the model
return hours;
} else {
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/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/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/spare_part/spare_part_request.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}) {
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(
context: context,
@ -95,10 +79,18 @@ class ServiceRequestBottomSheet {
selectedTime.hour,
selectedTime.minute,
);
requestDetailProvider.fixRemotelyHelperModel?.startDate = selectedDateTime;
requestDetailProvider.fixRemotelyHelperModel?.endDate = null;
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);
}
});
@ -131,12 +123,16 @@ class ServiceRequestBottomSheet {
"End Date time must be greater then start date".showToast;
return;
}
requestDetailProvider.fixRemotelyHelperModel?.endDate = selectedDateTime;
requestDetailProvider.updateFixRemotelyHelperModel(requestDetailProvider.fixRemotelyHelperModel);
assignWorkingHours(requestDetailProvider: requestDetailProvider);
// serviceRequestProvider.updateCurrentSelectedRequest(serviceRequestProvider.currentSelectedRequest);
ServiceRequestUtils.calculateAndAssignWorkingHours(
startTime: requestDetailProvider.fixRemotelyHelperModel?.startDate,
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/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/utilities/service_request_utils.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';
@ -120,7 +121,13 @@ class _AssistantEmployeeCardState extends State<AssistantEmployeeCard> {
);
requestDetailProvider.activityMaintenanceHelperModel?.modelAssistantEmployees?.startDate = selectedDateTime;
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.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
double 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.toDouble();
} else {
return -1;
}
}
assignWorkingHours({required RequestDetailProvider requestDetailProvider}) {
double hours = calculateWorkingHours(
requestDetailProvider.activityMaintenanceHelperModel?.modelAssistantEmployees?.startDate, requestDetailProvider.activityMaintenanceHelperModel?.modelAssistantEmployees?.endDate);
if (hours != -1) {
_workingHoursController.text = hours.toString();
requestDetailProvider.activityMaintenanceHelperModel?.modelAssistantEmployees?.workingHours = hours;
}
}
// //TODO move this to some common place....@waseem
// double 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.toDouble();
// } else {
// return -1;
// }
// }
//
// assignWorkingHours({required RequestDetailProvider requestDetailProvider}) {
// double hours = calculateWorkingHours(
// requestDetailProvider.activityMaintenanceHelperModel?.modelAssistantEmployees?.startDate, requestDetailProvider.activityMaintenanceHelperModel?.modelAssistantEmployees?.endDate);
// if (hours != -1) {
// _workingHoursController.text = hours.toString();
// 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/vendor_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/views/pages/user/requests/add_supplier_engineer_bottom_sheet.dart';
import 'package:test_sa/views/widgets/date_and_time/date_picker.dart';
@ -168,8 +169,18 @@ class _ExternalMaintenanceRequestState extends State<ExternalMaintenanceRequest>
selectedTime.minute,
);
requestDetailProvider.activityMaintenanceHelperModel?.supplierStartTime = selectedDateTime;
requestDetailProvider.activityMaintenanceHelperModel?.supplierEndTime = null;
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.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/work_order/activity_status_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/views/widgets/date_and_time/date_picker.dart';
@ -140,8 +141,17 @@ class _InternalMaintenanceRequestState extends State<InternalMaintenanceRequest>
selectedTime.minute,
);
requestDetailProvider.activityMaintenanceHelperModel?.startTime = selectedDateTime;
requestDetailProvider.activityMaintenanceHelperModel?.endTime = null;
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.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