diff --git a/src/components/pages/inventory/movement/form/MovementForm.tsx b/src/components/pages/inventory/movement/form/MovementForm.tsx index 62a23595..cd01cd96 100644 --- a/src/components/pages/inventory/movement/form/MovementForm.tsx +++ b/src/components/pages/inventory/movement/form/MovementForm.tsx @@ -189,12 +189,45 @@ const MovementForm = ({ type = 'add', initialValues }: MovementFormProps) => { return; } const documents: File[] = []; + const documentNameToIndex = new Map(); + let sequentialDocumentIndex = 0; + const deliveriesPayload = values.deliveries.map((d) => { - let documentIndex = 0; + let documentIndex = -1; if (d.document && d.document instanceof File) { - documents.push(d.document); - documentIndex = documents.length - 1; + const fileName = d.document.name; + + if (documentNameToIndex.has(fileName)) { + documentIndex = documentNameToIndex.get(fileName)!; + } else { + documents.push(d.document); + documentIndex = sequentialDocumentIndex; + documentNameToIndex.set(fileName, documentIndex); + sequentialDocumentIndex++; + } + } else if (d.document_path) { + const pathFileName = + d.document_path.split('/').pop() || d.document_path; + + if (documentNameToIndex.has(pathFileName)) { + documentIndex = documentNameToIndex.get(pathFileName)!; + } else { + documentIndex = sequentialDocumentIndex; + documentNameToIndex.set(pathFileName, documentIndex); + sequentialDocumentIndex++; + } + } else if (d.document && !(d.document instanceof File)) { + const existingDocFileName = + d.document.path.split('/').pop() || d.document.path; + + if (documentNameToIndex.has(existingDocFileName)) { + documentIndex = documentNameToIndex.get(existingDocFileName)!; + } else { + documentIndex = sequentialDocumentIndex; + documentNameToIndex.set(existingDocFileName, documentIndex); + sequentialDocumentIndex++; + } } return {