diff --git a/ems-core/src/main/java/it/integry/ems/migration/model/Migration_20251114150912.java b/ems-core/src/main/java/it/integry/ems/migration/model/Migration_20251114150912.java new file mode 100644 index 0000000000..1615692ad9 --- /dev/null +++ b/ems-core/src/main/java/it/integry/ems/migration/model/Migration_20251114150912.java @@ -0,0 +1,19 @@ +package it.integry.ems.migration.model; + +import it.integry.ems.migration._base.BaseMigration; +import it.integry.ems.migration._base.MigrationModelInterface; + +public class Migration_20251114150912 extends BaseMigration implements MigrationModelInterface { + + @Override + public void up() throws Exception { + if (isHistoryDB()) + return; + + executeStatement("ALTER TABLE jtb_comt ADD data_mod DATETIME"); + } + + @Override + public void down() throws Exception { + } +} \ No newline at end of file diff --git a/ems-core/src/main/java/it/integry/ems/migration/model/Migration_20251114163222.java b/ems-core/src/main/java/it/integry/ems/migration/model/Migration_20251114163222.java new file mode 100644 index 0000000000..fd6a5efcc8 --- /dev/null +++ b/ems-core/src/main/java/it/integry/ems/migration/model/Migration_20251114163222.java @@ -0,0 +1,21 @@ +package it.integry.ems.migration.model; + +import it.integry.ems.migration._base.BaseMigration; +import it.integry.ems.migration._base.MigrationModelInterface; + +public class Migration_20251114163222 extends BaseMigration implements MigrationModelInterface { + + @Override + public void up() throws Exception { + if (isHistoryDB()) + return; + + executeStatement("ALTER TABLE vtb_dest ADD data_mod DATETIME"); + executeStatement("ALTER TABLE ptb_pros ADD data_mod DATETIME"); + executeStatement("ALTER TABLE ptb_pros_rif ADD data_mod DATETIME"); + } + + @Override + public void down() throws Exception { + } +} \ No newline at end of file diff --git a/ems-core/src/main/java/it/integry/ems_model/entity/JtbComt.java b/ems-core/src/main/java/it/integry/ems_model/entity/JtbComt.java index 82efb2be9d..9661ad580d 100644 --- a/ems-core/src/main/java/it/integry/ems_model/entity/JtbComt.java +++ b/ems-core/src/main/java/it/integry/ems_model/entity/JtbComt.java @@ -6,6 +6,7 @@ import it.integry.ems_model.annotation.*; import it.integry.ems_model.base.EntityBase; import org.kie.api.definition.type.PropertyReactive; import java.math.BigDecimal; +import java.time.LocalDateTime; import java.util.Date; import java.util.List; import java.util.ArrayList; @@ -132,6 +133,9 @@ public class JtbComt extends EntityBase { @SqlField(value = "rif_comm", maxLength = 255) private String rifComm; + @SqlField(value = "data_mod", defaultObjectValue = CommonConstants.TIMESTAMP) + private LocalDateTime dataMod; + @EntityChild private List jrlDisOrd = new ArrayList<>(); @@ -468,6 +472,15 @@ public class JtbComt extends EntityBase { this.rifComm = rifComm; } + public LocalDateTime getDataMod() { + return dataMod; + } + + public JtbComt setDataMod(LocalDateTime dataMod) { + this.dataMod = dataMod; + return this; + } + public List getJrlDisOrd() { return jrlDisOrd; } diff --git a/ems-core/src/main/java/it/integry/ems_model/entity/PtbPros.java b/ems-core/src/main/java/it/integry/ems_model/entity/PtbPros.java index 2fa4e8dace..af649768a8 100644 --- a/ems-core/src/main/java/it/integry/ems_model/entity/PtbPros.java +++ b/ems-core/src/main/java/it/integry/ems_model/entity/PtbPros.java @@ -6,6 +6,7 @@ import it.integry.ems_model.annotation.*; import it.integry.ems_model.base.EntityBase; import org.kie.api.definition.type.PropertyReactive; import java.math.BigDecimal; +import java.time.LocalDateTime; import java.util.Date; import java.util.List; import java.util.ArrayList; @@ -153,6 +154,9 @@ public class PtbPros extends EntityBase { @SqlField(value = "flag_stato_pros", nullable = false, defaultObjectValue = "1") private Boolean flagStatoPros; + @SqlField(value = "data_mod", defaultObjectValue = CommonConstants.TIMESTAMP) + private LocalDateTime dataMod; + @EntityChild private List ptbProsRif = new ArrayList<>(); @@ -558,6 +562,15 @@ public class PtbPros extends EntityBase { this.flagStatoPros = flagStatoPros; } + public LocalDateTime getDataMod() { + return dataMod; + } + + public PtbPros setDataMod(LocalDateTime dataMod) { + this.dataMod = dataMod; + return this; + } + public List getPtbDest() { return ptbDest; } diff --git a/ems-core/src/main/java/it/integry/ems_model/entity/PtbProsRif.java b/ems-core/src/main/java/it/integry/ems_model/entity/PtbProsRif.java index 3c051dd2ac..22f7bdeeb8 100644 --- a/ems-core/src/main/java/it/integry/ems_model/entity/PtbProsRif.java +++ b/ems-core/src/main/java/it/integry/ems_model/entity/PtbProsRif.java @@ -1,6 +1,7 @@ package it.integry.ems_model.entity; import com.fasterxml.jackson.annotation.JsonTypeName; +import it.integry.common.var.CommonConstants; import it.integry.ems_model.annotation.PK; import it.integry.ems_model.annotation.SqlDetailId; import it.integry.ems_model.annotation.SqlField; @@ -10,6 +11,8 @@ import org.kie.api.definition.type.PropertyReactive; import org.apache.logging.log4j.LogManager; import org.apache.logging.log4j.Logger; +import java.time.LocalDateTime; + @PropertyReactive @Table(PtbProsRif.ENTITY) @JsonTypeName(PtbProsRif.ENTITY) @@ -48,6 +51,9 @@ public class PtbProsRif extends EntityBase { @SqlField(value = "telefono", maxLength = 40) private String telefono; + @SqlField(value = "data_mod", defaultObjectValue = CommonConstants.TIMESTAMP) + private LocalDateTime dataMod; + public PtbProsRif() { super(logger); } @@ -123,4 +129,13 @@ public class PtbProsRif extends EntityBase { this.telefono = telefono; return this; } + + public LocalDateTime getDataMod() { + return dataMod; + } + + public PtbProsRif setDataMod(LocalDateTime dataMod) { + this.dataMod = dataMod; + return this; + } } diff --git a/ems-core/src/main/java/it/integry/ems_model/entity/VtbDest.java b/ems-core/src/main/java/it/integry/ems_model/entity/VtbDest.java index f6fe17fb1c..1b5e9d98ad 100644 --- a/ems-core/src/main/java/it/integry/ems_model/entity/VtbDest.java +++ b/ems-core/src/main/java/it/integry/ems_model/entity/VtbDest.java @@ -1,6 +1,7 @@ package it.integry.ems_model.entity; import com.fasterxml.jackson.annotation.JsonTypeName; +import it.integry.common.var.CommonConstants; import it.integry.ems_model.annotation.EntityChild; import it.integry.ems_model.annotation.PK; import it.integry.ems_model.annotation.SqlField; @@ -12,6 +13,7 @@ import org.apache.logging.log4j.Logger; import org.kie.api.definition.type.PropertyReactive; import java.math.BigDecimal; +import java.time.LocalDateTime; import java.util.ArrayList; import java.util.Date; import java.util.List; @@ -225,6 +227,9 @@ public class VtbDest extends EntityBase implements EquatableEntityInterface retrieveCommesse(LocalDate dateFilter) throws Exception { - if (dateFilter != null) return null; - - String sql = "SELECT * FROM jtb_comt"; + if (dateFilter == null) + return UtilityDB.executeSimpleQueryDTO( + multiDBTransactionManager.getPrimaryConnection(), + "SELECT * FROM jtb_comt", JtbComt.class); + String sql = "SELECT * FROM jtb_comt WHERE data_mod >= " + UtilityDB.valueToString(dateFilter); return UtilityDB.executeSimpleQueryDTO(multiDBTransactionManager.getPrimaryConnection(), sql, JtbComt.class); } @@ -870,7 +872,11 @@ public class CrmService { String sql = "SELECT * FROM ptb_pros WHERE cod_anag IS NULL"; if (requestDTO.getFilterDate() != null) - sql = UtilityDB.addwhereCond(sql, "data_ins >= " + UtilityDB.valueToString(requestDTO.getFilterDate()), false); + sql = UtilityDB.addwhereCond( + sql, + "data_ins >= " + UtilityDB.valueToString(requestDTO.getFilterDate()) + " OR data_mod >= " + UtilityDB.valueToString(requestDTO.getFilterDate()), + true + ); if (requestDTO.getPartitaIva() != null) sql = UtilityDB.addwhereCond(sql, "part_iva = " + UtilityDB.valueToString(requestDTO.getPartitaIva()), false); @@ -883,19 +889,13 @@ public class CrmService { ); if (requestDTO.ReturnPersRif()) { - if (requestDTO.getFilterDate() == null) { - sql = "SELECT *\n" + - "FROM ptb_pros_rif\n" + - "WHERE EXISTS(SELECT * FROM ptb_pros WHERE ptb_pros.cod_anag IS NULL AND ptb_pros.cod_ppro = ptb_pros_rif.cod_ppro)"; - } else { - sql = Query.format( - "SELECT *\n" + - "FROM ptb_pros_rif\n" + - "WHERE EXISTS(SELECT * FROM ptb_pros WHERE ptb_pros.cod_anag IS NULL\n" + - " AND data_ins >= %s\n" + - " AND ptb_pros.cod_ppro = ptb_pros_rif.cod_ppro)", - requestDTO.getFilterDate() - ); + sql = "SELECT *\n" + + "FROM ptb_pros_rif\n" + + "WHERE EXISTS(SELECT * FROM ptb_pros WHERE ptb_pros.cod_anag IS NULL AND ptb_pros.cod_ppro = ptb_pros_rif.cod_ppro)"; + + if (requestDTO.getFilterDate() != null) { + sql = UtilityDB.addwhereCond( + sql, "data_mod >= " + UtilityDB.valueToString(requestDTO.getFilterDate()), false); } taskSyncResponse.setPtbProsRif( @@ -964,6 +964,11 @@ public class CrmService { "FROM vtb_dest\n" + "WHERE EXISTS(SELECT * FROM vtb_clie WHERE vtb_clie.cod_anag = vtb_dest.cod_anag)"; + if (requestDTO.getFilterDate() != null) { + sql = UtilityDB.addwhereCond( + sql, "data_mod >= " + UtilityDB.valueToString(requestDTO.getFilterDate()), false); + } + if (requestDTO.getCodAnag() != null) sql = UtilityDB.addwhereCond(sql, "cod_anag = " + UtilityDB.valueToString(requestDTO.getCodAnag()), false); @@ -975,6 +980,11 @@ public class CrmService { "FROM vtb_clie_pers_rif\n" + "WHERE EXISTS(SELECT * FROM vtb_clie WHERE vtb_clie.cod_anag = vtb_clie_pers_rif.cod_anag)"; + if (requestDTO.getFilterDate() != null) { + sql = UtilityDB.addwhereCond( + sql, "data_ult_agg >= " + UtilityDB.valueToString(requestDTO.getFilterDate()), false); + } + if (requestDTO.getCodAnag() != null) sql = UtilityDB.addwhereCond(sql, "cod_anag = " + UtilityDB.valueToString(requestDTO.getCodAnag()), false);