diff --git a/lib/controllers/api_routes/urls.dart b/lib/controllers/api_routes/urls.dart index 43ad4bf3..1072bbe9 100644 --- a/lib/controllers/api_routes/urls.dart +++ b/lib/controllers/api_routes/urls.dart @@ -44,6 +44,7 @@ class URLs { static get engineerNeedVisitUrl=> '$_baseUrl/ServiceRequest/EngineerNeedVisit'; static get engineerUpdateNeedVisitUrl=> '$_baseUrl/ServiceRequest/EngineerUpdateNeedVisit'; static get engineerMarkAsFixUrl=> '$_baseUrl/ServiceRequest/EngineerMarkAsFix'; + static get reOrderActivity=> '$_baseUrl/ServiceRequest/ReOrderActivity'; static get engineerConfirmArriveUrl=> '$_baseUrl/ServiceRequest/EngineerConfirmArrive'; static get engineerUpdateWorkOrderUrl=> '$_baseUrl/ServiceRequest/EngineerUpdateWorkOrder'; static get getWorkOrderByIdUrl=> '$_baseUrl/ServiceRequest/GetWorkOrderById'; diff --git a/lib/service_request_latest/request_detail_provider.dart b/lib/service_request_latest/request_detail_provider.dart index f6be2652..143c7864 100644 --- a/lib/service_request_latest/request_detail_provider.dart +++ b/lib/service_request_latest/request_detail_provider.dart @@ -147,6 +147,7 @@ class RequestDetailProvider extends ChangeNotifier { //create workOrder nurse ..... Future createWorkOrder() async { isLoading = true; + notifyListeners(); try { final response = await ApiManager.instance.post( URLs.createWorkOrderUrl, @@ -156,7 +157,6 @@ class RequestDetailProvider extends ChangeNotifier { print('response of create request is ${response.body}'); if (response.statusCode >= 200 && response.statusCode < 300) { // request.engineerName = employee.name; - notifyListeners(); } isLoading = false; notifyListeners(); @@ -192,18 +192,13 @@ class RequestDetailProvider extends ChangeNotifier { Future engineerAcceptWorkOrder({required String id}) async { Response response; try { - final body = { - "workOrderId": id, - }; + final body = {"workOrderId": id}; isLoading = true; + notifyListeners(); response = await ApiManager.instance.post(URLs.engineerAcceptUrl, body: body); stateCode = response.statusCode; if (response.statusCode >= 200 && response.statusCode < 300) { currentWorkOrder = WorkOrderDetail.fromJson(json.decode(response.body)); - updateCurrentWorkOrder(currentWorkOrder); - notifyListeners(); - isLoading = false; - return response.statusCode; } isLoading = false; notifyListeners(); @@ -221,15 +216,11 @@ class RequestDetailProvider extends ChangeNotifier { Response response; try { isLoading = true; + notifyListeners(); response = await ApiManager.instance.post(URLs.engineerRejectUrl, body: engineerRejectHelperModel!.toJson()); stateCode = response.statusCode; if (response.statusCode >= 200 && response.statusCode < 300) { - print('engineer reject workOrder response is ${response.body}'); currentWorkOrder = WorkOrderDetail.fromJson(json.decode(response.body)); - updateCurrentWorkOrder(currentWorkOrder); - notifyListeners(); - isLoading = false; - return response.statusCode; } isLoading = false; notifyListeners(); @@ -247,13 +238,11 @@ class RequestDetailProvider extends ChangeNotifier { Response response; try { isLoading = true; + notifyListeners(); response = await ApiManager.instance.post(URLs.engineerFixRemotlyUrl, body: fixRemotelyHelperModel!.toJson()); stateCode = response.statusCode; if (response.statusCode >= 200 && response.statusCode < 300) { - updateCurrentWorkOrder(WorkOrderDetail.fromJson(json.decode(response.body))); - notifyListeners(); - isLoading = false; - return response.statusCode; + currentWorkOrder = WorkOrderDetail.fromJson(json.decode(response.body)); } isLoading = false; notifyListeners(); @@ -271,14 +260,11 @@ class RequestDetailProvider extends ChangeNotifier { Response response; try { isLoading = true; + notifyListeners(); response = await ApiManager.instance.post(URLs.engineerNeedVisitUrl, body: needVisitHelperModel!.toJson()); stateCode = response.statusCode; if (response.statusCode >= 200 && response.statusCode < 300) { currentWorkOrder = WorkOrderDetail.fromJson(json.decode(response.body)); - updateCurrentWorkOrder(currentWorkOrder); - notifyListeners(); - isLoading = false; - return response.statusCode; } isLoading = false; notifyListeners(); @@ -296,16 +282,13 @@ class RequestDetailProvider extends ChangeNotifier { Response response; try { isLoading = true; + notifyListeners(); response = await ApiManager.instance.post(URLs.engineerUpdateNeedVisitUrl, body: needVisitHelperModel!.toJson()); stateCode = response.statusCode; print('body i got is ${needVisitHelperModel?.toJson()}'); print('response i got is ${response.body}'); if (response.statusCode >= 200 && response.statusCode < 300) { currentWorkOrder = WorkOrderDetail.fromJson(json.decode(response.body)); - updateCurrentWorkOrder(currentWorkOrder); - notifyListeners(); - isLoading = false; - return response.statusCode; } isLoading = false; notifyListeners(); @@ -322,16 +305,37 @@ class RequestDetailProvider extends ChangeNotifier { Future engineerMarkAsFixed({required int workOrderId, required String feedback}) async { Response response; try { - Map body = {'workOrderId': workOrderId, 'feedback': feedback}; isLoading = true; + notifyListeners(); + Map body = {'workOrderId': workOrderId, 'feedback': feedback}; + response = await ApiManager.instance.post(URLs.engineerMarkAsFixUrl, body: body); stateCode = response.statusCode; print('engineer mark as fixed response is ${response.body}'); if (response.statusCode >= 200 && response.statusCode < 300) { currentWorkOrder = WorkOrderDetail.fromJson(json.decode(response.body)); - notifyListeners(); - isLoading = false; - return response.statusCode; + } + isLoading = false; + notifyListeners(); + return response.statusCode; + } catch (e) { + log("engineer mark as fixed [error] : $e"); + isLoading = false; + notifyListeners(); + return -1; + } + } + + Future reOrderActivities({required int workOrderId, required List> reOrderActivityDTOs}) async { + Response response; + try { + isLoading = true; + notifyListeners(); + Map body = {'workOrderId': workOrderId, 'reOrderActivityDTOs': reOrderActivityDTOs}; + response = await ApiManager.instance.post(URLs.reOrderActivity, body: body); + stateCode = response.statusCode; + if (response.statusCode >= 200 && response.statusCode < 300) { + currentWorkOrder = WorkOrderDetail.fromJson(json.decode(response.body)); } isLoading = false; notifyListeners(); @@ -345,18 +349,16 @@ class RequestDetailProvider extends ChangeNotifier { } //engineer Confirm Arrive...... - Future engineerConfirmArrival({required int workOrderId, required int verificationTypeId, required String photoInfo, required String otp, 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}; isLoading = true; + notifyListeners(); response = await ApiManager.instance.post(URLs.engineerConfirmArriveUrl, body: body); stateCode = response.statusCode; if (response.statusCode >= 200 && response.statusCode < 300) { - print('response of Engineer confirm arrival ${response.body}'); - notifyListeners(); - isLoading = false; - return response.statusCode; + // print('response of Engineer confirm arrival ${response.body}'); } isLoading = false; notifyListeners(); @@ -372,22 +374,18 @@ class RequestDetailProvider extends ChangeNotifier { //assignEngineerToWorkOrder...... Future assignEngineerWorkOrder({required String workOrderId, required String engineerId}) async { try { - final body = { - "workOrderId": workOrderId, - "assignedEngineerId": engineerId, - }; + final body = {"workOrderId": workOrderId, "assignedEngineerId": engineerId}; isLoading = true; + notifyListeners(); final response = await ApiManager.instance.post(URLs.assignEngineerToWorkOrderUrl, body: body); stateCode = response.statusCode; + CommonResponseModel commonResponseModel = CommonResponseModel(); if (response.statusCode >= 200 && response.statusCode < 300) { - CommonResponseModel commonResponseModel = CommonResponseModel.fromJson(json.decode(response.body)); - notifyListeners(); - isLoading = false; - return commonResponseModel; + commonResponseModel = CommonResponseModel.fromJson(json.decode(response.body)); } isLoading = false; notifyListeners(); - return CommonResponseModel(); + return commonResponseModel; } catch (e) { log("engineer accept [error] : $e"); isLoading = false; @@ -398,41 +396,37 @@ class RequestDetailProvider extends ChangeNotifier { //engineerUpdateWorkOrder...... Future engineerUpdateWorkOrder() async { - // try { - isLoading = true; - final response = await ApiManager.instance.post(URLs.engineerUpdateWorkOrderUrl, body: engineerUpdateWorkOrderHelperModel!.toJson()); - stateCode = response.statusCode; - if (response.statusCode >= 200 && response.statusCode < 300) { - currentWorkOrder = WorkOrderDetail.fromJson(json.decode(response.body)); - updateCurrentWorkOrder(currentWorkOrder); + try { + isLoading = true; notifyListeners(); + final response = await ApiManager.instance.post(URLs.engineerUpdateWorkOrderUrl, body: engineerUpdateWorkOrderHelperModel!.toJson()); + stateCode = response.statusCode; + if (response.statusCode >= 200 && response.statusCode < 300) { + currentWorkOrder = WorkOrderDetail.fromJson(json.decode(response.body)); + } isLoading = false; + notifyListeners(); + } catch (e) { + log("engineer update workorder [error] : $e"); + isLoading = false; + notifyListeners(); } - isLoading = false; - notifyListeners(); - // } - // catch (e) { - // log("engineer update workorder [error] : $e"); - // isLoading = false; - // notifyListeners(); - // } } //Nurse confirm reopen Future nurseReject() async { try { isLoading = true; + notifyListeners(); final response = await ApiManager.instance.post(URLs.nurseRejectUrl, body: nurseActionHelperModel!.toJson()); stateCode = response.statusCode; + CommonResponseModel commonResponseModel = CommonResponseModel(); if (response.statusCode >= 200 && response.statusCode < 300) { - CommonResponseModel commonResponseModel = CommonResponseModel.fromJson(json.decode(response.body)); - notifyListeners(); - isLoading = false; - return commonResponseModel; + commonResponseModel = CommonResponseModel.fromJson(json.decode(response.body)); } isLoading = false; notifyListeners(); - return CommonResponseModel(); + return commonResponseModel; } catch (e) { log("engineer accept [error] : $e"); isLoading = false; @@ -445,19 +439,17 @@ class RequestDetailProvider extends ChangeNotifier { Future nurseConfirm() async { try { isLoading = true; + notifyListeners(); final response = await ApiManager.instance.post(URLs.nurseConfirmUrl, body: nurseActionHelperModel!.toJson()); - print('response i got is ${response.body}'); stateCode = response.statusCode; + CommonResponseModel commonResponseModel = CommonResponseModel(); if (response.statusCode >= 200 && response.statusCode < 300) { - CommonResponseModel commonResponseModel = CommonResponseModel.fromJson(json.decode(response.body)); - notifyListeners(); - isLoading = false; - return commonResponseModel; + commonResponseModel = CommonResponseModel.fromJson(json.decode(response.body)); } isLoading = false; notifyListeners(); - return CommonResponseModel(); + return commonResponseModel; } catch (e) { log("engineer accept [error] : $e"); isLoading = false; @@ -468,16 +460,13 @@ class RequestDetailProvider extends ChangeNotifier { Future updateActivitySparePart() async { isLoading = true; + notifyListeners(); try { - final response = await ApiManager.instance.post( - URLs.updateActivitySparePartUrl, - body: sparePartHelperModel!.toJson(), - ); + final response = await ApiManager.instance.post(URLs.updateActivitySparePartUrl, body: sparePartHelperModel!.toJson()); stateCode = response.statusCode; print('update response i got is ${response.body}'); if (response.statusCode >= 200 && response.statusCode < 300) { // request.engineerName = employee.name; - notifyListeners(); } isLoading = false; notifyListeners(); @@ -491,16 +480,13 @@ class RequestDetailProvider extends ChangeNotifier { Future updateActivityMaintenance() async { isLoading = true; + notifyListeners(); try { - final response = await ApiManager.instance.put( - URLs.updateActivityMaintenanceUrl, - body: activityMaintenanceHelperModel!.toJson(), - ); + final response = await ApiManager.instance.put(URLs.updateActivityMaintenanceUrl, body: activityMaintenanceHelperModel!.toJson()); stateCode = response.statusCode; - print('update response i got is ${response.statusCode}'); + if (response.statusCode >= 200 && response.statusCode < 300) { // request.engineerName = employee.name; - notifyListeners(); } isLoading = false; notifyListeners(); @@ -533,21 +519,16 @@ class RequestDetailProvider extends ChangeNotifier { Future deleteActivitySparePart({required int id, required int workOrderId}) async { isLoading = true; - var body = { - 'id': id, - 'workOrderId': workOrderId, - }; + notifyListeners(); + var body = {'id': id, 'workOrderId': workOrderId}; try { - final response = await ApiManager.instance.post( - URLs.deleteActivitySparePartUrl, - body: body, - ); + final response = await ApiManager.instance.post(URLs.deleteActivitySparePartUrl, body: body); stateCode = response.statusCode; print('response of delete activity spare part is ${response.statusCode}'); if (response.statusCode >= 200 && response.statusCode < 300) { //map to the model... - notifyListeners(); + // notifyListeners(); } isLoading = false; notifyListeners(); @@ -561,22 +542,17 @@ class RequestDetailProvider extends ChangeNotifier { Future deleteActivityMaintenance({required int id, required int workOrderId}) async { isLoading = true; - var body = { - 'id': id, - 'workOrderId': workOrderId, - }; + notifyListeners(); + var body = {'id': id, 'workOrderId': workOrderId}; try { - //TODO replace with delete model... final response = await ApiManager.instance.delete( URLs.deleteActivityMaintenanceUrl, body: body, ); stateCode = response.statusCode; - print('response of delete activity spare part is ${response.body}'); + if (response.statusCode >= 200 && response.statusCode < 300) { //map to the model... - - notifyListeners(); } isLoading = false; notifyListeners(); @@ -590,6 +566,7 @@ class RequestDetailProvider extends ChangeNotifier { Future createActivitySparePart() async { isLoading = true; + notifyListeners(); try { final response = await ApiManager.instance.post( URLs.createActivitySparePartUrl, @@ -599,8 +576,8 @@ class RequestDetailProvider extends ChangeNotifier { print('add sparepart activity response i got is ${response.body}'); if (response.statusCode >= 200 && response.statusCode < 300) { // currentWorkOrder = WorkOrderDetail.fromJson(json.decode(response.body)); - // updateCurrentWorkOrder(currentWorkOrder); - notifyListeners(); + // // updateCurrentWorkOrder(currentWorkOrder); + // notifyListeners(); } isLoading = false; notifyListeners(); @@ -614,43 +591,40 @@ class RequestDetailProvider extends ChangeNotifier { Future createActivityMaintenanceRequest() async { isLoading = true; - // try { - final response = await ApiManager.instance.post( - URLs.createActivityMaintenanceUrl, - body: activityMaintenanceHelperModel!.toJson(), - ); - stateCode = response.statusCode; - print('add maintenance activity response i got is ${response.body}'); - if (response.statusCode >= 200 && response.statusCode < 300) { - // currentWorkOrder = WorkOrderDetail.fromJson(json.decode(response.body)); - // updateCurrentWorkOrder(currentWorkOrder); + notifyListeners(); + try { + final response = await ApiManager.instance.post( + URLs.createActivityMaintenanceUrl, + body: activityMaintenanceHelperModel!.toJson(), + ); + stateCode = response.statusCode; + print('add maintenance activity response i got is ${response.body}'); + if (response.statusCode >= 200 && response.statusCode < 300) { + // currentWorkOrder = WorkOrderDetail.fromJson(json.decode(response.body)); + // updateCurrentWorkOrder(currentWorkOrder); + } + isLoading = false; notifyListeners(); return response.statusCode; + } catch (error) { + isLoading = false; + notifyListeners(); + return -1; } - isLoading = false; - notifyListeners(); - return response.statusCode; - // } catch (error) { - // isLoading = false; - // notifyListeners(); - // return -1; - // } } //create asset retired request.. Future createActivityAssetToBeRetired() async { isLoading = true; + notifyListeners(); try { final response = await ApiManager.instance.post( URLs.createActivityAssetToBeRetiredUrl, body: assetRetiredHelperModel!.toJson(), ); stateCode = response.statusCode; - print('response of asset retired is ${response.body}'); if (response.statusCode >= 200 && response.statusCode < 300) { currentWorkOrder = WorkOrderDetail.fromJson(json.decode(response.body)); - updateCurrentWorkOrder(currentWorkOrder); - notifyListeners(); } isLoading = false; notifyListeners(); @@ -687,6 +661,7 @@ class RequestDetailProvider extends ChangeNotifier { //send otp.. Future sendOtp({required int workOrderId}) async { isLoading = true; + notifyListeners(); try { final response = await ApiManager.instance.postWithOutBody( URLs.sendOtpUrl + "$workOrderId", @@ -695,9 +670,7 @@ class RequestDetailProvider extends ChangeNotifier { stateCode = response.statusCode; print('response i got is ${response.body}'); - if (response.statusCode >= 200 && response.statusCode < 300) { - notifyListeners(); - } + if (response.statusCode >= 200 && response.statusCode < 300) {} isLoading = false; notifyListeners(); return response.statusCode; @@ -711,15 +684,12 @@ class RequestDetailProvider extends ChangeNotifier { //verify otp.. Future verifyOtp({required int workOrderId, required String otpCode}) async { isLoading = true; + notifyListeners(); try { - final response = await ApiManager.instance.postWithOutBody( - URLs.verifyOtpUrl + '$workOrderId&$otpCode', - ); - print('response i got is ${response.body}'); + final response = await ApiManager.instance.postWithOutBody(URLs.verifyOtpUrl + '$workOrderId&$otpCode'); + stateCode = response.statusCode; - if (response.statusCode >= 200 && response.statusCode < 300) { - notifyListeners(); - } + if (response.statusCode >= 200 && response.statusCode < 300) {} isLoading = false; notifyListeners(); return response.statusCode; 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 38fff28c..091b846f 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 @@ -8,6 +8,7 @@ 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/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_filled_button.dart'; import 'package:test_sa/providers/service_request_providers/reject_reason_provider.dart'; @@ -29,9 +30,12 @@ class FooterActionButton { ); } - static Widget requestDetailsFooterWidget({required WorkOrderNextStepEnum workOrderNextStepStatus, required BuildContext context, required UserProvider userProvider}) { + static Widget requestDetailsFooterWidget( + {required WorkOrderNextStepEnum workOrderNextStepStatus, List activities = const [], required BuildContext context, required UserProvider userProvider}) { RequestDetailProvider requestDetailProvider = Provider.of(context, listen: false); + bool showMarkAsFixedButton = activities.isEmpty ? true : activities.every((object) => object.activityStatus!.name!.toLowerCase() == "completed"); + if (userProvider.user?.type == UsersTypes.engineer) { switch (workOrderNextStepStatus) { case WorkOrderNextStepEnum.onlyView: @@ -65,8 +69,8 @@ class FooterActionButton { onPressed: () async { //TODO need to discuss getData is not called by default... if (context.mounted) { - RejectReasonProvider rejectionReasonProvider = Provider.of(context, listen: false); - rejectionReasonProvider.reset(); + RejectReasonProvider rejectionReasonProvider = Provider.of(context, listen: false); + rejectionReasonProvider.reset(); //rejectionReasonProvider.getDate(); } ServiceRequestBottomSheet.rejectRequestBottomSheet(context: context); @@ -147,15 +151,17 @@ class FooterActionButton { Navigator.push(context, MaterialPageRoute(builder: (context) => const ActivitiesListView())); }, ), - 8.height, - AppFilledButton( - label: context.translation.markAsFixed, - // maxWidth: true, - buttonColor: AppColor.green70, - onPressed: () async { - ServiceRequestBottomSheet.feedBackBottomSheet(context: context); - }, - ), + if (showMarkAsFixedButton) ...[ + 8.height, + AppFilledButton( + label: context.translation.markAsFixed, + // maxWidth: true, + buttonColor: AppColor.green70, + onPressed: () async { + ServiceRequestBottomSheet.feedBackBottomSheet(context: context); + }, + ), + ] ], )); case WorkOrderNextStepEnum.endWorkFlow: diff --git a/lib/service_request_latest/views/components/activities_list_view.dart b/lib/service_request_latest/views/components/activities_list_view.dart index 7496b3ee..50bb318d 100644 --- a/lib/service_request_latest/views/components/activities_list_view.dart +++ b/lib/service_request_latest/views/components/activities_list_view.dart @@ -54,15 +54,15 @@ class _ActivitiesListViewState extends State { List reOrderActivities = []; + List activities = []; + @override Widget build(BuildContext context) { - //TODO add the check for type of activity after completing maintenance activity flow. - List activities = []; UserProvider userProvider = Provider.of(context); return Scaffold( appBar: DefaultAppBar( title: context.translation.activities, - actions: [if (!showReorderView) IconButton(onPressed: () => setState(() => showReorderView = true), icon: const Icon(Icons.reorder_rounded))], + actions: [if (!showReorderView) IconButton(onPressed: () => activities.isEmpty ? null : setState(() => showReorderView = true), icon: const Icon(Icons.reorder_rounded))], ), //backgroundColor: const Color(0xfff8f9fb), body: Consumer(builder: (context, RequestDetailProvider requestDetailProvider, child) { @@ -126,8 +126,12 @@ class _ActivitiesListViewState extends State { if (showReorderView) { requestDetailProvider.currentWorkOrder!.data!.activities = reOrderActivities; reOrderActivities = []; + List> data = []; + for (int i = 0; i < reOrderActivities.length; i++) { + data.add({"id": reOrderActivities[i].id, "orderNo": i}); + } + requestDetailProvider.reOrderActivities(workOrderId: requestDetailProvider.currentWorkOrder!.data!.requestId!, reOrderActivityDTOs: data); showReorderView = false; - setState(() {}); return; } ServiceRequestBottomSheet.activityTypeBottomSheet(context: context); 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 225fafd6..16d3f376 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 @@ -1,10 +1,9 @@ import 'dart:convert'; + import 'package:flutter/material.dart'; import 'package:flutter/services.dart'; -import 'package:flutter_svg/flutter_svg.dart'; import 'package:provider/provider.dart'; import 'package:test_sa/app_strings/app_asset.dart'; -import 'package:test_sa/controllers/providers/settings/setting_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'; @@ -15,17 +14,14 @@ import 'package:test_sa/models/helper_data_models/maintenance_request/activity_m import 'package:test_sa/models/helper_data_models/spare_part/activity_spare_part_model.dart'; import 'package:test_sa/models/helper_data_models/workorder/work_order_helper_models.dart'; import 'package:test_sa/models/lookup.dart'; -import 'package:test_sa/models/service_request/service_request.dart'; import 'package:test_sa/new_views/common_widgets/single_item_drop_down_menu.dart'; -import 'package:test_sa/providers/service_request_providers/first_action_provider.dart'; import 'package:test_sa/providers/service_request_providers/reject_reason_provider.dart'; -import 'package:test_sa/providers/work_order/reason_provider.dart'; import 'package:test_sa/service_request_latest/request_detail_provider.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/components/verify_arrival_view.dart'; import 'package:test_sa/views/widgets/date_and_time/date_picker.dart'; import 'package:test_sa/views/widgets/e_signature/e_signature.dart'; + import '../../../../controllers/providers/api/service_requests_provider.dart'; import '../../../../new_views/app_style/app_color.dart'; import '../../../../new_views/common_widgets/app_filled_button.dart'; @@ -216,13 +212,11 @@ class ServiceRequestBottomSheet { buttonColor: AppColor.green70, loading: false, onPressed: () async { - requestDetailProvider.fixRemotelyHelperModel?.workOrderId = requestDetailProvider.currentWorkOrder?.data?.requestId; - requestDetailProvider.engineerFixRemotely(); + requestDetailProvider.engineerFixRemotely(); //TODO context issue to show message.. Navigator.pop(context); - // const SizedBox().flushBar(context: context, title: '', message: context.translation.youMarkedThisIssueAsFixedWaitingForTheRequesterToConfirm); - + // const SizedBox().flushBar(context: context, title: '', message: context.translation.youMarkedThisIssueAsFixedWaitingForTheRequesterToConfirm); }, ), ), @@ -441,7 +435,7 @@ class ServiceRequestBottomSheet { await requestDetailProvider.engineerUpdateNeedVisit(); } else { requestDetailProvider.needVisitHelperModel?.workOrderId = requestDetailProvider.currentWorkOrder!.data!.requestId; - requestDetailProvider.engineerNeedVisit(); + requestDetailProvider.engineerNeedVisit(); requestDetailProvider.needVisitHelperModel = NeedVisitHelperModel(); } Navigator.pop(context); @@ -468,7 +462,8 @@ class ServiceRequestBottomSheet { SingleItemDropDownMenu( context: context, title: context.translation.reason, - backgroundColor: AppColor.neutral100,showShadow: false, + backgroundColor: AppColor.neutral100, + showShadow: false, initialValue: requestDetailProvider.engineerRejectHelperModel?.rejectionReason, onSelect: (value) { if (value != null) { @@ -482,7 +477,8 @@ class ServiceRequestBottomSheet { backgroundColor: AppColor.neutral100, labelText: context.translation.comments, textInputType: TextInputType.multiline, - alignLabelWithHint: true,showShadow: false, + alignLabelWithHint: true, + showShadow: false, labelStyle: AppTextStyles.textFieldLabelStyle, onChange: (text) { requestDetailProvider.engineerRejectHelperModel?.feedback = text; @@ -712,8 +708,9 @@ class ServiceRequestBottomSheet { static Future addAnotherSpareRequestBottomSheet({required BuildContext context}) { return buildBottomSheetParent( - context: context, - childWidget: Consumer(builder: (context, serviceRequestProvider, child) { + context: context, + childWidget: Consumer( + builder: (context, serviceRequestProvider, child) { return Column( mainAxisSize: MainAxisSize.min, children: [ @@ -721,7 +718,7 @@ class ServiceRequestBottomSheet { 8.height, Align( alignment: AlignmentDirectional.centerStart, - child: context.translation.doYouWantToCreateAnotherSparePartRequest.heading6(context), + child: context.translation.doYouWantToCreateAnotherSparePartRequest.bottomSheetHeadingTextStyle(context), ), 41.height, Row( @@ -750,10 +747,13 @@ class ServiceRequestBottomSheet { }, ).expanded, ], - ) + ), + 16.height, ], ); - })); + }, + ), + ); } static Future feedBackBottomSheet({required BuildContext context}) { diff --git a/lib/service_request_latest/views/components/request_detail_view.dart b/lib/service_request_latest/views/components/request_detail_view.dart index 4e6a013e..0dd66e37 100644 --- a/lib/service_request_latest/views/components/request_detail_view.dart +++ b/lib/service_request_latest/views/components/request_detail_view.dart @@ -50,7 +50,7 @@ class WorkOrderDetailView extends StatelessWidget { ), ).expanded, FooterActionButton.requestDetailsFooterWidget( - workOrderNextStepStatus: requestProvider.currentWorkOrder!.data!.nextStep!.workOrderNextStepEnum!, userProvider: _userProvider, context: context), + workOrderNextStepStatus: requestProvider.currentWorkOrder!.data!.nextStep!.workOrderNextStepEnum!,activities:requestProvider.currentWorkOrder!.data?.activities??[], userProvider: _userProvider, context: context), ], ), // const TimerWidget(), diff --git a/lib/service_request_latest/views/forms/asset_retired/verify_asset_detail.dart b/lib/service_request_latest/views/forms/asset_retired/verify_asset_detail.dart index 11c15d65..7efcf22c 100644 --- a/lib/service_request_latest/views/forms/asset_retired/verify_asset_detail.dart +++ b/lib/service_request_latest/views/forms/asset_retired/verify_asset_detail.dart @@ -54,18 +54,13 @@ class _VerifyAssetDetailsState extends State with TickerProv super.initState(); } - Future getInitialData() async { - _isLoading = true; - + Future getFaultDescription() async { Provider.of(context, listen: false).getFaultDescriptionList(assetId: _requestDetailProvider?.currentWorkOrder?.data?.asset?.id).then((List? data) { if (data?.isNotEmpty ?? false) { _faults = data!; setState(() {}); } }); - - //TODO no need to create seprate models just write a method in workorder model... - _isLoading = false; } @override @@ -93,7 +88,7 @@ class _VerifyAssetDetailsState extends State with TickerProv serviceType: currentWorkOrderData.serviceType, ); _requestDetailProvider?.updateEngineerUpdateWorkOrderHelperModel(_requestDetailProvider?.engineerUpdateWorkOrderHelperModel); - getInitialData(); + getFaultDescription(); } return Scaffold(