diff --git a/lib/modules/medical_gas_inspection/update_delivery_notes_page.dart b/lib/modules/medical_gas_inspection/update_delivery_notes_page.dart index 73d24c57..9e9038dd 100644 --- a/lib/modules/medical_gas_inspection/update_delivery_notes_page.dart +++ b/lib/modules/medical_gas_inspection/update_delivery_notes_page.dart @@ -1,3 +1,7 @@ +import 'dart:convert'; +import 'dart:developer'; +import 'dart:io'; + import 'package:flutter/material.dart'; import 'package:provider/provider.dart'; import 'package:test_sa/controllers/providers/api/all_requests_provider.dart'; @@ -6,6 +10,8 @@ import 'package:test_sa/extensions/int_extensions.dart'; import 'package:test_sa/extensions/string_extensions.dart'; import 'package:test_sa/extensions/text_extensions.dart'; import 'package:test_sa/extensions/widget_extensions.dart'; +import 'package:test_sa/models/generic_attachment_model.dart'; +import 'package:test_sa/modules/cm_module/cm_request_utils.dart'; import 'package:test_sa/modules/cm_module/views/components/action_button/footer_action_button.dart'; import 'package:test_sa/modules/medical_gas_inspection/models/delivery_notes_form_model.dart'; import 'package:test_sa/modules/medical_gas_inspection/models/medical_gas_data_model.dart'; @@ -37,9 +43,7 @@ class _UpdateDeliveryNotesState extends State { bool pressureTestAcknowledgement = false; bool leakTestAcknowledgement = false; final GlobalKey _formKey = GlobalKey(); - final GlobalKey _scaffoldKey = GlobalKey(); - - // List selectedItemList = []; + List _attachments = []; @override void initState() { @@ -62,9 +66,13 @@ class _UpdateDeliveryNotesState extends State { isInspectedGasLeak: dataModel.isInspectedGasLeak, isPressureChecked: dataModel.isPressureChecked, deliveredDate: dataModel.deliveredDate, - attachments: dataModel.deliveryNoteAttachmentDto, + // attachments: dataModel.deliveryNoteAttachmentDto, isSubmitted: dataModel.isSubmitted, deliveryNoteNumber: dataModel.deliveryNote); + + if (dataModel.deliveryNoteAttachmentDto.isNotEmpty) { + _attachments.addAll(dataModel.deliveryNoteAttachmentDto.map((e) => GenericAttachmentModel(id: e.id, name: e.name)).toList()); + } //Need to Confirm this condition // selectedItemList = dataModel.requestDetailDtos.where((item) => item.deliveredQuantity != null && item.deliveredQuantity! > 0).toList(); setState(() {}); @@ -201,7 +209,7 @@ class _UpdateDeliveryNotesState extends State { AttachmentPicker( label: 'Upload Attachment', - attachment: formModel.attachments, + attachment: _attachments, buttonColor: AppColor.primary10, // showAsListView: true, onlyImages: false, @@ -320,6 +328,15 @@ class _UpdateDeliveryNotesState extends State { deliveredQuantity: item.deliveredQuantity, )); } + formModel.attachments = []; + try { + for (var item in _attachments) { + String fileName = CMRequestUtils.isLocalUrl(item.name ?? '') ? ("${item.name ?? ''.split("/").last}|${base64Encode(File(item.name ?? '').readAsBytesSync())}") : item.name ?? ''; + formModel.attachments.add(GenericAttachmentModel(id: item.id, name: fileName)); + } + } catch (error) { + print(error); + } showDialog(context: context, barrierDismissible: false, builder: (context) => const AppLazyLoading()); await medicalGasInspectionProvider.updatedDeliveryNotes(model: formModel).then((status) async { Navigator.pop(context);