From 4fe2943a5fa095567fadb3813628c0d315991d84 Mon Sep 17 00:00:00 2001 From: Sikander Saleem Date: Thu, 14 Aug 2025 12:42:06 +0300 Subject: [PATCH] update asset details improvement. --- .../service_request_detail_provider.dart | 8 +- .../asset_retired/verify_asset_detail.dart | 89 +++++++++---------- 2 files changed, 48 insertions(+), 49 deletions(-) diff --git a/lib/modules/cm_module/service_request_detail_provider.dart b/lib/modules/cm_module/service_request_detail_provider.dart index 5a40ccd8..7f597320 100644 --- a/lib/modules/cm_module/service_request_detail_provider.dart +++ b/lib/modules/cm_module/service_request_detail_provider.dart @@ -265,8 +265,8 @@ class ServiceRequestDetailProvider extends ChangeNotifier { woAttachments.addAll(otherAttachment); } for (var file in attachments) { - String fileName = ServiceRequestUtils.isLocalUrl(file.name??'') ? ("${file.name??''.split("/").last}|${base64Encode(File(file.name??'').readAsBytesSync())}") :file.name??''; - woAttachments.add(WorkOrderAttachments(id: file.id, name: fileName,createdBy:file.createdBy)); + String fileName = ServiceRequestUtils.isLocalUrl(file.name ?? '') ? ("${file.name ?? ''.split("/").last}|${base64Encode(File(file.name ?? '').readAsBytesSync())}") : file.name ?? ''; + woAttachments.add(WorkOrderAttachments(id: file.id, name: fileName, createdBy: file.createdBy)); } isLoading = true; @@ -612,11 +612,11 @@ class ServiceRequestDetailProvider extends ChangeNotifier { } //engineerUpdateWorkOrder...... - Future engineerUpdateWorkOrder() async { + Future engineerUpdateWorkOrder(EngineerUpdateWorkOrderHelperModel updateAssetModel) async { isLoading = true; Response response; try { - response = await ApiManager.instance.post(URLs.engineerUpdateWorkOrderUrl, body: engineerUpdateWorkOrderHelperModel!.toJson()); + response = await ApiManager.instance.post(URLs.engineerUpdateWorkOrderUrl, body: updateAssetModel.toJson()); stateCode = response.statusCode; isLoading = false; notifyListeners(); diff --git a/lib/modules/cm_module/views/forms/asset_retired/verify_asset_detail.dart b/lib/modules/cm_module/views/forms/asset_retired/verify_asset_detail.dart index 142c2f19..68abaf60 100644 --- a/lib/modules/cm_module/views/forms/asset_retired/verify_asset_detail.dart +++ b/lib/modules/cm_module/views/forms/asset_retired/verify_asset_detail.dart @@ -61,11 +61,14 @@ class _VerifyAssetDetailsState extends State with TickerProv }); } + EngineerUpdateWorkOrderHelperModel? updateAssetModel; + late WorkOrderData currentWorkOrderData; + void assignValues() { // ServiceRequestDetailProvider requestDetailProvider = Provider.of(context, listen: false); // _requestDetailProvider = Provider.of(context, listen: false); - WorkOrderData currentWorkOrderData = _requestDetailProvider!.currentWorkOrder!.data!; - _requestDetailProvider!.engineerUpdateWorkOrderHelperModel = EngineerUpdateWorkOrderHelperModel( + currentWorkOrderData = _requestDetailProvider!.currentWorkOrder!.data!; + updateAssetModel = EngineerUpdateWorkOrderHelperModel( workOrderId: currentWorkOrderData.requestId, equipmentStatus: currentWorkOrderData.equipmentStatus, loanAvailability: currentWorkOrderData.loanAvailablity, @@ -91,7 +94,7 @@ class _VerifyAssetDetailsState extends State with TickerProv ); setState(() {}); } - getFaultDescription(assetId: _requestDetailProvider!.currentWorkOrder?.data?.asset?.id); + getFaultDescription(assetId: currentWorkOrderData.asset?.id); } @override @@ -126,15 +129,15 @@ class _VerifyAssetDetailsState extends State with TickerProv crossAxisAlignment: CrossAxisAlignment.start, mainAxisSize: MainAxisSize.min, children: [ - assetStatusWidget(context: context, workOrderData: requestDetailProvider.engineerUpdateWorkOrderHelperModel!), + assetStatusWidget(context: context, workOrderData: updateAssetModel!), 12.height, ADatePicker( label: context.translation.returnToService, hideShadow: true, backgroundColor: AppColor.neutral100, - // initialDate: DateTime.tryParse(requestDetailProvider.engineerUpdateWorkOrderHelperModel?.returnToService ?? ""), + // initialDate: DateTime.tryParse(updateAssetModel?.returnToService ?? ""), from: requestDetailProvider.currentWorkOrder?.data?.requestedDate, - date: DateTime.tryParse(requestDetailProvider.engineerUpdateWorkOrderHelperModel?.returnToService ?? ""), + date: DateTime.tryParse(updateAssetModel?.returnToService ?? ""), formatDateWithTime: true, onDatePicker: (selectedDate) { showTimePicker( @@ -150,19 +153,18 @@ class _VerifyAssetDetailsState extends State with TickerProv selectedTime.hour, selectedTime.minute, ); - // if (requestDetailProvider.engineerUpdateWorkOrderHelperModel?.returnToService != null && - // selectedDateTime.isBefore(DateTime.parse(requestDetailProvider.engineerUpdateWorkOrderHelperModel!.returnToService!))) { + // if (updateAssetModel?.returnToService != null && + // selectedDateTime.isBefore(DateTime.parse(updateAssetModel!.returnToService!))) { // "Return To Service Date time must be greater then previous date".showToast; // return; // } setState(() { - requestDetailProvider.engineerUpdateWorkOrderHelperModel?.returnToService = selectedDateTime.toIso8601String(); + updateAssetModel?.returnToService = selectedDateTime.toIso8601String(); }); } }); }, ), - 12.height, SingleItemDropDownMenu( context: context, @@ -170,10 +172,10 @@ class _VerifyAssetDetailsState extends State with TickerProv backgroundColor: AppColor.neutral100, height: 56.toScreenHeight, showShadow: false, - initialValue: requestDetailProvider.engineerUpdateWorkOrderHelperModel?.cmFrameId, + initialValue: updateAssetModel?.cmFrameId, onSelect: (value) { if (value != null) { - requestDetailProvider.engineerUpdateWorkOrderHelperModel?.cmFrameId = value; + updateAssetModel?.cmFrameId = value; } }, ), @@ -184,10 +186,10 @@ class _VerifyAssetDetailsState extends State with TickerProv backgroundColor: AppColor.neutral100, height: 56.toScreenHeight, showShadow: false, - initialValue: requestDetailProvider.engineerUpdateWorkOrderHelperModel?.failureReason, + initialValue: updateAssetModel?.failureReason, onSelect: (value) { if (value != null) { - requestDetailProvider.engineerUpdateWorkOrderHelperModel?.failureReason = value; + updateAssetModel?.failureReason = value; } }, ), @@ -198,22 +200,20 @@ class _VerifyAssetDetailsState extends State with TickerProv backgroundColor: AppColor.neutral100, staticData: _faults, showShadow: false, - initialValue: requestDetailProvider.engineerUpdateWorkOrderHelperModel?.faultDescription, + initialValue: updateAssetModel?.faultDescription, onSelect: (fault) { if (fault != null) { - requestDetailProvider.engineerUpdateWorkOrderHelperModel?.faultDescription = fault; - requestDetailProvider.engineerUpdateWorkOrderHelperModel?.solution = fault.workPerformed; + updateAssetModel?.faultDescription = fault; + updateAssetModel?.solution = fault.workPerformed; setState(() {}); } }, ), - if (requestDetailProvider.engineerUpdateWorkOrderHelperModel?.solution != null) ...[ + if (updateAssetModel?.solution != null) ...[ 12.height, 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) - : const SizedBox(), + updateAssetModel?.solution != null ? updateAssetModel!.solution!.bodyText2(context).custom(color: AppColor.neutral120, align: TextAlign.justify) : const SizedBox(), ], 12.height, SingleItemDropDownMenu( @@ -222,25 +222,25 @@ class _VerifyAssetDetailsState extends State with TickerProv backgroundColor: AppColor.neutral100, height: 56.toScreenHeight, showShadow: false, - initialValue: requestDetailProvider.engineerUpdateWorkOrderHelperModel?.loanAvailability, + initialValue: updateAssetModel?.loanAvailability, onSelect: (status) { if (status != null) { - requestDetailProvider.engineerUpdateWorkOrderHelperModel?.loanAvailability = status; + updateAssetModel?.loanAvailability = status; if (status.value != 1) { loanAvailabilityAsset = null; - requestDetailProvider.engineerUpdateWorkOrderHelperModel?.loanAssetId = null; + updateAssetModel?.loanAssetId = null; } setState(() {}); } }, ), - if (requestDetailProvider.engineerUpdateWorkOrderHelperModel?.loanAvailability?.value == 1) 8.height, - if (requestDetailProvider.engineerUpdateWorkOrderHelperModel?.loanAvailability?.value == 1) + if (updateAssetModel?.loanAvailability?.value == 1) 8.height, + if (updateAssetModel?.loanAvailability?.value == 1) PickAsset( device: loanAvailabilityAsset, // ?? _serviceReport.device, cardColor: AppColor.neutral100, onPickAsset: (asset) { - requestDetailProvider.engineerUpdateWorkOrderHelperModel?.loanAssetId = asset.id; + updateAssetModel?.loanAssetId = asset.id; setState(() { loanAvailabilityAsset = asset; }); @@ -251,9 +251,9 @@ class _VerifyAssetDetailsState extends State with TickerProv label: "EDD", hideShadow: true, backgroundColor: AppColor.neutral100, - // initialDate: DateTime.tryParse(requestDetailProvider.engineerUpdateWorkOrderHelperModel?.edd ?? ""), + // initialDate: DateTime.tryParse(updateAssetModel?.edd ?? ""), from: requestDetailProvider.currentWorkOrder?.data?.requestedDate, - date: DateTime.tryParse(requestDetailProvider.engineerUpdateWorkOrderHelperModel?.edd ?? ""), + date: DateTime.tryParse(updateAssetModel?.edd ?? ""), formatDateWithTime: true, onDatePicker: (selectedDate) { showTimePicker( @@ -269,13 +269,13 @@ class _VerifyAssetDetailsState extends State with TickerProv selectedTime.hour, selectedTime.minute, ); - // if (requestDetailProvider.engineerUpdateWorkOrderHelperModel?.edd != null && - // selectedDateTime.isBefore(DateTime.parse(requestDetailProvider.engineerUpdateWorkOrderHelperModel!.edd!))) { + // if (updateAssetModel?.edd != null && + // selectedDateTime.isBefore(DateTime.parse(updateAssetModel!.edd!))) { // "Return To Service Date time must be greater then previous date".showToast; // return; // } setState(() { - requestDetailProvider.engineerUpdateWorkOrderHelperModel?.edd = selectedDateTime.toIso8601String(); + updateAssetModel?.edd = selectedDateTime.toIso8601String(); }); } }); @@ -285,12 +285,12 @@ class _VerifyAssetDetailsState extends State with TickerProv AppTextFormField( labelText: context.translation.callResponse, backgroundColor: AppColor.neutral100, - initialValue: requestDetailProvider.engineerUpdateWorkOrderHelperModel?.callResponse, + initialValue: updateAssetModel?.callResponse, textAlign: TextAlign.center, labelStyle: AppTextStyles.textFieldLabelStyle, showShadow: false, onChange: (value) { - requestDetailProvider.engineerUpdateWorkOrderHelperModel?.callResponse = value; + updateAssetModel?.callResponse = value; }, style: Theme.of(context).textTheme.titleMedium, ), @@ -299,12 +299,12 @@ class _VerifyAssetDetailsState extends State with TickerProv AppTextFormField( labelText: "Description of Finding", backgroundColor: AppColor.neutral100, - initialValue: requestDetailProvider.engineerUpdateWorkOrderHelperModel?.descriptionOfFinding, + initialValue: updateAssetModel?.descriptionOfFinding, textAlign: TextAlign.center, labelStyle: AppTextStyles.textFieldLabelStyle, showShadow: false, onChange: (value) { - requestDetailProvider.engineerUpdateWorkOrderHelperModel?.descriptionOfFinding = value; + updateAssetModel?.descriptionOfFinding = value; }, style: Theme.of(context).textTheme.titleMedium, ), @@ -312,12 +312,12 @@ class _VerifyAssetDetailsState extends State with TickerProv AppTextFormField( labelText: "Action Taken", backgroundColor: AppColor.neutral100, - initialValue: requestDetailProvider.engineerUpdateWorkOrderHelperModel?.actionTaken, + initialValue: updateAssetModel?.actionTaken, textAlign: TextAlign.center, labelStyle: AppTextStyles.textFieldLabelStyle, showShadow: false, onChange: (value) { - requestDetailProvider.engineerUpdateWorkOrderHelperModel?.actionTaken = value; + updateAssetModel?.actionTaken = value; }, style: Theme.of(context).textTheme.titleMedium, ), @@ -326,7 +326,7 @@ class _VerifyAssetDetailsState extends State with TickerProv ).toShadowContainer(context).paddingAll(16), ).expanded, ] else ...[ - assetStatusWidget(context: context, workOrderData: requestDetailProvider.engineerUpdateWorkOrderHelperModel!).toShadowContainer(context).paddingAll(16), + assetStatusWidget(context: context, workOrderData: updateAssetModel!).toShadowContainer(context).paddingAll(16), ], Container( padding: EdgeInsets.symmetric(horizontal: 16.toScreenWidth, vertical: 16.toScreenHeight), @@ -337,13 +337,12 @@ class _VerifyAssetDetailsState extends State with TickerProv onPressed: () async { if (validateForm(requestDetailProvider: requestDetailProvider)) { showDialog(context: context, barrierDismissible: false, builder: (context) => const AppLazyLoading()); - await requestDetailProvider.engineerUpdateWorkOrder().then((success){ + await requestDetailProvider.engineerUpdateWorkOrder(updateAssetModel!).then((success) { Navigator.pop(context); - if(success){ + if (success) { Navigator.pop(context); } }); - } }, ), @@ -359,9 +358,9 @@ class _VerifyAssetDetailsState extends State with TickerProv if (!widget.isEdit) { return true; } - // if (requestDetailProvider.engineerUpdateWorkOrderHelperModel!.equipmentStatus != null) { - // if (requestDetailProvider.engineerUpdateWorkOrderHelperModel!.equipmentStatus!.value == 1 || requestDetailProvider.engineerUpdateWorkOrderHelperModel!.equipmentStatus!.value == 2) { - // if (requestDetailProvider.engineerUpdateWorkOrderHelperModel!.returnToService == null) { + // if (updateAssetModel!.equipmentStatus != null) { + // if (updateAssetModel!.equipmentStatus!.value == 1 || updateAssetModel!.equipmentStatus!.value == 2) { + // if (updateAssetModel!.returnToService == null) { // Fluttertoast.showToast(msg: "Return to service is required ", toastLength: Toast.LENGTH_LONG); // return false; // }