From b852b29a09b4bd3c60cc8b13f54a35ec3f72598f Mon Sep 17 00:00:00 2001 From: "muhammad.abbasi" Date: Sun, 6 Oct 2024 11:36:00 +0300 Subject: [PATCH] fix remotely working hours auto assign fixes --- .../action_button/footer_action_button.dart | 2 + .../service_request_bottomsheet.dart | 92 +++++++++---------- 2 files changed, 45 insertions(+), 49 deletions(-) diff --git a/lib/service_request_latest/views/components/action_button/footer_action_button.dart b/lib/service_request_latest/views/components/action_button/footer_action_button.dart index 46a9e1a1..fcf30010 100644 --- a/lib/service_request_latest/views/components/action_button/footer_action_button.dart +++ b/lib/service_request_latest/views/components/action_button/footer_action_button.dart @@ -7,6 +7,7 @@ import 'package:test_sa/extensions/text_extensions.dart'; import 'package:test_sa/extensions/widget_extensions.dart'; import 'package:test_sa/models/enums/user_types.dart'; import 'package:test_sa/models/enums/work_order_next_step.dart'; +import 'package:test_sa/models/helper_data_models/workorder/work_order_helper_models.dart'; import 'package:test_sa/new_views/app_style/app_color.dart'; import 'package:test_sa/new_views/common_widgets/app_filled_button.dart'; import 'package:test_sa/providers/service_request_providers/reject_reason_provider.dart'; @@ -95,6 +96,7 @@ class FooterActionButton { maxWidth: true, buttonColor: AppColor.neutral50, onPressed: () async { + requestDetailProvider.needVisitHelperModel = NeedVisitHelperModel(); ServiceRequestBottomSheet.initialVisitBottomSheet(context: context); }, ).expanded, 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 8966f0cd..9628e084 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,bool ?isFromFixRemotely}) { + static buildBottomSheetParent({required BuildContext context, required Widget childWidget, bool? isFromFixRemotely}) { return showModalBottomSheet( context: context, useSafeArea: true, @@ -41,16 +41,16 @@ class ServiceRequestBottomSheet { builder: (context) => SingleChildScrollView( child: childWidget, ).bottomSheetContainer(context), - ).then((value){ - if(isFromFixRemotely!=null&&isFromFixRemotely){ - RequestDetailProvider requestDetailProvider = Provider.of(context,listen: false); + ).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(); + TextEditingController _workingHoursController = TextEditingController(); int calculateWorkingHours(DateTime? startTime, DateTime? endTime) { if (startTime != null && endTime != null) { Duration difference = endTime.difference(startTime); @@ -69,6 +69,7 @@ class ServiceRequestBottomSheet { requestDetailProvider.fixRemotelyHelperModel?.workingHour = hours; } } + return buildBottomSheetParent( context: context, isFromFixRemotely: true, @@ -111,12 +112,12 @@ class ServiceRequestBottomSheet { // } requestDetailProvider.fixRemotelyHelperModel?.startDate = selectedDateTime; - requestDetailProvider.updateFixRemotelyHelperModel(requestDetailProvider.fixRemotelyHelperModel); - assignWorkingHours(requestDetailProvider: requestDetailProvider); + requestDetailProvider.updateFixRemotelyHelperModel(requestDetailProvider.fixRemotelyHelperModel); + assignWorkingHours(requestDetailProvider: requestDetailProvider); // serviceRequestProvider.updateCurrentSelectedRequest(serviceRequestProvider.currentSelectedRequest); } }); - }, + }, ), 8.height, ADatePicker( @@ -141,7 +142,7 @@ class ServiceRequestBottomSheet { selectedTime.minute, ); - if (requestDetailProvider.fixRemotelyHelperModel!.startDate!=null&&selectedDateTime.isBefore(requestDetailProvider.fixRemotelyHelperModel!.startDate!)) { + if (requestDetailProvider.fixRemotelyHelperModel!.startDate != null && selectedDateTime.isBefore(requestDetailProvider.fixRemotelyHelperModel!.startDate!)) { "End Date time must be greater then start date".showToast; return; } @@ -166,13 +167,12 @@ class ServiceRequestBottomSheet { backgroundColor: context.isDark ? AppColor.neutral20 : AppColor.neutral100, alignLabelWithHint: true, onChange: (text) { - if(text.isNotEmpty){ + if (text.isNotEmpty) { requestDetailProvider.fixRemotelyHelperModel?.workingHour = int.parse(text); - } }, onSaved: (text) { - if(text.isNotEmpty){ + if (text.isNotEmpty) { requestDetailProvider.fixRemotelyHelperModel?.workingHour = int.parse(text); } }, @@ -187,11 +187,9 @@ class ServiceRequestBottomSheet { alignLabelWithHint: true, onChange: (text) { requestDetailProvider.fixRemotelyHelperModel?.comment = text; - }, onSaved: (text) { requestDetailProvider.fixRemotelyHelperModel?.comment = text; - }, ), 16.height, @@ -218,12 +216,12 @@ class ServiceRequestBottomSheet { buttonColor: AppColor.green70, loading: false, onPressed: () async { - //TODO after confirm from backend call the api and reset the model. - requestDetailProvider.fixRemotelyHelperModel?.workOrderId= requestDetailProvider.currentWorkOrder?.data?.requestId; - await requestDetailProvider.engineerFixRemotely(); - //TODO context issue to show message.. - // const SizedBox().flushBar(context: context, title: '', message: context.translation.youMarkedThisIssueAsFixedWaitingForTheRequesterToConfirm); - Navigator.pop(context); + + requestDetailProvider.fixRemotelyHelperModel?.workOrderId = requestDetailProvider.currentWorkOrder?.data?.requestId; + requestDetailProvider.engineerFixRemotely(); + //TODO context issue to show message.. + Navigator.pop(context); + // const SizedBox().flushBar(context: context, title: '', message: context.translation.youMarkedThisIssueAsFixedWaitingForTheRequesterToConfirm); }, ), @@ -372,7 +370,7 @@ class ServiceRequestBottomSheet { return buildBottomSheetParent( context: context, childWidget: Consumer(builder: (context, requestDetailProvider, child) { - if(requestDetailProvider.needVisitHelperModel?.comment!=null){ + if (requestDetailProvider.needVisitHelperModel?.comment != null) { _commentController.text = requestDetailProvider.needVisitHelperModel!.comment!; } return Column( @@ -435,16 +433,13 @@ class ServiceRequestBottomSheet { loading: false, onPressed: () async { if (requestDetailProvider.currentWorkOrder?.data?.nextStep!.workOrderNextStepEnum == WorkOrderNextStepEnum.eArrived) { - requestDetailProvider.updateNeedVisitHelperModel( - NeedVisitHelperModel( - workOrderId: requestDetailProvider.needVisitHelperModel?.workOrderId, - visitDate: requestDetailProvider.needVisitHelperModel?.visitDate, - comment: requestDetailProvider.needVisitHelperModel?.comment, - ) - ); + requestDetailProvider.updateNeedVisitHelperModel(NeedVisitHelperModel( + workOrderId: requestDetailProvider.needVisitHelperModel?.workOrderId, + visitDate: requestDetailProvider.needVisitHelperModel?.visitDate, + comment: requestDetailProvider.needVisitHelperModel?.comment, + )); await requestDetailProvider.engineerUpdateNeedVisit(); - } - else { + } else { requestDetailProvider.needVisitHelperModel?.workOrderId = requestDetailProvider.currentWorkOrder!.data!.requestId; await requestDetailProvider.engineerNeedVisit(); requestDetailProvider.needVisitHelperModel = NeedVisitHelperModel(); @@ -462,7 +457,6 @@ class ServiceRequestBottomSheet { return buildBottomSheetParent( context: context, childWidget: Consumer(builder: (context, requestDetailProvider, child) { - return Column( children: [ const SizedBox().indicatorWidget(), @@ -478,7 +472,7 @@ class ServiceRequestBottomSheet { initialValue: requestDetailProvider.engineerRejectHelperModel?.rejectionReason, onSelect: (value) { if (value != null) { - requestDetailProvider.engineerRejectHelperModel?.rejectionReason = value; + requestDetailProvider.engineerRejectHelperModel?.rejectionReason = value; requestDetailProvider.updateEngineerRejectHelperModel(requestDetailProvider.engineerRejectHelperModel); } }, @@ -543,10 +537,10 @@ class ServiceRequestBottomSheet { // Icon Section icon .toSvgAsset( - width: 26, - color: AppColor.neutral120, - height: 29, - ) + width: 26, + color: AppColor.neutral120, + height: 29, + ) .paddingOnly(top: 8), 14.width, Expanded( @@ -574,14 +568,14 @@ class ServiceRequestBottomSheet { void onItemTap({required int index, required BuildContext context}) { switch (index) { case 0: - Provider.of(context,listen: false).sparePartHelperModel = SparePartHelperModel(); + Provider.of(context, listen: false).sparePartHelperModel = SparePartHelperModel(); Navigator.pushReplacement( context, MaterialPageRoute(builder: (context) => const SparePartRequest()), ); break; case 1: - RequestDetailProvider requestDetailProvider= Provider.of(context,listen: false); + RequestDetailProvider requestDetailProvider = Provider.of(context, listen: false); requestDetailProvider.activityMaintenanceHelperModel = ActivityMaintenanceHelperModel( workOrderId: requestDetailProvider.currentWorkOrder?.data?.requestId, id: 0, @@ -628,6 +622,7 @@ class ServiceRequestBottomSheet { ); })); } + static Future actionBottomSheet({required BuildContext context, required String title, String? button1Text, String? button2Text, VoidCallback? button1Tap, VoidCallback? button2Tap}) { return buildBottomSheetParent( context: context, @@ -714,7 +709,8 @@ class ServiceRequestBottomSheet { ).bottomSheetContainer(context); })); } -static Future addAnotherSpareRequestBottomSheet({required BuildContext context}) { + + static Future addAnotherSpareRequestBottomSheet({required BuildContext context}) { return buildBottomSheetParent( context: context, childWidget: Consumer(builder: (context, serviceRequestProvider, child) { @@ -737,16 +733,16 @@ static Future addAnotherSpareRequestBottomSheet({required BuildContext context}) buttonColor: AppColor.white60, textColor: AppColor.black10, onPressed: () async { - Navigator.pop(context); - }, + Navigator.pop(context); + }, ).expanded, 12.width, AppFilledButton( label: context.translation.yes, buttonColor: AppColor.primary10, loading: false, - onPressed: (){ - Provider.of(context,listen: false).sparePartHelperModel = SparePartHelperModel(); + onPressed: () { + Provider.of(context, listen: false).sparePartHelperModel = SparePartHelperModel(); Navigator.pushReplacement( context, MaterialPageRoute(builder: (context) => const SparePartRequest()), @@ -758,7 +754,6 @@ static Future addAnotherSpareRequestBottomSheet({required BuildContext context}) ], ); })); - } static Future feedBackBottomSheet({required BuildContext context}) { @@ -797,7 +792,7 @@ static Future addAnotherSpareRequestBottomSheet({required BuildContext context}) loading: false, onPressed: () { Navigator.pop(context); - requestDetailProvider.engineerMarkAsFixed(workOrderId: requestDetailProvider.currentWorkOrder!.data!.requestId!, feedback:feedback); + requestDetailProvider.engineerMarkAsFixed(workOrderId: requestDetailProvider.currentWorkOrder!.data!.requestId!, feedback: feedback); }, ), ], @@ -805,7 +800,6 @@ static Future addAnotherSpareRequestBottomSheet({required BuildContext context}) })); } - static Future nurseTakeActionBottomSheet({required BuildContext context}) { bool acknowledge = false; Uint8List? newSignature; @@ -869,7 +863,7 @@ static Future addAnotherSpareRequestBottomSheet({required BuildContext context}) showBorder: true, onPressed: () async { if (newSignature != null && acknowledge) { - requestDetailProvider.nurseActionHelperModel=NurseActionHelperModel( + requestDetailProvider.nurseActionHelperModel = NurseActionHelperModel( workOrderId: requestDetailProvider.currentWorkOrder!.data!.requestId, signatureNurse: nurseSignature, ); @@ -888,7 +882,7 @@ static Future addAnotherSpareRequestBottomSheet({required BuildContext context}) onPressed: () async { if (newSignature != null && acknowledge) { //TODO replace provider with new provider and also check workorder id is not correct. - requestDetailProvider.nurseActionHelperModel=NurseActionHelperModel( + requestDetailProvider.nurseActionHelperModel = NurseActionHelperModel( workOrderId: requestDetailProvider.currentWorkOrder!.data!.requestId!, signatureNurse: nurseSignature, );