diff --git a/lib/models/helper_data_models/workorder/work_order_helper_models.dart b/lib/models/helper_data_models/workorder/work_order_helper_models.dart index a1fcdc26..b8d691a2 100644 --- a/lib/models/helper_data_models/workorder/work_order_helper_models.dart +++ b/lib/models/helper_data_models/workorder/work_order_helper_models.dart @@ -82,6 +82,8 @@ class EngineerUpdateWorkOrderHelperModel { FaultDescription? faultDescription; String? solution; String? callResponse; + String? descriptionOfFinding; + String? actionTaken; EngineerUpdateWorkOrderHelperModel({ this.workOrderId, @@ -95,6 +97,8 @@ class EngineerUpdateWorkOrderHelperModel { this.solution, this.returnToService, this.callResponse, + this.descriptionOfFinding, + this.actionTaken, }); Map toJson() { @@ -107,6 +111,8 @@ class EngineerUpdateWorkOrderHelperModel { data['failureReasonId'] = failureReason?.id; data['faultDescriptionId'] = faultDescription?.id; data['callResponse'] = callResponse; + data['descriptionOfFinding'] = descriptionOfFinding; + data['actionTaken'] = actionTaken; return data; } } diff --git a/lib/models/new_models/work_order_detail_model.dart b/lib/models/new_models/work_order_detail_model.dart index 25f9af5c..3e2bfc55 100644 --- a/lib/models/new_models/work_order_detail_model.dart +++ b/lib/models/new_models/work_order_detail_model.dart @@ -91,6 +91,8 @@ class WorkOrderData { this.cmFrame, this.rejectComment, this.callResponse, + this.descriptionOfFinding, + this.actionTaken, required this.workOrderHistory, required this.activities, required this.activityAssetToBeRetireds, @@ -143,8 +145,10 @@ class WorkOrderData { String? iHaveArrivedDate; String? closedDate; Lookup? rejectReason; - String? rejectComment; // need to replace with reject comments. - String? callResponse; // need to replace with reject comments. + String? rejectComment; + String? callResponse; + String? descriptionOfFinding; + String? actionTaken; int? since; List workOrderHistory; List activities; @@ -168,6 +172,8 @@ class WorkOrderData { room: json["room"], rejectComment: json["rejectComment"], callResponse: json["callResponse"], + descriptionOfFinding: json["descriptionOfFinding"], + actionTaken: json["actionTaken"], iHaveArrivedDate: json["iHaveArrivedDate"], closedDate: json["closedDate"], cmFrame: json["cmFrame"] == null ? null : Lookup.fromJson(json["cmFrame"]), @@ -529,7 +535,7 @@ class WorkOrderContactPerson { String? position; String? extension; String? email; - String ?mobilePhone; + String? mobilePhone; WorkOrderAssignedEmployee? contactUser; factory WorkOrderContactPerson.fromJson(Map json) { @@ -662,7 +668,7 @@ class ActivityMaintenance { this.supplierEngineer, this.supplierStartTime, this.supplierEndTime, - this.activityType, + this.activityType, this.supplierWorkingHours, this.assistantEmployees}); diff --git a/lib/service_request_latest/views/components/asset_detail_card.dart b/lib/service_request_latest/views/components/asset_detail_card.dart index 914b847d..824573e4 100644 --- a/lib/service_request_latest/views/components/asset_detail_card.dart +++ b/lib/service_request_latest/views/components/asset_detail_card.dart @@ -1,5 +1,6 @@ import 'package:flutter/material.dart'; import 'package:provider/provider.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'; @@ -50,12 +51,7 @@ class AssetDetailCard extends StatelessWidget { if (!requestDetailProvider.isReadOnlyRequest) "edit_icon".toSvgAsset(height: 21, width: 21).onPress(() async { requestDetailProvider.refreshTimer = false; - await Navigator.push( - context, - MaterialPageRoute( - builder: (context) => VerifyAssetDetails( - isEdit: true, - ))); + await Navigator.push(context, MaterialPageRoute(builder: (context) => VerifyAssetDetails(isEdit: true))); requestDetailProvider.refreshTimer = true; }), ]), @@ -84,6 +80,16 @@ class AssetDetailCard extends StatelessWidget { '${context.translation.solutions}: ${requestDetailProvider.engineerUpdateWorkOrderHelperModel?.solution ?? '-'}', style: AppTextStyles.bodyText.copyWith(color: context.isDark ? AppColor.neutral10 : AppColor.neutral120), ), + if (Provider.of(context, listen: false).isUserFMS) ...[ + Text( + 'Description of Finding: ${requestDetailProvider.engineerUpdateWorkOrderHelperModel?.descriptionOfFinding ?? '-'}', + style: AppTextStyles.bodyText.copyWith(color: context.isDark ? AppColor.neutral10 : AppColor.neutral120), + ), + Text( + 'Action Taken: ${requestDetailProvider.engineerUpdateWorkOrderHelperModel?.actionTaken ?? '-'}', + style: AppTextStyles.bodyText.copyWith(color: context.isDark ? AppColor.neutral10 : AppColor.neutral120), + ), + ] ], ), ); diff --git a/lib/service_request_latest/views/components/service_request_detail_view.dart b/lib/service_request_latest/views/components/service_request_detail_view.dart index 9e7eee14..c91001d9 100644 --- a/lib/service_request_latest/views/components/service_request_detail_view.dart +++ b/lib/service_request_latest/views/components/service_request_detail_view.dart @@ -487,6 +487,8 @@ class _ServiceRequestDetailViewState extends State { solution: currentWorkOrderData.faultDescription?.workPerformed, returnToService: currentWorkOrderData.returnToService, serviceType: currentWorkOrderData.serviceType, + descriptionOfFinding: currentWorkOrderData.descriptionOfFinding, + actionTaken: currentWorkOrderData.actionTaken, ); return const AssetDetailCard(); } else { 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 6952d29b..429bb05f 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 @@ -2,6 +2,7 @@ import 'dart:async'; import 'package:flutter/material.dart'; import 'package:provider/provider.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/text_extensions.dart'; @@ -27,7 +28,6 @@ import 'package:test_sa/views/widgets/equipment/pick_asset.dart'; import '../../../../../../models/lookup.dart'; import '../../../../../../new_views/common_widgets/default_app_bar.dart'; -//TODO Have some details need to confirm from backend fault description, class VerifyAssetDetails extends StatefulWidget { static const String id = "/verify-asset-detail"; bool isEdit = false; @@ -76,6 +76,8 @@ class _VerifyAssetDetailsState extends State with TickerProv returnToService: currentWorkOrderData.returnToService, serviceType: currentWorkOrderData.serviceType, callResponse: currentWorkOrderData.callResponse, + descriptionOfFinding: currentWorkOrderData.descriptionOfFinding, + actionTaken: currentWorkOrderData.actionTaken, ); if (currentWorkOrderData.assetLoan != null) { loanAvailabilityAsset = Asset( @@ -221,7 +223,7 @@ class _VerifyAssetDetailsState extends State with TickerProv context.translation.solutions.heading6(context).custom(color: AppColor.neutral50), 8.height, requestDetailProvider.engineerUpdateWorkOrderHelperModel?.solution != null - ? requestDetailProvider.engineerUpdateWorkOrderHelperModel!.solution!.bodyText2(context).custom(color: AppColor.neutral120,align: TextAlign.justify) + ? requestDetailProvider.engineerUpdateWorkOrderHelperModel!.solution!.bodyText2(context).custom(color: AppColor.neutral120, align: TextAlign.justify) : const SizedBox(), ], 8.height, @@ -232,11 +234,39 @@ class _VerifyAssetDetailsState extends State with TickerProv textAlign: TextAlign.center, labelStyle: AppTextStyles.textFieldLabelStyle, showShadow: false, - onChange: (value){ + onChange: (value) { requestDetailProvider.engineerUpdateWorkOrderHelperModel?.callResponse = value; }, style: Theme.of(context).textTheme.titleMedium, ), + if (Provider.of(context, listen: false).isUserFMS) ...[ + 8.height, + AppTextFormField( + labelText: "Description of Finding", + backgroundColor: AppColor.neutral100, + initialValue: requestDetailProvider.engineerUpdateWorkOrderHelperModel?.descriptionOfFinding, + textAlign: TextAlign.center, + labelStyle: AppTextStyles.textFieldLabelStyle, + showShadow: false, + onChange: (value) { + requestDetailProvider.engineerUpdateWorkOrderHelperModel?.descriptionOfFinding = value; + }, + style: Theme.of(context).textTheme.titleMedium, + ), + 8.height, + AppTextFormField( + labelText: "Action Taken", + backgroundColor: AppColor.neutral100, + initialValue: requestDetailProvider.engineerUpdateWorkOrderHelperModel?.actionTaken, + textAlign: TextAlign.center, + labelStyle: AppTextStyles.textFieldLabelStyle, + showShadow: false, + onChange: (value) { + requestDetailProvider.engineerUpdateWorkOrderHelperModel?.actionTaken = value; + }, + style: Theme.of(context).textTheme.titleMedium, + ), + ] ], ).toShadowContainer(context).paddingAll(16), ).expanded,