diff --git a/ems-core/src/main/java/it/integry/ems/migration/model/Migration_20240710120537.java b/ems-core/src/main/java/it/integry/ems/migration/model/Migration_20240710120537.java new file mode 100644 index 0000000000..46e46729a1 --- /dev/null +++ b/ems-core/src/main/java/it/integry/ems/migration/model/Migration_20240710120537.java @@ -0,0 +1,25 @@ +package it.integry.ems.migration.model; + +import it.integry.ems.migration._base.BaseMigration; +import it.integry.ems.migration._base.IntegryCustomerDB; +import it.integry.ems.migration._base.MigrationModelInterface; + +public class Migration_20240710120537 extends BaseMigration implements MigrationModelInterface { + + @Override + public void up() throws Exception { + if (isHistoryDB()) + return; + + + createSetup("IMPORT_SCONTRINI", "INTEGRETAIL", "GG_RECUPERO", null, "giorni di recuper per il servizio pianificato", false, null, false, false, false, false, false, null, false, null); + if (isCustomerDb(IntegryCustomerDB.Carelli_Carelli, IntegryCustomerDB.Carelli_GestFood, IntegryCustomerDB.Carelli_Panimal)) + updateSetupValue("IMPORT_SCONTRINI", "INTEGRETAIL", "GG_RECUPERO", "3"); + } + + @Override + public void down() throws Exception { + + } + +} diff --git a/ems-engine/src/main/java/it/integry/ems/activity/controller/ActivityController.java b/ems-engine/src/main/java/it/integry/ems/activity/controller/ActivityController.java index f31e4b6535..1bd936a06c 100644 --- a/ems-engine/src/main/java/it/integry/ems/activity/controller/ActivityController.java +++ b/ems-engine/src/main/java/it/integry/ems/activity/controller/ActivityController.java @@ -270,7 +270,7 @@ public class ActivityController { @RequestMapping(value = EmsRestConstants.PATH_ACTIVITY_GET_TREE_VIEW, method = RequestMethod.GET) public ServiceRestResponse getTreeView(HttpServletRequest request, @RequestParam(CommonConstants.PROFILE_DB) String config, - @RequestParam() String codJcom, + @RequestParam(required = false) String codJcom, @RequestParam(required = false, defaultValue = "false") boolean loadTasks, @RequestParam(required = false) String activityId) throws Exception { diff --git a/ems-engine/src/main/java/it/integry/ems/activity/dto/TreeViewDTO.java b/ems-engine/src/main/java/it/integry/ems/activity/dto/TreeViewDTO.java index a1aab2df9e..dac42909c3 100644 --- a/ems-engine/src/main/java/it/integry/ems/activity/dto/TreeViewDTO.java +++ b/ems-engine/src/main/java/it/integry/ems/activity/dto/TreeViewDTO.java @@ -4,19 +4,42 @@ import it.integry.ems_model.annotation.SqlField; public class TreeViewDTO { + @SqlField("cod_jcom") + private String codJcom; + @SqlField("livello") private int livello; + @SqlField("activity_id") private String activityId; + @SqlField("activity_description") private String activityDescription; + @SqlField("parent_activity_id") private String parentActivityId; + @SqlField("activity_type_id") private String activityTypeId; + @SqlField("row") private int row; + @SqlField("isFinished") + private boolean isFinished; + + @SqlField("esito") + private String esito; + + public String getCodJcom() { + return codJcom; + } + + public TreeViewDTO setCodJcom(String codJcom) { + this.codJcom = codJcom; + return this; + } + public int getRow() { return row; } @@ -70,4 +93,22 @@ public class TreeViewDTO { this.parentActivityId = parentActivityId; return this; } + + public boolean isFinished() { + return isFinished; + } + + public TreeViewDTO setFinished(boolean finished) { + isFinished = finished; + return this; + } + + public String getEsito() { + return esito; + } + + public TreeViewDTO setEsito(String esito) { + this.esito = esito; + return this; + } } diff --git a/ems-engine/src/main/java/it/integry/ems/activity/service/ActivityService.java b/ems-engine/src/main/java/it/integry/ems/activity/service/ActivityService.java index 195ee40ddd..c74d9317b6 100644 --- a/ems-engine/src/main/java/it/integry/ems/activity/service/ActivityService.java +++ b/ems-engine/src/main/java/it/integry/ems/activity/service/ActivityService.java @@ -421,8 +421,8 @@ public class ActivityService { sql = Query.format( "SELECT jtb_rlavr.cod_jflav, jtb_rlavr.data_lav, jtb_rlavr.id_riga, %s as cod_jfas " + - " FROM stb_activity INNER JOIN jtb_rlavr ON stb_activity.activity_id = jtb_rlavr.activity_id " + - " WHERE parent_activity_id = %s AND stb_activity.cod_jfas <> %s\n" + + " FROM stb_activity INNER JOIN jtb_rlavr ON stb_activity.activity_id = jtb_rlavr.activity_id " + + " WHERE parent_activity_id = %s AND stb_activity.cod_jfas <> %s\n" + " AND NOT EXISTS(SELECT * from stb_activity_check WHERE stb_activity.cod_jcom = stb_activity_check.cod_jcom AND stb_activity.effective_date between stb_activity_check.data_iniz AND stb_activity_check.data_fine )", codjfas, stbActivity.getActivityId(), @@ -443,7 +443,7 @@ public class ActivityService { List rapportini = new ArrayList<>(); - for (Map.Entry> entry:list ) { + for (Map.Entry> entry : list) { rapportini.add(entry.getKey().setJtbRlavr(entry.getValue())); } @@ -512,7 +512,7 @@ public class ActivityService { } if (processo.getEffectiveEnddate() != null && - processo.getEffectiveEnddate().before(stbActivity.getEffectiveEnddate())){ + processo.getEffectiveEnddate().before(stbActivity.getEffectiveEnddate())) { processo.setEffectiveEnddate(EmsRestConstants.DATE_NULL) .setEffectiveEndtime(EmsRestConstants.DATE_NULL) .setActivityResultId("DA COMPLETARE"); @@ -537,7 +537,7 @@ public class ActivityService { .setEffectiveTime(stbActivity.getEffectiveTime()) .setEffectiveEndtime(stbActivity.getEffectiveEndtime()) .setNote(stbActivity.getNote()); - } catch (Exception e){ + } catch (Exception e) { multiDBTransactionManager.rollbackAll(); throw e; } @@ -948,7 +948,7 @@ public class ActivityService { " INNER JOIN (SELECT *\n" + " FROM jtb_comt\n"; - if (year == null){ + if (year == null) { sql += " WHERE stato_commessa IN ('IN CORSO', 'POST VENDITA', 'TRATTATIVA')) jtb_comt\n"; } else { sql += " WHERE stato_commessa = 'CHIUSA'\n" + @@ -995,8 +995,13 @@ public class ActivityService { " stb_activity_type.flag_tipologia\n" + " AND stb_activity_type.flag_attiva = 'S'\n" + " GROUP BY srl_activity_type.activity_type_id\n" + - " HAVING COUNT(DISTINCT flag_tipologia_next) = 1)\n" + - " AND flag_tipologia_next = 'A'))\n" + + " HAVING COUNT(DISTINCT flag_tipologia_next) = 1)\n"; + + if (activityId == null) { + sql += " AND flag_tipologia_next = 'A'\n"; + } + + sql += " ))\n" + "\n" + "SELECT processi.cod_jcom AS 'Commessa',\n" + " processi.user_name,\n" + @@ -1051,7 +1056,7 @@ public class ActivityService { " task.daPagare as da_pagare,\n" + " task.aCanone as a_canone " + "FROM processi\n" + - " LEFT OUTER JOIN sottoattivita ON processi.activity_id = sottoattivita.parent_activity_id\n"+ + " LEFT OUTER JOIN sottoattivita ON processi.activity_id = sottoattivita.parent_activity_id\n" + " OUTER APPLY ( SELECT CAST(MAX(CASE WHEN task.cod_jfas <> 'C01' THEN 0 ELSE 1 END) AS BIT) AS daPagare,\n" + " CAST(MAX(CASE WHEN task.cod_jfas = 'C01' THEN 0 ELSE 1 END) AS BIT) AS aCanone \n" + " FROM stb_activity task WHERE processi.activity_id = task.parent_activity_id) task "; @@ -1355,7 +1360,29 @@ public class ActivityService { public List getTreeView(String codJcom, String activityId, boolean loadTasks) throws Exception { String sql; - if (activityId == null) { + if (codJcom == null) { + sql = "WITH commesse AS (SELECT cod_jcom FROM jtb_comt WHERE stato_commessa IN ('IN CORSO', 'POST VENDITA', 'TRATTATIVA'))\n" + + "SELECT t.cod_jcom,\n" + + " t.livello,\n" + + " t.activity_id,\n" + + " stb_activity.activity_description,\n" + + " t.parent_activity_id,\n" + + " stb_activity.activity_type_id,\n" + + " count_activity.row,\n" + + " CAST(IIF(stb_activity.effective_enddate IS NULL, 1, 0) AS BIT) AS isFinished,\n" + + " stb_activity.activity_result_id AS esito\n" + + "FROM commesse\n" + + " CROSS APPLY [dbo].[getTreeViewActivity](commesse.cod_jcom) t\n" + + " INNER JOIN stb_activity ON t.activity_id = stb_activity.activity_id\n" + + " OUTER APPLY (SELECT COUNT(*) AS row\n" + + " FROM stb_activity s\n" + + " WHERE stb_activity.activity_id = s.parent_activity_id) count_activity\n" + + "WHERE EXISTS (SELECT *\n" + + " FROM srl_activity_type\n" + + " WHERE flag_tipologia_next IN ('P', 'A')\n" + + " AND srl_activity_type.flag_tipologia = stb_activity.flag_tipologia\n" + + " AND srl_activity_type.activity_type_id = stb_activity.activity_type_id)"; + } else if (activityId == null) { sql = "SELECT t.livello,\n" + " t.activity_id,\n" + " stb_activity.activity_description,\n" + @@ -1372,11 +1399,6 @@ public class ActivityService { "EXISTS (SELECT *\n" + " FROM srl_activity_type\n" + " WHERE flag_tipologia_next IN ('P' " + (loadTasks ? ", 'A'" : "") + ")\n" + - "-- AND NOT EXISTS (SELECT *\n" + - "-- FROM srl_activity_type tipo_attivita\n" + - "-- WHERE tipo_attivita.flag_tipologia_next = 'A'\n" + - "-- AND tipo_attivita.activity_type_id = srl_activity_type.activity_type_id\n" + - "-- AND tipo_attivita.flag_tipologia = srl_activity_type.flag_tipologia)\n" + " AND srl_activity_type.flag_tipologia = stb_activity.flag_tipologia\n" + " AND srl_activity_type.activity_type_id = stb_activity.activity_type_id)"; } else { diff --git a/ems-engine/src/main/java/it/integry/ems/retail/service/ScontriniService.java b/ems-engine/src/main/java/it/integry/ems/retail/service/ScontriniService.java index e97ad9cd3f..a05e8121ad 100644 --- a/ems-engine/src/main/java/it/integry/ems/retail/service/ScontriniService.java +++ b/ems-engine/src/main/java/it/integry/ems/retail/service/ScontriniService.java @@ -48,6 +48,7 @@ public class ScontriniService { Map setup = setupGest.getImportSetupSection(multiDBTransactionManager.getPrimaryConnection(), type, format); String pathFile = setup.get("PATH_FILE"); String profileDb = setup.get("PROFILE_DB"); + String ggRecupero = setup.get("GG_RECUPERO"); String whereCond = null; if (requestDTO != null) { @@ -64,8 +65,12 @@ public class ScontriniService { if (requestDTO != null && requestDTO.getDataIniz() != null) { dataIniz.setTime(requestDTO.getDataIniz()); } else { - dataIniz = (Calendar) dataFine.clone(); - dataIniz.add(Calendar.DATE, -7); + Integer gg = -7; + if (ggRecupero != null) { + gg = Integer.valueOf(ggRecupero); + gg = gg * -1; + } + dataIniz.add(Calendar.DATE, gg); } String query =