diff --git a/ems-core/src/main/java/it/integry/ems/migration/_base/BaseMigration.java b/ems-core/src/main/java/it/integry/ems/migration/_base/BaseMigration.java index f7b6a8c2a1..73053f07cd 100644 --- a/ems-core/src/main/java/it/integry/ems/migration/_base/BaseMigration.java +++ b/ems-core/src/main/java/it/integry/ems/migration/_base/BaseMigration.java @@ -177,7 +177,7 @@ public abstract class BaseMigration implements MigrationModelInterface { } - protected void cloneTable(String sourceTable, String newTable,boolean fillNewTable, boolean dropOldTable, boolean renameNewTable) throws Exception { + protected void cloneTable(String sourceTable, String newTable, boolean fillNewTable, boolean dropOldTable, boolean renameNewTable) throws Exception { UtilityDB.cloneTable(connection, sourceTable, newTable, fillNewTable, dropOldTable, renameNewTable); } @@ -423,6 +423,25 @@ public abstract class BaseMigration implements MigrationModelInterface { } } + protected String getSetupValue(String gestName, String section, String keySection) throws SQLException { + String sql = Query.format("SELECT value FROM " + StbGestSetup.ENTITY + + " WHERE gest_name = %s AND" + + " section = %s AND" + + " key_section = %s", gestName, section, keySection); + + return UtilityDB.executeSimpleQueryOnlyFirstRowFirstColumn(connection, sql); + } + + //Create a getStbGestSetup method to return the entire StbGestSetup object + protected StbGestSetup getStbGestSetup(String gestName, String section, String keySection) throws SQLException, DataConverterNotFoundException, InstantiationException, IllegalAccessException { + String sql = Query.format("SELECT * FROM stb_gest_setup " + + " WHERE gest_name = %s AND" + + " section = %s AND" + + " key_section = %s", gestName, section, keySection); + + return UtilityDB.executeSimpleQueryOnlyFirstRowDTO(connection, sql, StbGestSetup.class); + } + protected void deleteSetup(String gestName, String section, String keySection) throws Exception { StbGestSetup stbGestSetup = new StbGestSetup() .setGestName(gestName) diff --git a/ems-core/src/main/java/it/integry/ems/migration/model/Migration_20251205173303.java b/ems-core/src/main/java/it/integry/ems/migration/model/Migration_20251205173303.java new file mode 100644 index 0000000000..89372a95ce --- /dev/null +++ b/ems-core/src/main/java/it/integry/ems/migration/model/Migration_20251205173303.java @@ -0,0 +1,38 @@ +package it.integry.ems.migration.model; + +import it.integry.ems.migration._base.BaseMigration; +import it.integry.ems.migration._base.MigrationModelInterface; +import it.integry.ems_model.entity.StbGestSetup; + +public class Migration_20251205173303 extends BaseMigration implements MigrationModelInterface { + + @Override + public void up() throws Exception { + if (isHistoryDB()) + return; + + + StbGestSetup setupMovimentoFiscale = getStbGestSetup("PICKING", "RETTIFICA_GIACENZE", "TIPO_MOVIMENTO_FISCALE"); + + deleteSetup("PICKING", "RETTIFICA_GIACENZE", "TIPO_MOVIMENTO_FISCALE"); + + createSetup(setupMovimentoFiscale.getGestName(), + setupMovimentoFiscale.getSection(), + setupMovimentoFiscale.getKeySection() + "_CAR", + setupMovimentoFiscale.getValue(), + setupMovimentoFiscale.getDescription(), + setupMovimentoFiscale.getQueryDefault()); + + + createSetup(setupMovimentoFiscale.getGestName(), + setupMovimentoFiscale.getSection(), + setupMovimentoFiscale.getKeySection() + "_SCAR", + setupMovimentoFiscale.getValue(), + setupMovimentoFiscale.getDescription(), + setupMovimentoFiscale.getQueryDefault()); + } + + @Override + public void down() throws Exception { + } +} \ No newline at end of file diff --git a/ems-engine/src/main/java/it/integry/ems/retail/wms/generic/service/WMSGenericService.java b/ems-engine/src/main/java/it/integry/ems/retail/wms/generic/service/WMSGenericService.java index acdace57c8..4e3d4d5854 100644 --- a/ems-engine/src/main/java/it/integry/ems/retail/wms/generic/service/WMSGenericService.java +++ b/ems-engine/src/main/java/it/integry/ems/retail/wms/generic/service/WMSGenericService.java @@ -1256,10 +1256,16 @@ public class WMSGenericService { DtbDoct dtbDoctInv = null; if (shouldCreateMovimentoFiscale && isDocumentAttached) { - String codDtipToUse = setupGest.getSetup(multiDBTransactionManager.getPrimaryConnection(), "PICKING", "RETTIFICA_GIACENZE", "TIPO_MOVIMENTO_FISCALE"); + String codDtipToUse = null; + + if (isPositiveUpdate) + codDtipToUse = setupGest.getSetup(multiDBTransactionManager.getPrimaryConnection(), "PICKING", "RETTIFICA_GIACENZE", "TIPO_MOVIMENTO_FISCALE_CAR"); + else + codDtipToUse = setupGest.getSetup(multiDBTransactionManager.getPrimaryConnection(), "PICKING", "RETTIFICA_GIACENZE", "TIPO_MOVIMENTO_FISCALE_SCAR"); if (UtilityString.isNullOrEmpty(codDtipToUse)) - throw new Exception("Per poter generare il movimento fiscale è necessario configurare anche la setup TIPO_MOVIMENTO_FISCALE"); + throw new Exception("Per poter generare il movimento fiscale è necessario configurare la setup PICKING > RETTIFICA_GIACENZE > TIPO_MOVIMENTO_FISCALE" + + (isPositiveUpdate ? "_CAR" : "_SCAR")); String sqlCheckDocExists = Query.format("SELECT TOP 1 cod_anag, cod_dtip, ser_doc, data_doc, num_doc " + @@ -1587,13 +1593,13 @@ public class WMSGenericService { mtbColtToInsert = WMSUtility.createUDSLavorazioneMovement(multiDBTransactionManager, new CreateUDSRequestDTO() .setCausaleCollo(CreateUDSRequestDTO.Causale.SCARICO) - .setCodMdep(codMdep) - .setCodJfas(codJfas == null ? scaricoMateriaPrimaDTO.getCodJfas() : codJfas) - .setPosizione(scaricoMateriaPrimaDTO.getPosizione()) + .setCodMdep(codMdep) + .setCodJfas(codJfas == null ? scaricoMateriaPrimaDTO.getCodJfas() : codJfas) + .setPosizione(scaricoMateriaPrimaDTO.getPosizione()) .setCodAnag(codAnag) .setOrders(Collections.singletonList(new CreateUDSRequestOrderDTO() - .setDataOrd(scaricoMateriaPrimaDTO.getDataOrd()) - .setNumOrd(scaricoMateriaPrimaDTO.getNumOrd()) + .setDataOrd(scaricoMateriaPrimaDTO.getDataOrd()) + .setNumOrd(scaricoMateriaPrimaDTO.getNumOrd()) .setGestione(scaricoMateriaPrimaDTO.getGestioneOrd()))), userSession.getUsername()); } @@ -1632,13 +1638,13 @@ public class WMSGenericService { final InsertUDSRowResponseDTO insertedUds = WMSUtility.insertUDSLavorazioneRowMovement(multiDBTransactionManager.getPrimaryConnection(), new InsertUDSRowRequestDTO() .setTargetMtbColt(mtbColtToInsert) - .setCodMart(giacInPosizioneItem.getCodMart()) - .setCodJcom(giacInPosizioneItem.getCodJcom()) - .setNumOrd(scaricoMateriaPrimaDTO.getNumOrd()) - .setDataOrd(scaricoMateriaPrimaDTO.getDataOrd()) - .setRigaOrd(giacInPosizioneItem.getRigaOrd()) + .setCodMart(giacInPosizioneItem.getCodMart()) + .setCodJcom(giacInPosizioneItem.getCodJcom()) + .setNumOrd(scaricoMateriaPrimaDTO.getNumOrd()) + .setDataOrd(scaricoMateriaPrimaDTO.getDataOrd()) + .setRigaOrd(giacInPosizioneItem.getRigaOrd()) .setQtaTot(qtaToTake) - .setPartitaMag(giacInPosizioneItem.getPartitaMag()) + .setPartitaMag(giacInPosizioneItem.getPartitaMag()) .setSourceMtbColr(WMSUtility.convertMvwItemToMtbColr(giacInPosizioneItem)) .setDatetimeRow(UtilityLocalDate.getNowTime()), userSession.getUsername()); @@ -1732,9 +1738,9 @@ public class WMSGenericService { MtbColt mtbColt = mtbColtsToInsert .stream() .filter(x -> scaricoDaOrdine.getDataOrd().equals(x.getDataOrd()) && - scaricoDaOrdine.getNumOrd().equals(x.getNumOrd()) && - scaricoDaOrdine.getGestioneOrd().equals(x.getGestione()) && - giacenza.getPosizione().equals(x.getPosizione()) && + scaricoDaOrdine.getNumOrd().equals(x.getNumOrd()) && + scaricoDaOrdine.getGestioneOrd().equals(x.getGestione()) && + giacenza.getPosizione().equals(x.getPosizione()) && (codJfasScarico != null && codJfasScarico.equalsIgnoreCase(x.getCodJfas()))) .findFirst() .orElse(null); @@ -1761,14 +1767,14 @@ public class WMSGenericService { } else { mtbColt = WMSUtility.createUDSLavorazioneMovement(multiDBTransactionManager, new CreateUDSRequestDTO() - .setCodMdep(codMdep) - .setCodJfas(codJfasScarico) - .setPosizione(giacenza.getPosizione()) + .setCodMdep(codMdep) + .setCodJfas(codJfasScarico) + .setPosizione(giacenza.getPosizione()) .setCodAnag(codAnag) .setCausaleCollo(CreateUDSRequestDTO.Causale.SCARICO) .setOrders(Collections.singletonList(new CreateUDSRequestOrderDTO() - .setDataOrd(scaricoDaOrdine.getDataOrd()) - .setNumOrd(scaricoDaOrdine.getNumOrd()) + .setDataOrd(scaricoDaOrdine.getDataOrd()) + .setNumOrd(scaricoDaOrdine.getNumOrd()) .setGestione(scaricoDaOrdine.getGestioneOrd()))), userSession.getUsername()); } @@ -1788,13 +1794,13 @@ public class WMSGenericService { WMSUtility.insertUDSLavorazioneRowMovement(multiDBTransactionManager.getPrimaryConnection(), new InsertUDSRowRequestDTO() .setTargetMtbColt(mtbColt) - .setCodMart(giacenza.getCodMart()) - .setCodJcom(giacenza.getCodJcom()) - .setNumOrd(scaricoDaOrdine.getNumOrd()) - .setDataOrd(scaricoDaOrdine.getDataOrd()) - .setRigaOrd(giacenza.getRigaOrd()) + .setCodMart(giacenza.getCodMart()) + .setCodJcom(giacenza.getCodJcom()) + .setNumOrd(scaricoDaOrdine.getNumOrd()) + .setDataOrd(scaricoDaOrdine.getDataOrd()) + .setRigaOrd(giacenza.getRigaOrd()) .setQtaTot(qtaToTake) - .setPartitaMag(giacenza.getPartitaMag()) + .setPartitaMag(giacenza.getPartitaMag()) .setSourceMtbColr(WMSUtility.convertMvwItemToMtbColr(giacenza)) .setDatetimeRow(UtilityLocalDate.getNowTime()), userSession.getUsername());