Service request attachment fixes

design_3.0_task_module_new
WaseemAbbasi22 4 months ago
parent aa11d93409
commit 9d4d678668

@ -257,9 +257,12 @@ class ServiceRequestDetailProvider extends ChangeNotifier {
}
//upload workorder attachment by engineer..
Future addWorkOrderAttachment({required int woId, required List<File> attachments}) async {
Future addWorkOrderAttachment({required int woId, required List<File> attachments,required List<WorkOrderAttachments> otherAttachment}) async {
try {
List<WorkOrderAttachments> 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));

@ -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) ...[

Loading…
Cancel
Save