diff --git a/lib/modules/cm_module/service_request_detail_provider.dart b/lib/modules/cm_module/service_request_detail_provider.dart index 732806e7..93ff9fd3 100644 --- a/lib/modules/cm_module/service_request_detail_provider.dart +++ b/lib/modules/cm_module/service_request_detail_provider.dart @@ -257,9 +257,12 @@ class ServiceRequestDetailProvider extends ChangeNotifier { } //upload workorder attachment by engineer.. - Future addWorkOrderAttachment({required int woId, required List attachments}) async { + Future addWorkOrderAttachment({required int woId, required List attachments,required List otherAttachment}) async { try { List woAttachments = []; + if(otherAttachment.isNotEmpty){ + woAttachments.addAll(otherAttachment); + } for (var file in attachments) { String fileName = ServiceRequestUtils.isLocalUrl(file.path) ? ("${file.path.split("/").last}|${base64Encode(File(file.path).readAsBytesSync())}") : file.path; woAttachments.add(WorkOrderAttachments(id: 0, name: fileName)); diff --git a/lib/modules/cm_module/views/components/service_request_detail_view.dart b/lib/modules/cm_module/views/components/service_request_detail_view.dart index 48bf552b..6015a5ac 100644 --- a/lib/modules/cm_module/views/components/service_request_detail_view.dart +++ b/lib/modules/cm_module/views/components/service_request_detail_view.dart @@ -19,6 +19,7 @@ import 'package:test_sa/modules/cm_module/views/forms/asset_retired/asset_retire import 'package:test_sa/modules/cm_module/views/forms/cost/cost_detail_form_screen.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/views/widgets/images/files_list.dart'; import 'package:test_sa/views/widgets/images/multi_image_picker.dart'; import 'package:test_sa/views/widgets/loaders/no_data_found.dart'; import 'package:test_sa/views/widgets/requests/request_status.dart'; @@ -36,13 +37,11 @@ class ServiceRequestDetailView extends StatefulWidget { } class _ServiceRequestDetailViewState extends State { - List _workOrderAttachments = []; + List _userAttachments = []; + List _attachments = []; @override void initState() { - // ServiceRequestDetailProvider requestDetailProvider = Provider.of(context, listen: false); - // _workOrderAttachments = requestDetailProvider.currentWorkOrder?.data?.workOrderAttachments.map((e) => File(e.name ?? '')).toList() ?? []; - // _workOrderAttachments = requestDetailProvider.currentWorkOrder?.data?.workOrderAttachments.map((e) => AttachmentModel(e.id??0, File(e.name ?? ''))).toList() ?? []; super.initState(); } @@ -50,7 +49,14 @@ class _ServiceRequestDetailViewState extends State { Widget build(BuildContext context) { UserProvider _userProvider = Provider.of(context, listen: false); return Consumer(builder: (pContext, requestProvider, _) { - _workOrderAttachments = requestProvider.currentWorkOrder?.data?.workOrderAttachments.map((e) => File(e.name ?? '')).toList() ?? []; + if (_userProvider.user?.type == UsersTypes.engineer) { + _userAttachments = requestProvider.currentWorkOrder?.data?.workOrderAttachments.where((e) => e.createdBy == _userProvider.user?.userID).map((e) => File(e.name ?? '')).toList() ?? []; + _attachments = requestProvider.currentWorkOrder?.data?.workOrderAttachments.where((e) => e.createdBy != _userProvider.user?.userID).toList() ?? []; + } else { + //show only nurse attachments + _attachments = requestProvider.currentWorkOrder?.data?.workOrderAttachments.where((e) => e.createdBy == _userProvider.user?.userID).toList() ?? []; + } + return requestProvider.isLoading ? const CircularProgressIndicator(color: AppColor.primary10).center : requestProvider.currentWorkOrder == null @@ -317,27 +323,31 @@ class _ServiceRequestDetailViewState extends State { style: AppTextStyles.bodyText.copyWith(color: context.isDark ? AppColor.neutral10 : AppColor.neutral120), ), ], -//workOrderNextStepStatus == WorkOrderNextStepEnum.assignToMe - - // if (activity.activitySparePart?.acitiySparePartAttachments?.isNotEmpty ?? false) ...[ - // 2.height, - // const Divider().defaultStyle(context), - // FilesList(images: activity.activitySparePart!.acitiySparePartAttachments!.map((toElement) => URLs.getFileUrl(toElement.name!)!).toList()), - // ], - - if (!requestProvider.isReadOnlyRequest && userProvider.user?.type == UsersTypes.engineer && workOrder.nextStep?.workOrderNextStepEnum == WorkOrderNextStepEnum.activity) ...[ + if (userProvider.user?.type == UsersTypes.engineer) ...[ + if (_attachments.isNotEmpty) ...[ + 8.height, + const Divider().defaultStyle(context), + FilesList(images: _attachments.map((toElement) => URLs.getFileUrl(toElement.name!)!).toList()), + ], + if (!requestProvider.isReadOnlyRequest && workOrder.nextStep?.workOrderNextStepEnum == WorkOrderNextStepEnum.activity) ...[ + 8.height, + const Divider().defaultStyle(context), + MultiFilesPicker( + label: context.translation.attachments, + files: _userAttachments, + buttonColor: AppColor.primary10, + onlyImages: false, + buttonIcon: 'quotation_icon'.toSvgAsset(color: AppColor.primary10), + onChange: (attachment) { + requestProvider.addWorkOrderAttachment(woId: workOrder.requestId!, attachments: _userAttachments, otherAttachment: _attachments); + }, + ), + ], + ] else ...[ 8.height, const Divider().defaultStyle(context), - MultiFilesPicker( - label: context.translation.attachments, - files: _workOrderAttachments, - buttonColor: AppColor.primary10, - onlyImages: false, - buttonIcon: 'quotation_icon'.toSvgAsset(color: AppColor.primary10), - onChange: (attachment) { - requestProvider.addWorkOrderAttachment(woId: workOrder.requestId!, attachments: _workOrderAttachments); - }, - ), + FilesList(images: _attachments.map((toElement) => URLs.getFileUrl(toElement.name!)!).toList()), + //handle nurse case.. ], if (workOrder.voiceNote?.isNotEmpty ?? false) ...[