diff --git a/ems-core/src/main/java/it/integry/ems/migration/model/Migration_20250731175503.java b/ems-core/src/main/java/it/integry/ems/migration/model/Migration_20250731175503.java new file mode 100644 index 0000000000..d4e4fc6c1c --- /dev/null +++ b/ems-core/src/main/java/it/integry/ems/migration/model/Migration_20250731175503.java @@ -0,0 +1,20 @@ +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_20250731175503 extends BaseMigration implements MigrationModelInterface { + + @Override + public void up() throws Exception { + if (isHistoryDB()) + return; + + if (isCustomer(IntegryCustomer.Smetar)) enableSaveToRest("w_ppros_transfer_dlg"); + } + + @Override + public void down() throws Exception { + } +} \ No newline at end of file diff --git a/ems-core/src/main/java/it/integry/ems/rules/completing/ConfigActivityRules.java b/ems-core/src/main/java/it/integry/ems/rules/completing/ConfigActivityRules.java index 5ccba9425e..613f666e73 100644 --- a/ems-core/src/main/java/it/integry/ems/rules/completing/ConfigActivityRules.java +++ b/ems-core/src/main/java/it/integry/ems/rules/completing/ConfigActivityRules.java @@ -54,15 +54,7 @@ public class ConfigActivityRules extends QueryRules { return false; - String sql = - Query.format( - "SELECT CAST(COUNT(*) AS BIT)\n" + - "FROM stb_activity_check\n" + - "WHERE stb_activity_check.cod_jcom = %s\n" + - " AND %s BETWEEN stb_activity_check.data_iniz AND stb_activity_check.data_fine", - stbActivity.getCodJcom(), dataCheck); - - blocca = UtilityDB.executeSimpleQueryOnlyFirstRowFirstColumn(conn, sql); + blocca = checkAttivita(conn, stbActivity.getCodJcom(), dataCheck); } } if (blocca) @@ -71,6 +63,19 @@ public class ConfigActivityRules extends QueryRules { return false; } + public static boolean checkAttivita(Connection conn, String codJcom, Date dataCheck) throws Exception { + String sql = + Query.format( + "SELECT CAST(COUNT(*) AS BIT)\n" + + "FROM stb_activity_check\n" + + "WHERE stb_activity_check.cod_jcom = %s\n" + + " AND %s BETWEEN stb_activity_check.data_iniz AND stb_activity_check.data_fine", + codJcom, dataCheck); + + return UtilityDB.executeSimpleQueryOnlyFirstRowFirstColumn(conn, sql); + } + + public static List completeJtbRlavtActivity(Connection connection, StbActivity entity) throws Exception { String sql = "SELECT jrl_flav_users.cod_jflav" + diff --git a/ems-engine/src/main/java/it/integry/ems/system/controller/SystemController.java b/ems-engine/src/main/java/it/integry/ems/system/controller/SystemController.java index 413cc64261..6dcbf51748 100644 --- a/ems-engine/src/main/java/it/integry/ems/system/controller/SystemController.java +++ b/ems-engine/src/main/java/it/integry/ems/system/controller/SystemController.java @@ -20,6 +20,7 @@ import it.integry.ems.report.dto.JasperDTO; import it.integry.ems.report.dto.PairsDTO; import it.integry.ems.response.*; import it.integry.ems.retail.ReportVariazioni.dto.VariazioniDettaglioDTO; +import it.integry.ems.rules.completing.ConfigActivityRules; import it.integry.ems.service.EntityProcessor; import it.integry.ems.service.MailService; import it.integry.ems.service.PrinterService; @@ -748,8 +749,12 @@ public class SystemController { stbActivity.setOperation(OperationType.INSERT); if (activity.getActivityTypeId().equalsIgnoreCase("TICKET")) { - stbActivity.setEstimatedTime(new Date()) - .setEstimatedEndtime(UtilityDate.RelativeDateTime(new Date(), 14)); + Date dataAttivita = new Date(); + if (ConfigActivityRules.checkAttivita(multiDBTransactionManager.getPrimaryConnection(), stbActivity.getCodJcom(), dataAttivita)) { + dataAttivita = UtilityDate.dateFromPart(UtilityDate.getYear(dataAttivita), UtilityDate.datePart(Calendar.MONTH, dataAttivita) + 1, 1); + } + stbActivity.setEstimatedTime(dataAttivita) + .setEstimatedEndtime(UtilityDate.RelativeDateTime(dataAttivita, 14)); if (!activity.getUserName().equalsIgnoreCase("DEV") && !activity.getUserName().equalsIgnoreCase("T0001") && @@ -760,7 +765,7 @@ public class SystemController { .setCodJcom(activity.getCodJcom()) .setUserCreator(activity.getUserCreator()) .setUserName(activity.getUserName()) - .setEstimatedTime(new Date()) + .setEstimatedTime(dataAttivita) .setActivityResultId("DA FARE") .setFlagTipologia("A") .setActivityTypeId("HELP DESK");