diff --git a/ems-core/src/main/java/it/integry/ems/migration/model/Migration_20240930110848.java b/ems-core/src/main/java/it/integry/ems/migration/model/Migration_20240930110848.java new file mode 100644 index 0000000000..2f959d24f1 --- /dev/null +++ b/ems-core/src/main/java/it/integry/ems/migration/model/Migration_20240930110848.java @@ -0,0 +1,452 @@ +package it.integry.ems.migration.model; + +import it.integry.ems.migration._base.BaseMigration; +import it.integry.ems.migration._base.IntegryCustomer; +import it.integry.ems.migration._base.IntegryCustomerDB; +import it.integry.ems.migration._base.MigrationModelInterface; +import it.integry.ems_model.entity.*; +import it.integry.ems_model.types.OperationType; + +public class Migration_20240930110848 extends BaseMigration implements MigrationModelInterface { + + @Override + public void up() throws Exception { + if (isHistoryDB() || !isCustomer(IntegryCustomer.Tosca)) + return; + + updateSetupValue("w_dordi_rc", "CREA_COMMESSA", "AUTO_GENERATE","N"); + + if (isCustomerDb(IntegryCustomerDB.Tosca_Cloud)) { + executeStatement("SET IDENTITY_INSERT tosca_cloud.dbo.stb_publications ON;"); + executeStatement("INSERT INTO stb_publications (id, publication_description) VALUES (10, N'Sincronizzazione Anagrafiche');"); + executeStatement("INSERT INTO stb_publications (id, publication_description) VALUES (11, N'Sincronizzazione impegnato (Triggiano)');"); + executeStatement("INSERT INTO stb_publications (id, publication_description) VALUES (12, N'Sincronizzazione impegnato (Caserta)');"); + executeStatement("INSERT INTO stb_publications (id, publication_description) VALUES (13, N'Sincronizzazione impegnato (Catanzaro)');"); + executeStatement("INSERT INTO stb_publications (id, publication_description) VALUES (14, N'Sincronizzazione impegnato (Forlì-Cesena)');"); + executeStatement("INSERT INTO stb_publications (id, publication_description) VALUES (15, N'Sincronizzazione impegnato (Milano)');"); + executeStatement("INSERT INTO stb_publications (id, publication_description) VALUES (16, N'Sincronizzazione impegnato (Ragusa)');"); + executeStatement("INSERT INTO stb_publications (id, publication_description) VALUES (17, N'Sincronizzazione impegnato (Roma)');"); + executeStatement("INSERT INTO stb_publications (id, publication_description) VALUES (18, N'Sincronizzazione impegnato (Verona)');"); + executeStatement("SET IDENTITY_INSERT tosca_cloud.dbo.stb_publications OFF;"); + + // + StbPublications anagPublication = new StbPublications(); + anagPublication + .setId(10L) + .setPublicationDescription("Sincronizzazione Anagrafiche"); + anagPublication.setOperation(OperationType.NO_OP); + + StbPublicationsDetail detailGtbAnag = new StbPublicationsDetail(); + detailGtbAnag + .setActive(true) + .setStbPublicationId(10L) + .setReadyToTransmit(true) + .setEntityName(GtbAnag.ENTITY) + .setExportHistory(false) + .setOperation(OperationType.INSERT); + anagPublication.getStbPublicationsDetails().add(detailGtbAnag); + + StbPublicationsDetail detailVtbDest = new StbPublicationsDetail(); + detailVtbDest.setActive(true) + .setStbPublicationId(10L) + .setReadyToTransmit(true) + .setEntityName(VtbDest.ENTITY) + .setExportHistory(false) + .setOperation(OperationType.INSERT); + anagPublication.getStbPublicationsDetails().add(detailVtbDest); + + StbPublicationsDetail detailMtbDepo = new StbPublicationsDetail(); + detailMtbDepo.setActive(true) + .setStbPublicationId(10L) + .setReadyToTransmit(true) + .setEntityName(MtbDepo.ENTITY) + .setExportHistory(false) + .setOperation(OperationType.INSERT); + anagPublication.getStbPublicationsDetails().add(detailMtbDepo); + + StbPublicationsDetail detailVtbClie = new StbPublicationsDetail(); + detailVtbClie + .setActive(true) + .setStbPublicationId(10L) + .setReadyToTransmit(true) + .setEntityName(VtbClie.ENTITY) + .setExportHistory(false) + .setOperation(OperationType.INSERT); + anagPublication.getStbPublicationsDetails().add(detailVtbClie); + + StbPublicationsDetail detailAtbForn = new StbPublicationsDetail(); + detailAtbForn + .setActive(true) + .setStbPublicationId(10L) + .setEntityName(AtbForn.ENTITY) + .setReadyToTransmit(true) + .setExportHistory(false) + .setOperation(OperationType.INSERT); + anagPublication.getStbPublicationsDetails().add(detailAtbForn); + + anagPublication.manageWithParentConnection(advancedDataSource.getConnection(),droolsDataCompleting); + // + // + StbPublications impegnatoTriggiano = new StbPublications(); + impegnatoTriggiano.setId(11L).setPublicationDescription("Sincronizzazione impegnato (Triggiano)"); + impegnatoTriggiano.setOperation(OperationType.NO_OP); + + StbPublicationsDetail detailDtbOrdtBA = new StbPublicationsDetail(); + detailDtbOrdtBA + .setStbPublicationId(11L) + .setReadyToTransmit(true) + .setEntityName(DtbOrdt.ENTITY) + .setWhereCondField("gestione = 'V' AND codMdep = 'BA'") + .setActive(true) + .setExportHistory(false) + .setOperation(OperationType.INSERT); + impegnatoTriggiano.getStbPublicationsDetails().add(detailDtbOrdtBA); + + + StbPublicationsDetail detailDtbOrdrBA = new StbPublicationsDetail(); + detailDtbOrdrBA + .setStbPublicationId(11L) + .setReadyToTransmit(true) + .setEntityName(DtbOrdr.ENTITY) + .setActive(true) + .setWhereCondField("gestione = 'V' AND codMdep = 'BA'") + .setExportHistory(false) + .setOperation(OperationType.INSERT); + impegnatoTriggiano.getStbPublicationsDetails().add(detailDtbOrdrBA); + impegnatoTriggiano.manageWithParentConnection(advancedDataSource.getConnection()); + // + // + StbPublications impegnatoCaserta = new StbPublications(); + impegnatoCaserta.setId(12L).setPublicationDescription("Sincronizzazione impegnato (Caserta)"); + impegnatoCaserta.setOperation(OperationType.NO_OP); + + StbPublicationsDetail detailDtbOrdtCE = new StbPublicationsDetail(); + detailDtbOrdtCE + .setStbPublicationId(12L) + .setEntityName(DtbOrdt.ENTITY) + .setReadyToTransmit(true) + .setWhereCondField("gestione = 'V' AND codMdep = 'CE'") + .setActive(true) + .setExportHistory(false) + .setOperation(OperationType.INSERT); + impegnatoCaserta.getStbPublicationsDetails().add(detailDtbOrdtCE); + + + StbPublicationsDetail detailDtbOrdrCE = new StbPublicationsDetail(); + detailDtbOrdrCE + .setStbPublicationId(12L) + .setEntityName(DtbOrdr.ENTITY) + .setReadyToTransmit(true) + .setActive(true) + .setWhereCondField("gestione = 'V' AND codMdep = 'CE'") + .setExportHistory(false) + .setOperation(OperationType.INSERT); + impegnatoCaserta.getStbPublicationsDetails().add(detailDtbOrdrCE); + impegnatoCaserta.manageWithParentConnection(advancedDataSource.getConnection()); + // + // + StbPublications impegnatoCatanzaro = new StbPublications(); + impegnatoCatanzaro.setId(13L).setPublicationDescription("Sincronizzazione impegnato (Catanzaro)"); + impegnatoCatanzaro.setOperation(OperationType.NO_OP); + + StbPublicationsDetail detailDtbOrdtCZ = new StbPublicationsDetail(); + detailDtbOrdtCZ + .setStbPublicationId(13L) + .setReadyToTransmit(true) + .setEntityName(DtbOrdt.ENTITY) + .setWhereCondField("gestione = 'V' AND codMdep = 'CZ'") + .setActive(true) + .setExportHistory(false) + .setOperation(OperationType.INSERT); + impegnatoCatanzaro.getStbPublicationsDetails().add(detailDtbOrdtCZ); + + + StbPublicationsDetail detailDtbOrdrCZ = new StbPublicationsDetail(); + detailDtbOrdrCZ + .setStbPublicationId(13L) + .setReadyToTransmit(true) + .setEntityName(DtbOrdr.ENTITY) + .setActive(true) + .setWhereCondField("gestione = 'V' AND codMdep = 'CZ'") + .setExportHistory(false) + .setOperation(OperationType.INSERT); + impegnatoCatanzaro.getStbPublicationsDetails().add(detailDtbOrdrCZ); + impegnatoCatanzaro.manageWithParentConnection(advancedDataSource.getConnection()); + // + // + StbPublications impegnatoFC = new StbPublications(); + impegnatoFC.setId(14L).setPublicationDescription("Sincronizzazione impegnato (Forlì-Cesena)"); + impegnatoFC.setOperation(OperationType.NO_OP); + + StbPublicationsDetail detailDtbOrdtFC = new StbPublicationsDetail(); + detailDtbOrdtFC + .setStbPublicationId(14L) + .setReadyToTransmit(true) + .setEntityName(DtbOrdt.ENTITY) + .setWhereCondField("gestione = 'V' AND codMdep = 'FC'") + .setActive(true) + .setExportHistory(false) + .setOperation(OperationType.INSERT); + impegnatoFC.getStbPublicationsDetails().add(detailDtbOrdtFC); + + + StbPublicationsDetail detailDtbOrdrFC = new StbPublicationsDetail(); + detailDtbOrdrFC + .setStbPublicationId(14L) + .setReadyToTransmit(true) + .setEntityName(DtbOrdr.ENTITY) + .setActive(true) + .setWhereCondField("gestione = 'V' AND codMdep = 'FC'") + .setExportHistory(false) + .setOperation(OperationType.INSERT); + impegnatoFC.getStbPublicationsDetails().add(detailDtbOrdrFC); + impegnatoFC.manageWithParentConnection(advancedDataSource.getConnection()); + // + // + StbPublications impegnatoMI = new StbPublications(); + impegnatoMI.setId(15L).setPublicationDescription("Sincronizzazione impegnato (Milano)"); + impegnatoMI.setOperation(OperationType.NO_OP); + + StbPublicationsDetail detailDtbOrdtMI = new StbPublicationsDetail(); + detailDtbOrdtMI + .setStbPublicationId(15L) + .setReadyToTransmit(true) + .setEntityName(DtbOrdt.ENTITY) + .setWhereCondField("gestione = 'V' AND codMdep = 'MI'") + .setActive(true) + .setExportHistory(false) + .setOperation(OperationType.INSERT); + impegnatoMI.getStbPublicationsDetails().add(detailDtbOrdtMI); + + + StbPublicationsDetail detailDtbOrdrMI = new StbPublicationsDetail(); + detailDtbOrdrMI + .setStbPublicationId(15L) + .setReadyToTransmit(true) + .setEntityName(DtbOrdr.ENTITY) + .setActive(true) + .setWhereCondField("gestione = 'V' AND codMdep = 'MI'") + .setExportHistory(false) + .setOperation(OperationType.INSERT); + impegnatoMI.getStbPublicationsDetails().add(detailDtbOrdrMI); + impegnatoMI.manageWithParentConnection(advancedDataSource.getConnection()); + // + // + StbPublications impegnatoRG = new StbPublications(); + impegnatoRG.setId(16L).setPublicationDescription("Sincronizzazione impegnato (Ragusa)"); + impegnatoRG.setOperation(OperationType.NO_OP); + + StbPublicationsDetail detailDtbOrdtRG = new StbPublicationsDetail(); + detailDtbOrdtRG + .setStbPublicationId(16L) + .setReadyToTransmit(true) + .setEntityName(DtbOrdt.ENTITY) + .setWhereCondField("gestione = 'V' AND codMdep = 'RG'") + .setActive(true) + .setExportHistory(false) + .setOperation(OperationType.INSERT); + impegnatoRG.getStbPublicationsDetails().add(detailDtbOrdtRG); + + + StbPublicationsDetail detailDtbOrdrRG = new StbPublicationsDetail(); + detailDtbOrdrRG + .setStbPublicationId(16L) + .setReadyToTransmit(true) + .setEntityName(DtbOrdr.ENTITY) + .setActive(true) + .setWhereCondField("gestione = 'V' AND codMdep = 'RG'") + .setExportHistory(false) + .setOperation(OperationType.INSERT); + impegnatoRG.getStbPublicationsDetails().add(detailDtbOrdrRG); + impegnatoRG.manageWithParentConnection(advancedDataSource.getConnection()); + // + // + StbPublications impegnatoRoma = new StbPublications(); + impegnatoRoma.setId(17L).setPublicationDescription("Sincronizzazione impegnato (Roma)"); + impegnatoRoma.setOperation(OperationType.NO_OP); + + StbPublicationsDetail detailDtbOrdtRM = new StbPublicationsDetail(); + detailDtbOrdtRM + .setStbPublicationId(17L) + .setReadyToTransmit(true) + .setEntityName(DtbOrdt.ENTITY) + .setWhereCondField("gestione = 'V' AND codMdep = 'RM'") + .setActive(true) + .setExportHistory(false) + .setOperation(OperationType.INSERT); + impegnatoRoma.getStbPublicationsDetails().add(detailDtbOrdtRM); + + StbPublicationsDetail detailDtbOrdrRM = new StbPublicationsDetail(); + detailDtbOrdrRM + .setStbPublicationId(17L) + .setReadyToTransmit(true) + .setEntityName(DtbOrdr.ENTITY) + .setActive(true) + .setWhereCondField("gestione = 'V' AND codMdep = 'RM'") + .setExportHistory(false) + .setOperation(OperationType.INSERT); + impegnatoRoma.getStbPublicationsDetails().add(detailDtbOrdrRM); + impegnatoRoma.manageWithParentConnection(advancedDataSource.getConnection()); + // + // + StbPublications impegnatoVR = new StbPublications(); + impegnatoVR.setId(18L).setPublicationDescription("Sincronizzazione impegnato (Verona)"); + impegnatoVR.setOperation(OperationType.NO_OP); + + StbPublicationsDetail detailDtbOrdtVR = new StbPublicationsDetail(); + detailDtbOrdtVR + .setStbPublicationId(18L) + .setReadyToTransmit(true) + .setEntityName(DtbOrdt.ENTITY) + .setWhereCondField("gestione = 'V' AND codMdep = 'VR'") + .setActive(true) + .setExportHistory(false) + .setOperation(OperationType.INSERT); + impegnatoVR.getStbPublicationsDetails().add(detailDtbOrdtVR); + + + StbPublicationsDetail detailDtbOrdrVR = new StbPublicationsDetail(); + detailDtbOrdrVR + .setStbPublicationId(18L) + .setReadyToTransmit(true) + .setEntityName(DtbOrdr.ENTITY) + .setActive(true) + .setWhereCondField("gestione = 'V' AND codMdep = 'VR'") + .setExportHistory(false) + .setOperation(OperationType.INSERT); + impegnatoVR.getStbPublicationsDetails().add(detailDtbOrdrVR); + impegnatoVR.manageWithParentConnection(advancedDataSource.getConnection()); + // + } else { + // + StbRemoteSubscription anagSubscription = new StbRemoteSubscription(); + anagSubscription + .setActive(true) + .setPublicationId(10L) + .setPublicationDescription("Sincronizzazione anagrafiche clienti/fornitori") + .setEndpointProtocol("HTTP") + .setEndpointHost("4.232.161.31") + .setEndpointPort(8080) + .setUsernameField("dba") + .setPassword("sql") + .setProfileDb("TOSCA_CLOUD") + .setOperation(OperationType.INSERT); + anagSubscription.manageWithParentConnection(advancedDataSource.getConnection()); + ; + // + + if (isCustomerDb(IntegryCustomerDB.Tosca_Ba)) { + StbRemoteSubscription syncImpegnatoBa = new StbRemoteSubscription(); + syncImpegnatoBa.setActive(true) + .setPublicationId(11L) + .setProfileDb("TOSCA_CLOUD") + .setPublicationDescription("Sincronizzazione impengato (Ba)") + .setEndpointProtocol("HTTP") + .setEndpointHost("4.232.161.31") + .setEndpointPort(8080) + .setUsernameField("dba") + .setPassword("sql") + .setOperation(OperationType.INSERT); + syncImpegnatoBa.manageWithParentConnection(advancedDataSource.getConnection()); + } else if (isCustomerDb(IntegryCustomerDB.Tosca_Ce)) { + StbRemoteSubscription syncImpegnatoCe = new StbRemoteSubscription(); + syncImpegnatoCe.setActive(true) + .setPublicationId(12L) + .setProfileDb("TOSCA_CLOUD") + .setPublicationDescription("Sincronizzazione impengato (Caserta)") + .setEndpointProtocol("HTTP") + .setEndpointHost("4.232.161.31") + .setEndpointPort(8080) + .setUsernameField("dba") + .setPassword("sql") + .setOperation(OperationType.INSERT); + syncImpegnatoCe.manageWithParentConnection(advancedDataSource.getConnection()); + } else if (isCustomerDb(IntegryCustomerDB.Tosca_Cz)) { + StbRemoteSubscription syncImpegnatoCz = new StbRemoteSubscription(); + syncImpegnatoCz.setActive(true) + .setPublicationId(13L) + .setProfileDb("TOSCA_CLOUD") + .setPublicationDescription("Sincronizzazione impengato (Catanzaro)") + .setEndpointProtocol("HTTP") + .setEndpointHost("4.232.161.31") + .setEndpointPort(8080) + .setUsernameField("dba") + .setPassword("sql") + .setOperation(OperationType.INSERT); + syncImpegnatoCz.manageWithParentConnection(advancedDataSource.getConnection()); + } else if (isCustomerDb(IntegryCustomerDB.Tosca_Fc)) { + StbRemoteSubscription syncImpegnatoFc = new StbRemoteSubscription(); + syncImpegnatoFc.setActive(true) + .setPublicationId(14L) + .setProfileDb("TOSCA_CLOUD") + .setPublicationDescription("Sincronizzazione impengato (Forlì-Cesena)") + .setEndpointProtocol("HTTP") + .setEndpointHost("4.232.161.31") + .setEndpointPort(8080) + .setUsernameField("dba") + .setPassword("sql") + .setOperation(OperationType.INSERT); + syncImpegnatoFc.manageWithParentConnection(advancedDataSource.getConnection()); + } else if (isCustomerDb(IntegryCustomerDB.Tosca_Mi)) { + StbRemoteSubscription syncImpegnatoMi = new StbRemoteSubscription(); + syncImpegnatoMi.setActive(true) + .setPublicationId(15L) + .setProfileDb("TOSCA_CLOUD") + .setPublicationDescription("Sincronizzazione impengato (Milano)") + .setEndpointProtocol("HTTP") + .setEndpointHost("4.232.161.31") + .setEndpointPort(8080) + .setUsernameField("dba") + .setPassword("sql") + .setOperation(OperationType.INSERT); + syncImpegnatoMi.manageWithParentConnection(advancedDataSource.getConnection()); + } else if (isCustomerDb(IntegryCustomerDB.Tosca_Rg)) { + StbRemoteSubscription syncImpegnatoRg = new StbRemoteSubscription(); + syncImpegnatoRg.setActive(true) + .setPublicationId(16L) + .setProfileDb("TOSCA_CLOUD") + .setPublicationDescription("Sincronizzazione impengato (Ragusa)") + .setEndpointProtocol("HTTP") + .setEndpointHost("4.232.161.31") + .setEndpointPort(8080) + .setUsernameField("dba") + .setPassword("sql") + .setOperation(OperationType.INSERT); + syncImpegnatoRg.manageWithParentConnection(advancedDataSource.getConnection()); + } else if (isCustomerDb(IntegryCustomerDB.Tosca_Rm)) { + StbRemoteSubscription syncImpegnatoRm = new StbRemoteSubscription(); + syncImpegnatoRm.setActive(true) + .setPublicationId(17L) + .setProfileDb("TOSCA_CLOUD") + .setPublicationDescription("Sincronizzazione impengato (Roma)") + .setEndpointProtocol("HTTP") + .setEndpointHost("4.232.161.31") + .setEndpointPort(8080) + .setUsernameField("dba") + .setPassword("sql") + .setOperation(OperationType.INSERT); + syncImpegnatoRm.manageWithParentConnection(advancedDataSource.getConnection()); + } else if (isCustomerDb(IntegryCustomerDB.Tosca_Vr)) { + StbRemoteSubscription syncImpegnatoVr = new StbRemoteSubscription(); + syncImpegnatoVr.setActive(true) + .setPublicationId(18L) + .setProfileDb("TOSCA_CLOUD") + .setPublicationDescription("Sincronizzazione impengato (Verona)") + .setEndpointProtocol("HTTP") + .setEndpointHost("4.232.161.31") + .setEndpointPort(8080) + .setUsernameField("dba") + .setPassword("sql") + .setOperation(OperationType.INSERT); + syncImpegnatoVr.manageWithParentConnection(advancedDataSource.getConnection()); + } + } + + } + + @Override + public void down() throws Exception { + + } + +} diff --git a/ems-core/src/main/java/it/integry/ems/migration/model/Migration_20241001133030.java b/ems-core/src/main/java/it/integry/ems/migration/model/Migration_20241001133030.java new file mode 100644 index 0000000000..52c4e8379d --- /dev/null +++ b/ems-core/src/main/java/it/integry/ems/migration/model/Migration_20241001133030.java @@ -0,0 +1,25 @@ +package it.integry.ems.migration.model; + +import it.integry.ems.migration._base.BaseMigration; +import it.integry.ems.migration._base.IntegryCustomer; +import it.integry.ems.migration._base.MigrationModelInterface; + +public class Migration_20241001133030 extends BaseMigration implements MigrationModelInterface { + + @Override + public void up() throws Exception { + if (isHistoryDB()) + return; + + + if (isCustomer(IntegryCustomer.Tosca)) + updateSetupValue("PICKING","SPEDIZIONE","FLAG_CAN_ADD_EXTRA_ITEMS","S"); + + } + + @Override + public void down() throws Exception { + + } + +} \ No newline at end of file diff --git a/ems-core/src/main/java/it/integry/ems/sync/AsyncManager.java b/ems-core/src/main/java/it/integry/ems/sync/AsyncManager.java index b4211ad2fe..22264a81e2 100644 --- a/ems-core/src/main/java/it/integry/ems/sync/AsyncManager.java +++ b/ems-core/src/main/java/it/integry/ems/sync/AsyncManager.java @@ -12,9 +12,7 @@ import it.integry.ems_model.base.EntityBase; import it.integry.ems_model.entity.StbPublicationsDetail; import it.integry.ems_model.entity.StbTransactionLog; import it.integry.ems_model.types.OperationType; -import it.integry.ems_model.utility.UtilityDB; -import it.integry.ems_model.utility.UtilityLocalDate; -import it.integry.ems_model.utility.UtilityString; +import it.integry.ems_model.utility.*; import org.apache.logging.log4j.LogManager; import org.apache.logging.log4j.Logger; import org.josql.Query; @@ -100,35 +98,37 @@ public class AsyncManager { return 0; String tableName = entityBase.getTableName().toUpperCase(); - StbPublicationsDetail activePublication = cachedSetup.get(dbName).stream() + List activePublications = cachedSetup.get(dbName).stream() .filter(x -> x.getEntityName().equalsIgnoreCase(tableName)) - .findFirst() - .orElse(null); + .collect(Collectors.toList()); - if (activePublication == null) + if (UtilityList.isNullOrEmpty(activePublications)) return 0; //logger.debug("SYNC OFFLINE ABILITATA SU " + tableName); - List myObjs = new ArrayList<>(); - myObjs.add(entityBase); + for (StbPublicationsDetail activePublication : activePublications){ + List myObjs = new ArrayList<>(); + myObjs.add(entityBase); - String selectSql = "SELECT * FROM " + entityBase.getClass().getCanonicalName(); - if (!UtilityString.isNullOrEmpty(activePublication.getWhereCondField())) { - selectSql = selectSql + " WHERE " + activePublication.getWhereCondField(); + String selectSql = "SELECT * FROM " + entityBase.getClass().getCanonicalName(); + if (!UtilityString.isNullOrEmpty(activePublication.getWhereCondField())) { + selectSql = selectSql + " WHERE " + activePublication.getWhereCondField(); + } + + // Create a new Query. + Query q = new Query(); + q.parse(selectSql); + + QueryResults qr = q.execute(myObjs); + List res = qr.getResults(); + + if (res == null || res.isEmpty()) + continue; + + return activePublication.getStbPublicationId(); } - - // Create a new Query. - Query q = new Query(); - q.parse(selectSql); - - QueryResults qr = q.execute(myObjs); - List res = qr.getResults(); - - if (res == null || res.isEmpty()) - return 0; - - return activePublication.getStbPublicationId(); + return 0; } @@ -165,7 +165,7 @@ public class AsyncManager { Long tmpTransactionGroupId = UtilityDB.executeSimpleQueryOnlyFirstRowFirstColumn( connection, "SELECT MAX(group_id) AS max_id FROM " + StbTransactionLog.ENTITY); - tmpTransactionGroupId = tmpTransactionGroupId != 0 ? tmpTransactionGroupId : 0L; + tmpTransactionGroupId = UtilityLong.isNull(tmpTransactionGroupId,0L); transactionGroupId = Math.max(maxToBeProcessed, tmpTransactionGroupId); } else { diff --git a/ems-core/src/main/java/it/integry/ems_model/base/EntityBase.java b/ems-core/src/main/java/it/integry/ems_model/base/EntityBase.java index a6c9edc322..19f0f6448d 100644 --- a/ems-core/src/main/java/it/integry/ems_model/base/EntityBase.java +++ b/ems-core/src/main/java/it/integry/ems_model/base/EntityBase.java @@ -943,8 +943,10 @@ public abstract class EntityBase implements Serializable, Cloneable, EntityInter for (EntityBase entityChild : (List) entityChildRef) { entityChild.setOnlyPkMaster(false); } - } else - ((EntityBase) entityChildRef).setOnlyPkMaster(false); + } else { + if (entityChildRef != null) + ((EntityBase) entityChildRef).setOnlyPkMaster(false); + } } transactionGroupId = AsyncManager.saveNewTransaction(connection, dbName, clonedEntity, publicationId, transactionGroupId); diff --git a/ems-core/src/main/java/it/integry/ems_model/utility/UtilityLong.java b/ems-core/src/main/java/it/integry/ems_model/utility/UtilityLong.java new file mode 100644 index 0000000000..dd94d302db --- /dev/null +++ b/ems-core/src/main/java/it/integry/ems_model/utility/UtilityLong.java @@ -0,0 +1,17 @@ +package it.integry.ems_model.utility; + +public class UtilityLong { + public static Long isNull(Long valOrig, Long valDef) { + return valOrig==null?valDef:valOrig; + } + + public static boolean isNullOrZero(Long numCollo) { + return numCollo == null || numCollo == 0; + } + + public static Long stringToLong(String str) { + if (!UtilityString.isNullOrEmpty(str)) { return Long.parseLong(str); } + + return null; + } +} diff --git a/ems-engine/src/main/java/it/integry/ems/customizations/sales/service/ToscaSalesService.java b/ems-engine/src/main/java/it/integry/ems/customizations/sales/service/ToscaSalesService.java index d95fd377ed..933276fd13 100644 --- a/ems-engine/src/main/java/it/integry/ems/customizations/sales/service/ToscaSalesService.java +++ b/ems-engine/src/main/java/it/integry/ems/customizations/sales/service/ToscaSalesService.java @@ -36,19 +36,11 @@ public class ToscaSalesService { private EntityProcessor entityProcessor; - public void importOrdiniLavorazione() { - - } - public void importOrdiniVendita(MultipartFile file) throws Exception { InputStream inputStream = file.getInputStream(); List ordiniDaImportare = parseFile(inputStream); - List invalidDates = ordiniDaImportare.stream().map(ToscaOrdineVenditaDTO::getDateTransaction).distinct().filter(d -> d.before(UtilityDate.getStartOfDay(new Date()))).collect(Collectors.toList()); - if (!UtilityList.isNullOrEmpty(invalidDates)) - throw new Exception("Caricare l'impegnato per giorni passati non è consentito"); - importAnagrafiche(ordiniDaImportare); Map> ordini = ordiniDaImportare.stream().collect(Collectors.groupingBy(ToscaOrdineVenditaDTO::getTransactionNumber));