From 5d204687cc7dc4d1f98d4795900d7aa9660117e2 Mon Sep 17 00:00:00 2001 From: "muhammad.abbasi" Date: Sun, 6 Oct 2024 11:17:00 +0300 Subject: [PATCH] fix remotely working hours auto assign fixes --- .../common_widgets/app_bottom_nav_bar.dart | 2 +- .../request_detail_provider.dart | 2 +- .../service_request_bottomsheet.dart | 34 +++++++++++++++++-- .../views/components/verify_arrival_view.dart | 2 +- 4 files changed, 35 insertions(+), 5 deletions(-) diff --git a/lib/new_views/common_widgets/app_bottom_nav_bar.dart b/lib/new_views/common_widgets/app_bottom_nav_bar.dart index e12734c3..c8346a9a 100644 --- a/lib/new_views/common_widgets/app_bottom_nav_bar.dart +++ b/lib/new_views/common_widgets/app_bottom_nav_bar.dart @@ -16,7 +16,7 @@ class AppBottomNavigationBar extends StatelessWidget { @override Widget build(BuildContext context) { - bool isEngineer = (Provider.of(context, listen: false).user!.type) == UsersTypes.engineer; + bool isEngineer = (Provider.of(context, listen: false).user?.type) == UsersTypes.engineer; return Container( height: 84.toScreenHeight, decoration: BoxDecoration( diff --git a/lib/service_request_latest/request_detail_provider.dart b/lib/service_request_latest/request_detail_provider.dart index 1385c5bf..f6be2652 100644 --- a/lib/service_request_latest/request_detail_provider.dart +++ b/lib/service_request_latest/request_detail_provider.dart @@ -345,7 +345,7 @@ class RequestDetailProvider extends ChangeNotifier { } //engineer Confirm Arrive...... - Future engineerConfirmArrival({required int workOrderId, required int verificationTypeId, required String photoInfo, required String otp, required String assetNo}) async { + Future engineerConfirmArrival({required int workOrderId, required int verificationTypeId, required String photoInfo, required String otp, String ?assetNo}) async { Response response; try { Map body = {"workOrderId": workOrderId, "verificationTypeId": verificationTypeId, "photoInfo": photoInfo, "otp": otp, "assetNumber": assetNo}; diff --git a/lib/service_request_latest/views/components/bottom_sheets/service_request_bottomsheet.dart b/lib/service_request_latest/views/components/bottom_sheets/service_request_bottomsheet.dart index 04513ab2..8966f0cd 100644 --- a/lib/service_request_latest/views/components/bottom_sheets/service_request_bottomsheet.dart +++ b/lib/service_request_latest/views/components/bottom_sheets/service_request_bottomsheet.dart @@ -32,7 +32,7 @@ import '../../../../new_views/common_widgets/app_filled_button.dart'; import '../../../../new_views/common_widgets/app_text_form_field.dart'; class ServiceRequestBottomSheet { - static buildBottomSheetParent({required BuildContext context, required Widget childWidget}) { + static buildBottomSheetParent({required BuildContext context, required Widget childWidget,bool ?isFromFixRemotely}) { return showModalBottomSheet( context: context, useSafeArea: true, @@ -41,12 +41,37 @@ class ServiceRequestBottomSheet { builder: (context) => SingleChildScrollView( child: childWidget, ).bottomSheetContainer(context), - ); + ).then((value){ + if(isFromFixRemotely!=null&&isFromFixRemotely){ + RequestDetailProvider requestDetailProvider = Provider.of(context,listen: false); + requestDetailProvider.fixRemotelyHelperModel = FixRemotelyHelperModel(); + } + }); } 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; + int minutes = difference.inMinutes % 60; + 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, + isFromFixRemotely: true, childWidget: Consumer(builder: (context, RequestDetailProvider requestDetailProvider, child) { return Column( crossAxisAlignment: CrossAxisAlignment.center, @@ -87,6 +112,7 @@ class ServiceRequestBottomSheet { requestDetailProvider.fixRemotelyHelperModel?.startDate = selectedDateTime; requestDetailProvider.updateFixRemotelyHelperModel(requestDetailProvider.fixRemotelyHelperModel); + assignWorkingHours(requestDetailProvider: requestDetailProvider); // serviceRequestProvider.updateCurrentSelectedRequest(serviceRequestProvider.currentSelectedRequest); } }); @@ -122,6 +148,8 @@ class ServiceRequestBottomSheet { requestDetailProvider.fixRemotelyHelperModel?.endDate = selectedDateTime; requestDetailProvider.updateFixRemotelyHelperModel(requestDetailProvider.fixRemotelyHelperModel); + assignWorkingHours(requestDetailProvider: requestDetailProvider); + // serviceRequestProvider.updateCurrentSelectedRequest(serviceRequestProvider.currentSelectedRequest); } }); @@ -131,6 +159,8 @@ class ServiceRequestBottomSheet { AppTextFormField( labelText: context.translation.workingHours, textInputType: TextInputType.number, + enable: false, + controller: _workingHoursController, labelStyle: AppTextStyles.textFieldLabelStyle, showWithoutDecoration: true, backgroundColor: context.isDark ? AppColor.neutral20 : AppColor.neutral100, diff --git a/lib/service_request_latest/views/components/verify_arrival_view.dart b/lib/service_request_latest/views/components/verify_arrival_view.dart index db898fa7..a6a87534 100644 --- a/lib/service_request_latest/views/components/verify_arrival_view.dart +++ b/lib/service_request_latest/views/components/verify_arrival_view.dart @@ -182,7 +182,7 @@ class _VerifyArrivalViewState extends State { verificationTypeId: 1, photoInfo: fileObj, otp: '', - assetNo: ''); + assetNo: requestDetailProvider.currentWorkOrder!.data!.asset?.assetNumber); print('status i got is $status'); if (status == 200) { requestDetailProvider.getWorkOrderById(id: requestDetailProvider.currentWorkOrder!.data!.requestId!);