diff --git a/lib/dashboard_latest/widgets/request_category_list.dart b/lib/dashboard_latest/widgets/request_category_list.dart index 446f1e97..c70903e9 100644 --- a/lib/dashboard_latest/widgets/request_category_list.dart +++ b/lib/dashboard_latest/widgets/request_category_list.dart @@ -1,5 +1,4 @@ import 'package:flutter/material.dart'; -import 'package:test_sa/dashboard_latest/widgets/app_bar_widget.dart'; import 'package:test_sa/extensions/int_extensions.dart'; import 'package:test_sa/extensions/widget_extensions.dart'; import 'package:test_sa/models/new_models/dashboard_detail.dart'; diff --git a/lib/new_views/pages/land_page/my_request/all_requests_filter_page.dart b/lib/new_views/pages/land_page/my_request/all_requests_filter_page.dart index 15ac42f5..6ad8f9fb 100644 --- a/lib/new_views/pages/land_page/my_request/all_requests_filter_page.dart +++ b/lib/new_views/pages/land_page/my_request/all_requests_filter_page.dart @@ -133,7 +133,7 @@ class _AllRequestsFilterPageState extends State { ADatePicker( label: context.translation.from, from: DateTime(2000), - date: search!.startDate!, + date: search!.startDate, onDatePicker: (date) { setState(() { search!.startDate = date; @@ -144,7 +144,7 @@ class _AllRequestsFilterPageState extends State { ADatePicker( label: context.translation.to, from: DateTime(2000), - date: search!.endDate!, + date: search!.endDate, onDatePicker: (date) { setState(() { search!.endDate = date; diff --git a/lib/service_request_latest/service_request_detail_provider.dart b/lib/service_request_latest/service_request_detail_provider.dart index bd7f5958..87a95b0a 100644 --- a/lib/service_request_latest/service_request_detail_provider.dart +++ b/lib/service_request_latest/service_request_detail_provider.dart @@ -66,7 +66,6 @@ class ServiceRequestDetailProvider extends ChangeNotifier { bool _isArrivalLoading = false; bool _isVerifyArrivalBottomSheetOpen = false; - bool get isVerifyArrivalBottomSheetOpen => _isVerifyArrivalBottomSheetOpen; set isVerifyArrivalBottomSheetOpen(bool value) { @@ -123,7 +122,7 @@ class ServiceRequestDetailProvider extends ChangeNotifier { void updateNeedVisitHelperModel(NeedVisitHelperModel? value) { needVisitHelperModel = value; - log ("value:${value!.visitDate.toString()}"); + log("value:${value!.visitDate.toString()}"); notifyListeners(); } @@ -381,7 +380,7 @@ class ServiceRequestDetailProvider extends ChangeNotifier { stateCode = response.statusCode; if (response.statusCode >= 200 && response.statusCode < 300) { currentWorkOrder = WorkOrderDetail.fromJson(json.decode(response.body)); - notifyListeners(); + notifyListeners(); } isLoading = false; notifyListeners(); @@ -440,7 +439,7 @@ class ServiceRequestDetailProvider extends ChangeNotifier { } //engineer Confirm Arrive...... - Future engineerConfirmArrival({required int workOrderId, required int verificationTypeId, String ?photoInfo, String ?otp, String? assetNo, String? workOrderCreatedById}) async { + Future engineerConfirmArrival({required int workOrderId, required int verificationTypeId, String? photoInfo, String? otp, String? assetNo, String? workOrderCreatedById}) async { Response response; try { //"workOrderCreatedById": "string" @@ -566,15 +565,13 @@ class ServiceRequestDetailProvider extends ChangeNotifier { //Nurse confirm arrival Future nurseConfirmEngineerArrival({required int workOrderId}) async { try { - Map body = { - "workOrderId": workOrderId - }; + Map body = {"workOrderId": workOrderId}; isLoading = true; notifyListeners(); final response = await ApiManager.instance.post(URLs.nurseConfirmEngineerArrivalUrl, body: body); stateCode = response.statusCode; if (response.statusCode >= 200 && response.statusCode < 300) { - currentWorkOrder = WorkOrderDetail.fromJson(json.decode(response.body)); + currentWorkOrder = WorkOrderDetail.fromJson(json.decode(response.body)); } isLoading = false; notifyListeners(); @@ -585,18 +582,17 @@ class ServiceRequestDetailProvider extends ChangeNotifier { notifyListeners(); return -1; } - }//Nurse confirm arrival + } //Nurse confirm arrival + Future nurseRejectEngineerArrival({required int workOrderId}) async { try { - Map body = { - "workOrderId": workOrderId - }; + Map body = {"workOrderId": workOrderId}; isLoading = true; notifyListeners(); final response = await ApiManager.instance.post(URLs.nurseRejectEngineerArrivedUrl, body: body); stateCode = response.statusCode; if (response.statusCode >= 200 && response.statusCode < 300) { - currentWorkOrder = WorkOrderDetail.fromJson(json.decode(response.body)); + currentWorkOrder = WorkOrderDetail.fromJson(json.decode(response.body)); } isLoading = false; notifyListeners(); @@ -610,25 +606,25 @@ class ServiceRequestDetailProvider extends ChangeNotifier { } //Nurse confirm close - Future nurseConfirm() async { + Future nurseConfirm() async { try { isLoading = true; notifyListeners(); final response = await ApiManager.instance.post(URLs.nurseConfirmUrl, body: nurseActionHelperModel!.toJson()); stateCode = response.statusCode; - CommonResponseModel commonResponseModel = CommonResponseModel(); + WorkOrderDetail? workOrderDetail; if (response.statusCode >= 200 && response.statusCode < 300) { - // commonResponseModel = CommonResponseModel.fromJson(json.decode(response.body)); + workOrderDetail = WorkOrderDetail.fromJson(json.decode(response.body)); } isLoading = false; notifyListeners(); - return commonResponseModel; + return workOrderDetail; } catch (e) { log("engineer accept [error] : $e"); isLoading = false; notifyListeners(); - return CommonResponseModel(); + return null; } } 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 400738ab..ae886a65 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 @@ -38,7 +38,7 @@ class FooterActionButton { {required WorkOrderNextStepEnum workOrderNextStepStatus, List activities = const [], required BuildContext context, required UserProvider userProvider}) { ServiceRequestDetailProvider requestDetailProvider = Provider.of(context, listen: false); - bool showMarkAsFixedButton = activities.isEmpty ? true : activities.every((object) => object.activityStatus!.name!.toLowerCase() == "completed"); + bool showMarkAsFixedButton = activities.isEmpty ? true : activities.any((object) => object.activityStatus!.name!.toLowerCase() == "fixed"); if (userProvider.user?.type == UsersTypes.engineer) { switch (workOrderNextStepStatus) { case WorkOrderNextStepEnum.onlyView: 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 ce023edc..f54cbe1c 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 @@ -15,6 +15,7 @@ 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/new_models/work_order_detail_model.dart'; import 'package:test_sa/new_views/common_widgets/app_lazy_loading.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'; @@ -306,8 +307,6 @@ class ServiceRequestBottomSheet { initialVisitReminderBottomSheet(context: context); } - - // }, ), @@ -1017,15 +1016,14 @@ class ServiceRequestBottomSheet { buttonColor: AppColor.green70, onPressed: () async { if (newSignature != null) { - requestDetailProvider.nurseActionHelperModel = NurseActionHelperModel( - workOrderId: requestDetailProvider.currentWorkOrder!.data!.requestId!, - signatureNurse: nurseSignature, - ); - requestDetailProvider.nurseConfirm(); - if (requestDetailProvider.currentWorkOrder!.data!.requestId != null) { - requestDetailProvider.getWorkOrderById(id: requestDetailProvider.currentWorkOrder!.data!.requestId!); + requestDetailProvider.nurseActionHelperModel = NurseActionHelperModel(workOrderId: requestDetailProvider.currentWorkOrder!.data!.requestId!, signatureNurse: nurseSignature); + WorkOrderDetail? data = await requestDetailProvider.nurseConfirm(); + if (data != null) { + if (requestDetailProvider.currentWorkOrder!.data!.requestId != null) { + requestDetailProvider.updateCurrentWorkOrder(data); + } + Navigator.pop(context); } - Navigator.pop(context); } else { context.translation.signaturesAreRequired.showToast; } 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 0872b098..104e37ba 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 @@ -50,7 +50,7 @@ class _VerifyAssetDetailsState extends State with TickerProv @override void initState() { super.initState(); - assignValues(); + } Future getFaultDescription({required int? assetId}) async { @@ -64,7 +64,7 @@ class _VerifyAssetDetailsState extends State with TickerProv void assignValues() { // ServiceRequestDetailProvider requestDetailProvider = Provider.of(context, listen: false); - _requestDetailProvider = Provider.of(context, listen: false); + // _requestDetailProvider = Provider.of(context, listen: false); WorkOrderData currentWorkOrderData = _requestDetailProvider!.currentWorkOrder!.data!; _requestDetailProvider!.engineerUpdateWorkOrderHelperModel = EngineerUpdateWorkOrderHelperModel( workOrderId: currentWorkOrderData.requestId, @@ -104,6 +104,7 @@ class _VerifyAssetDetailsState extends State with TickerProv _equipmentStatusProvider!.getDate(); }); _reasonProvider?.serviceRequestId = _requestDetailProvider?.currentWorkOrder!.data!.requestId.toString(); + assignValues(); } return Scaffold( diff --git a/lib/views/widgets/e_signature/e_signature.dart b/lib/views/widgets/e_signature/e_signature.dart index 23bc5f30..3a88e54b 100644 --- a/lib/views/widgets/e_signature/e_signature.dart +++ b/lib/views/widgets/e_signature/e_signature.dart @@ -103,7 +103,7 @@ class _ESignatureState extends State { height: 135.toScreenHeight, width: MediaQuery.of(context).size.width, padding: const EdgeInsets.only(bottom: 8), - child: signature != null ? Image.memory(signature!) : ImageLoader(boxFit: BoxFit.contain, url: URLs.getFileUrl(widget.oldSignature)??''), + child: signature != null ? Image.memory(signature!) : ImageLoader(showDefaultIcon: true,boxFit: BoxFit.contain, url: URLs.getFileUrl(widget.oldSignature)??''), ) : AbsorbPointer( absorbing: !_editable, diff --git a/lib/views/widgets/loaders/image_loader.dart b/lib/views/widgets/loaders/image_loader.dart index 676a130a..eed5d473 100644 --- a/lib/views/widgets/loaders/image_loader.dart +++ b/lib/views/widgets/loaders/image_loader.dart @@ -8,8 +8,9 @@ class ImageLoader extends StatelessWidget { final Alignment? alignment; final double? width; final double? height; + final bool showDefaultIcon; - const ImageLoader({Key? key, required this.url, this.boxFit, this.color, this.alignment, this.width, this.height}) : super(key: key); + const ImageLoader({Key? key, required this.url, this.boxFit, this.color, this.alignment, this.width, this.height, this.showDefaultIcon = false}) : super(key: key); @override Widget build(BuildContext context) { @@ -20,7 +21,7 @@ class ImageLoader extends StatelessWidget { width: width, height: height, placeholder: (context, url) => const Center(child: CircularProgressIndicator()), - errorWidget: (context, url, error) => const Icon(Icons.broken_image_rounded), + errorWidget: (context, url, error) => Icon(showDefaultIcon ? Icons.image_outlined : Icons.broken_image_rounded), ); } }