From af6bc8ebe9b0b42538704a8cd0b34e986d8da79c Mon Sep 17 00:00:00 2001 From: AnthonyS Date: Wed, 24 Sep 2025 11:23:41 +0200 Subject: [PATCH] Corretto rollback su salvataggio documenti in caso di errore e creazione doc imballo se cod forn trasp impostato --- .../service/DocumentiDirettiService.java | 50 ++++++++++--------- 1 file changed, 27 insertions(+), 23 deletions(-) diff --git a/ems-engine/src/main/java/it/integry/ems/document/service/DocumentiDirettiService.java b/ems-engine/src/main/java/it/integry/ems/document/service/DocumentiDirettiService.java index a72c6204d5..94bce71e6d 100644 --- a/ems-engine/src/main/java/it/integry/ems/document/service/DocumentiDirettiService.java +++ b/ems-engine/src/main/java/it/integry/ems/document/service/DocumentiDirettiService.java @@ -106,33 +106,37 @@ public class DocumentiDirettiService { entityList.addAll(mtbLisaCostoData); } - List entityRet = entityProcessor.processEntityList(entityList, true); - UtilityEntity.throwEntitiesException(entityRet); + try { + List entityRet = entityProcessor.processEntityList(entityList, true); + UtilityEntity.throwEntitiesException(entityRet); - boolean salvaImballiAttiva = setupGest.getSetupBoolean("DTB_DOCT", "FATTURA_PEDANE", "ATTIVA"); + boolean salvaImballiAttiva = setupGest.getSetupBoolean("DTB_DOCT", "FATTURA_PEDANE", "ATTIVA"); - if (UtilityString.equalsIgnoreCase(gestione, "A")) { - List mtbLisaCostoData = documentService.popolaTabellaCosti(dtbDoct.getCodAnag(), - dtbDoct.getCodDtip(), - dtbDoct.getDataDoc(), - dtbDoct.getSerDoc(), - dtbDoct.getNumDoc(), false, false); - if (mtbLisaCostoData != null) { - entityRet = entityProcessor.processEntityList(mtbLisaCostoData, true); - UtilityEntity.throwEntitiesException(entityRet); + if (UtilityString.equalsIgnoreCase(gestione, "A")) { + List mtbLisaCostoData = documentService.popolaTabellaCosti(dtbDoct.getCodAnag(), + dtbDoct.getCodDtip(), + dtbDoct.getDataDoc(), + dtbDoct.getSerDoc(), + dtbDoct.getNumDoc(), false, false); + if (mtbLisaCostoData != null) { + entityRet = entityProcessor.processEntityList(mtbLisaCostoData, true); + UtilityEntity.throwEntitiesException(entityRet); + } + } else if (gestione.equalsIgnoreCase("V") && !UtilityString.isNullOrEmpty(dtbDoct.getCodFornTrasp()) && + TipoEmissione.valueOf(UtilityHashMap.getValueIfExists(datiTipoDoc, "tipo_emissione")) == TipoEmissione.DIRETTA && + !dtbDoct.getDtbDocImb().isEmpty() && salvaImballiAttiva) { + DtbDoct dtbDoctSave = + entityRet.stream().filter(x -> x instanceof DtbDoct && ((DtbDoct) x).getCodDtip().equals(dtbDoct.getCodDtip())).map(x -> (DtbDoct) x).findFirst().orElse(null); + saveDocImballi(dtbDoctSave, isInsert); } - } else if (gestione.equalsIgnoreCase("V") && - TipoEmissione.valueOf(UtilityHashMap.getValueIfExists(datiTipoDoc, "tipo_emissione")) == TipoEmissione.DIRETTA && - !dtbDoct.getDtbDocImb().isEmpty() && salvaImballiAttiva) { - DtbDoct dtbDoctSave = - entityRet.stream().filter(x -> x instanceof DtbDoct && ((DtbDoct) x).getCodDtip().equals(dtbDoct.getCodDtip())).map(x -> (DtbDoct) x).findFirst().orElse(null); - saveDocImballi(dtbDoctSave, isInsert); + + multiDBTransactionManager.commitAll(); + + return entityRet; + } catch (Exception e) { + multiDBTransactionManager.rollbackAll(); + throw e; } - - multiDBTransactionManager.commitAll(); - - return entityRet; - } private DtbDoct checkUDSForTransfer(DtbDoct dtbDoct, List entityList, boolean isNewDoc) throws Exception {