|
|
|
|
@ -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<ServiceRequestDetailView> {
|
|
|
|
|
List<File> _workOrderAttachments = [];
|
|
|
|
|
List<File> _userAttachments = [];
|
|
|
|
|
List<WorkOrderAttachments> _attachments = [];
|
|
|
|
|
|
|
|
|
|
@override
|
|
|
|
|
void initState() {
|
|
|
|
|
// ServiceRequestDetailProvider requestDetailProvider = Provider.of<ServiceRequestDetailProvider>(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<ServiceRequestDetailView> {
|
|
|
|
|
Widget build(BuildContext context) {
|
|
|
|
|
UserProvider _userProvider = Provider.of<UserProvider>(context, listen: false);
|
|
|
|
|
return Consumer<ServiceRequestDetailProvider>(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<ServiceRequestDetailView> {
|
|
|
|
|
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) ...[
|
|
|
|
|
|