From 8550fb98bfa01c12fde3402b4b49cfb47761b497 Mon Sep 17 00:00:00 2001 From: "muhammad.abbasi" Date: Sun, 6 Oct 2024 13:21:45 +0300 Subject: [PATCH] activity status on sparepart activity added. --- .../spare_part/activity_spare_part_model.dart | 7 ++++++- .../views/components/activities_list_view.dart | 3 +-- .../service_request_bottomsheet.dart | 1 - .../views/components/verify_arrival_view.dart | 18 +++++++++++++++++- .../views/components/verify_otp_view.dart | 3 +++ .../asset_retired/verify_asset_detail.dart | 6 +++++- .../forms/spare_part/spare_part_request.dart | 16 +++++++++++++++- 7 files changed, 47 insertions(+), 7 deletions(-) diff --git a/lib/models/helper_data_models/spare_part/activity_spare_part_model.dart b/lib/models/helper_data_models/spare_part/activity_spare_part_model.dart index 82f616fa..49c437ab 100644 --- a/lib/models/helper_data_models/spare_part/activity_spare_part_model.dart +++ b/lib/models/helper_data_models/spare_part/activity_spare_part_model.dart @@ -1,3 +1,4 @@ +import 'package:test_sa/models/lookup.dart'; import 'package:test_sa/models/service_request/spare_parts.dart'; class SparePartHelperModel { @@ -6,6 +7,7 @@ class SparePartHelperModel { int? partCatalogItemId; int? activityStatusId; SparePart? sparePart; + Lookup? activityStatus; num? quantity; String? comment; List? sparePartAttachments; @@ -17,6 +19,7 @@ class SparePartHelperModel { this.quantity, this.sparePart, this.activityStatusId, + this.activityStatus, this.comment,this.sparePartAttachments, }); @@ -27,7 +30,9 @@ class SparePartHelperModel { data['workOrderId'] = workOrderId; data['partCatalogItemId'] = sparePart?.id; data['quantity'] = quantity; - data['activityStatusId'] = activityStatusId; + if(activityStatus!=null){ + data['activityStatusId'] = activityStatus?.id; + } data['comment'] = comment; if (sparePartAttachments != null) { data['acitiySparePartAttachments'] = 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..27a645c6 100644 --- a/lib/service_request_latest/views/components/activities_list_view.dart +++ b/lib/service_request_latest/views/components/activities_list_view.dart @@ -164,6 +164,7 @@ class _ActivitiesListViewState extends State { workOrderId: requestDetailProvider.currentWorkOrder?.data?.requestId, comment: activity.activitySparePart?.comment, sparePartAttachments: activity.activitySparePart?.acitiySparePartAttachments ?? [], + activityStatus: activity.activityStatus, sparePart: SparePart( id: activity.activitySparePart?.partCatalogItem?.id, partName: activity.activitySparePart?.partCatalogItem?.partName, @@ -171,8 +172,6 @@ class _ActivitiesListViewState extends State { oracleCode: activity.activitySparePart?.partCatalogItem?.oracleCode), quantity: activity.activitySparePart?.quantity, activityStatusId: activity.activityStatus?.id, -//TODO commets are missing in api response.. -// comment: activity.activitySparePart?.description, ); requestDetailProvider.updateSparePartHelperModel(requestDetailProvider.sparePartHelperModel); 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 88f97d6c..ecc5b728 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 @@ -204,7 +204,6 @@ class ServiceRequestBottomSheet { buttonColor: AppColor.green70, loading: false, onPressed: () async { - requestDetailProvider.fixRemotelyHelperModel?.workOrderId = requestDetailProvider.currentWorkOrder?.data?.requestId; requestDetailProvider.engineerFixRemotely(); //TODO context issue to show message.. diff --git a/lib/service_request_latest/views/components/verify_arrival_view.dart b/lib/service_request_latest/views/components/verify_arrival_view.dart index a038bcde..831788a4 100644 --- a/lib/service_request_latest/views/components/verify_arrival_view.dart +++ b/lib/service_request_latest/views/components/verify_arrival_view.dart @@ -142,6 +142,9 @@ class _VerifyArrivalViewState extends State { ) as String?; if (result != null) { try { + //TODO show loader. + // showDialog(context: context, barrierDismissible: false, builder: (context) => const AppLazyLoading()); + status = await requestDetailProvider.engineerConfirmArrival( workOrderId: requestDetailProvider.currentWorkOrder!.data!.requestId!, verificationTypeId: 1, @@ -151,12 +154,15 @@ class _VerifyArrivalViewState extends State { print('status i got is $status'); if (status == 200) { requestDetailProvider.getWorkOrderById(id: requestDetailProvider.currentWorkOrder!.data!.requestId!); + //Navigator.pop(context); Navigator.pushReplacement(context, MaterialPageRoute(builder: (context) => RequestDetailMain(requestId: requestDetailProvider.currentWorkOrder!.data!.requestId!))); } else { + // Navigator.pop(context); //show some message. } } catch (e) { + // Navigator.pop(context); print('error i got is $e'); } } @@ -165,7 +171,11 @@ class _VerifyArrivalViewState extends State { Fluttertoast.showToast(msg: 'Under process...' ?? "", toastLength: Toast.LENGTH_LONG); break; case 2: + //TODO add loader. + // showDialog(context: context, barrierDismissible: false, builder: (context) => const AppLazyLoading()); + requestDetailProvider.sendOtp(workOrderId: requestDetailProvider.currentWorkOrder!.data!.requestId!); + //Navigator.pop(context); Navigator.pushReplacement( context, MaterialPageRoute(builder: (context) => const VerifyOtpView()), @@ -177,22 +187,28 @@ class _VerifyArrivalViewState extends State { var fileObj = ("${pickedFile.path.split("/").last}|${base64Encode(File(pickedFile.path).readAsBytesSync())}"); int? status; try{ + //TODO add loader + // showDialog(context: context, barrierDismissible: false, builder: (context) => const AppLazyLoading()); status = await requestDetailProvider.engineerConfirmArrival( workOrderId: requestDetailProvider.currentWorkOrder!.data!.requestId!, verificationTypeId: 1, photoInfo: fileObj, otp: '', assetNo: requestDetailProvider.currentWorkOrder!.data!.asset?.assetNumber); - print('status i got is $status'); + if (status == 200) { requestDetailProvider.getWorkOrderById(id: requestDetailProvider.currentWorkOrder!.data!.requestId!); + // Navigator.pop(context); Navigator.pushReplacement(context, MaterialPageRoute(builder: (context) => RequestDetailMain(requestId: requestDetailProvider.currentWorkOrder!.data!.requestId!))); } else{ //show some message. + // Navigator.pop(context); + } }catch(e){ print('error i got is $e'); + // Navigator.pop(context); } } diff --git a/lib/service_request_latest/views/components/verify_otp_view.dart b/lib/service_request_latest/views/components/verify_otp_view.dart index 6393e78e..994d6c7f 100644 --- a/lib/service_request_latest/views/components/verify_otp_view.dart +++ b/lib/service_request_latest/views/components/verify_otp_view.dart @@ -53,12 +53,15 @@ class VerifyOtpView extends StatelessWidget { debugPrint('pin i got is $pin'); RequestDetailProvider requestDetailProvider = Provider.of(context, listen: false); int? status; + //TODO add loader.. + // showDialog(context: context, barrierDismissible: false, builder: (context) => const AppLazyLoading()); status = await requestDetailProvider.verifyOtp(workOrderId: requestDetailProvider.currentWorkOrder!.data!.requestId!, otpCode: pin); print('status i got is $status'); if (status == 200) { await requestDetailProvider.getWorkOrderById(id: requestDetailProvider.currentWorkOrder!.data!.requestId!); await requestDetailProvider.engineerConfirmArrival( workOrderId: requestDetailProvider.currentWorkOrder!.data!.requestId!, verificationTypeId: 3, photoInfo: '', otp: pin, assetNo: ''); + // Navigator.pop(context); Navigator.pushReplacement(context, MaterialPageRoute(builder: (context) => RequestDetailMain(requestId: requestDetailProvider.currentWorkOrder!.data!.requestId!))); } }, 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 870726ea..9838cfa0 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 @@ -14,6 +14,7 @@ import 'package:test_sa/models/helper_data_models/workorder/work_order_helper_mo 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/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/loading_list_notifier.dart'; import 'package:test_sa/providers/service_request_providers/equipment_status_provider.dart'; @@ -223,7 +224,10 @@ class _VerifyAssetDetailsState extends State with TickerProv label: context.translation.verify_asset_details, buttonColor: AppColor.primary10, onPressed: () async { - await requestDetailProvider.engineerUpdateWorkOrder(); + //TODO add loader + // showDialog(context: context, barrierDismissible: false, builder: (context) => const AppLazyLoading()); + requestDetailProvider.engineerUpdateWorkOrder(); + // Navigator.pop(context); Navigator.pop(context); }, ), diff --git a/lib/service_request_latest/views/forms/spare_part/spare_part_request.dart b/lib/service_request_latest/views/forms/spare_part/spare_part_request.dart index 679d5559..4d10a512 100644 --- a/lib/service_request_latest/views/forms/spare_part/spare_part_request.dart +++ b/lib/service_request_latest/views/forms/spare_part/spare_part_request.dart @@ -10,10 +10,12 @@ import 'package:test_sa/extensions/int_extensions.dart'; import 'package:test_sa/extensions/text_extensions.dart'; import 'package:test_sa/extensions/widget_extensions.dart'; import 'package:test_sa/models/helper_data_models/spare_part/activity_spare_part_model.dart'; +import 'package:test_sa/models/lookup.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/new_views/common_widgets/single_item_drop_down_menu.dart'; import 'package:test_sa/providers/loading_list_notifier.dart'; +import 'package:test_sa/providers/work_order/activity_status_provider.dart'; import 'package:test_sa/service_request_latest/request_detail_provider.dart'; import 'package:test_sa/service_request_latest/views/components/action_button/footer_action_button.dart'; import 'package:test_sa/service_request_latest/views/components/bottom_sheets/service_request_bottomsheet.dart'; @@ -59,6 +61,7 @@ class _SparePartRequestState extends State with TickerProvider sparePart: _requestDetailProvider?.sparePartHelperModel?.sparePart ?? SparePart(), quantity: _requestDetailProvider?.sparePartHelperModel?.quantity, activityStatusId: _requestDetailProvider?.sparePartHelperModel?.activityStatusId, + activityStatus: _requestDetailProvider?.sparePartHelperModel?.activityStatus, comment: _requestDetailProvider?.sparePartHelperModel?.comment ?? '', ); _partQtyController.text = _requestDetailProvider?.sparePartHelperModel?.quantity != null ? _requestDetailProvider!.sparePartHelperModel!.quantity.toString() : ''; @@ -118,6 +121,18 @@ class _SparePartRequestState extends State with TickerProvider children: [ context.translation.sparePartDetails.heading5(context), 12.height, + SingleItemDropDownMenu( + context: context, + height: 56.toScreenHeight, + title: context.translation.activityStatus, + showShadow: false, + backgroundColor: AppColor.neutral100, + initialValue: requestDetailProvider.sparePartHelperModel?.activityStatus, + onSelect: (status) { + requestDetailProvider.sparePartHelperModel?.activityStatus = status; + }, + ), + 12.height, SingleItemDropDownMenu( context: context, title: context.translation.partNo, @@ -206,7 +221,6 @@ class _SparePartRequestState extends State with TickerProvider _isLocalUrl(pickerObject.file.path) ? ("${pickerObject.file.path.split("/").last}|${base64Encode(File(pickerObject.file.path).readAsBytesSync())}") : pickerObject.file.path; requestDetailProvider.sparePartHelperModel?.sparePartAttachments?.add(SparePartAttachments(id: pickerObject.id, name: fileData)); } - showDialog(context: context, barrierDismissible: false, builder: (context) => const AppLazyLoading()); int status = -1; if (_requestDetailProvider?.sparePartHelperModel?.id == 0) {