diff --git a/deploy/files.js b/deploy/files.js index d742c25..eb3bc23 100644 --- a/deploy/files.js +++ b/deploy/files.js @@ -346,14 +346,27 @@ async function addZipFile(file) { doc_id: zf.doc_id, uploaded: true, status: { kind: 'parsing' } }; - state.files.push(zEntry); - var zIdx = state.files.length - 1; + + // Проверить дубликат по имени + var dup = -1; + for (var dj = 0; dj < state.files.length; dj++) { + if (state.files[dj].name === zf.filename) { dup = dj; break; } + } + + if (dup >= 0) { + // Заменить существующий (как addRegularFile — перезапись) + state.files[dup] = zEntry; + } else { + state.files.push(zEntry); + dup = state.files.length - 1; + } + // Если это первый файл — запомнить contract_id if (!state.contractId && zf.contract_id) state.contractId = zf.contract_id; render(state); // Применить результат парсинга от бэкенда (clean function) - applyParseResult(state.files[zIdx], zf.parsed); + applyParseResult(state.files[dup], zf.parsed); render(state); } } catch(ze) {