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));