From e1a3dc034e4cd1d7e9a7633353fe0de099d040ec Mon Sep 17 00:00:00 2001 From: MinaR Date: Tue, 23 Apr 2024 12:38:29 +0200 Subject: [PATCH] modificata logica dei listini di riferimento aggiunta versione del listino rif --- .../model/Migration_20240422172537.java | 34 ++++ .../model/Migration_20240423100155.java | 162 ++++++++++++++++++ .../model/Migration_20240423101233.java | 160 +++++++++++++++++ .../ems/rules/completing/SalesRules.java | 121 ++++++++----- .../it/integry/ems_model/entity/VtbList.java | 26 +++ .../integry/ems_model/entity/VtbListData.java | 14 +- ems-core/src/main/resources/rules/LisV.drl | 12 ++ .../controller/ListiniVenditaController.java | 1 + .../service/ImportAnagListiniService.java | 2 +- 9 files changed, 485 insertions(+), 47 deletions(-) create mode 100644 ems-core/src/main/java/it/integry/ems/migration/model/Migration_20240422172537.java create mode 100644 ems-core/src/main/java/it/integry/ems/migration/model/Migration_20240423100155.java create mode 100644 ems-core/src/main/java/it/integry/ems/migration/model/Migration_20240423101233.java diff --git a/ems-core/src/main/java/it/integry/ems/migration/model/Migration_20240422172537.java b/ems-core/src/main/java/it/integry/ems/migration/model/Migration_20240422172537.java new file mode 100644 index 0000000000..f124bffba8 --- /dev/null +++ b/ems-core/src/main/java/it/integry/ems/migration/model/Migration_20240422172537.java @@ -0,0 +1,34 @@ +package it.integry.ems.migration.model; + +import it.integry.ems.migration._base.BaseMigration; +import it.integry.ems.migration._base.MigrationModelInterface; + +public class Migration_20240422172537 extends BaseMigration implements MigrationModelInterface { + + @Override + public void up() throws Exception { + if (isHistoryDB()) + return; + + executeStatement( + "alter table vtb_list_data add versione_rif int", + "update vtb_list_data set versione_rif = versione where cod_vlis_rif is not null", + "with list_rif as (\n" + + "select cod_vlis, cod_vlis_rif\n" + + "from vtb_list where cod_vlis_rif is not null)\n" + + "update vtb_list_data set cod_vlis_rif = list_rif.cod_vlis_rif, versione_rif = versione\n" + + "from vtb_list_data \n" + + "inner join list_rif on vtb_list_data.cod_vlis = list_rif.cod_vlis and \n" + + "vtb_list_data.cod_vlis_rif is null", + "disable trigger t_insVtbList on dbo.vtb_list", + "disable trigger t_updVtbList on dbo.vtb_list", + "disable trigger t_vtblistdata_ins on dbo.vtb_list_data" + ); + } + + @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_20240423100155.java b/ems-core/src/main/java/it/integry/ems/migration/model/Migration_20240423100155.java new file mode 100644 index 0000000000..3072f82a15 --- /dev/null +++ b/ems-core/src/main/java/it/integry/ems/migration/model/Migration_20240423100155.java @@ -0,0 +1,162 @@ +package it.integry.ems.migration.model; + +import it.integry.ems.migration._base.BaseMigration; +import it.integry.ems.migration._base.MigrationModelInterface; + +public class Migration_20240423100155 extends BaseMigration implements MigrationModelInterface { + + @Override + public void up() throws Exception { + if (isHistoryDB()) + return; + + + createOrUpdateFunction("[getListinoVendita]", "CREATE FUNCTION [dbo].[getListinoVendita](@dataValidita DATETIME, @codVlis VARCHAR(5), @codMart VARCHAR(15))\n" + + " RETURNS TABLE AS\n" + + " RETURN\n" + + " SELECT vtb_list.cod_vlis,\n" + + " vtb_list.descrizione,\n" + + " CASE\n" + + " WHEN tmp_list.max_lisv IS NULL THEN NULL\n" + + " ELSE CONVERT(DATETIME, LEFT(tmp_list.max_lisv, 10)) END AS data_iniz,\n" + + " CASE\n" + + " WHEN tmp_list.max_lisv IS NULL THEN NULL\n" + + " ELSE CONVERT(INT, RIGHT(tmp_list.max_lisv, 4)) END AS versione,\n" + + " vtb_list.cod_divi,\n" + + " vtb_list.cambio,\n" + + " vtb_list.flag_arr_prz_iva,\n" + + " vtb_list.arr_ric,\n" + + " vtb_list.flag_list_iva_inclusa,\n" + + " vtb_list.flag_lisv_margine,\n" + + " vtb_list.flag_add_trasp,\n" + + " tmp_list.cod_mart AS 'cod_mart',\n" + + " mtb_lisv_data.unt_mis_ven AS unt_mis_ven,\n" + + " ISNULL(mtb_lisv_data.rap_conv, 1) AS rap_conv,\n" + + " ISNULL(mtb_lisv_data.prz_base, 0) AS prz_base,\n" + + " ISNULL(mtb_lisv_data.ricarica, 0) AS ricarico,\n" + + " CASE\n" + + " WHEN mtb_lisv_data.prz_vend IS NOT NULL AND mtb_lisv_data.prz_vend <> 0 THEN\n" + + " ROUND((ISNULL(mtb_lisv_data.prz_vend, 0) -\n" + + " (ISNULL(mtb_lisv_data.prz_base, 0) / (1 - mtb_aart.perc_sfrido / 100))) /\n" + + " ISNULL(mtb_lisv_data.prz_vend, 0) * 100, 2)\n" + + " ELSE 0 END AS margine_eff,\n" + + " --dbo.f_calcMargineEffettivo(IsNull(mtb_lisv_data.prz_base, 0), IsNull(mtb_lisv_data.prz_vend, 0), mtb_aart.perc_sfrido) as margine_eff,\n" + + " --dbo.f_calcRicaricoEffettivo(IsNull(mtb_lisv_data.prz_base, 0), IsNull(mtb_lisv_data.prz_vend, 0), mtb_aart.perc_sfrido) ricarico_eff, \n" + + " CASE\n" + + " WHEN mtb_lisv_data.prz_base IS NOT NULL AND mtb_lisv_data.prz_base <> 0 THEN\n" + + " ROUND((ISNULL(mtb_lisv_data.prz_vend, 0) -\n" + + " (ISNULL(mtb_lisv_data.prz_base, 0) / (1 - mtb_aart.perc_sfrido / 100))) /\n" + + " (ISNULL(mtb_lisv_data.prz_base, 0) / (1 - mtb_aart.perc_sfrido / 100)) * 100, 2)\n" + + " ELSE 0 END AS ricarico_eff,\n" + + "\n" + + " ISNULL(mtb_lisv_data.magg_prz_vend, 0) AS magg_prz_vend,\n" + + " ISNULL(mtb_lisv_data.prz_vend, 0) AS prz_vend,\n" + + " ISNULL(mtb_lisv_data.prz_vend_iva, 0) AS prz_vend_iva,\n" + + " ISNULL(mtb_lisv_data.perc_sco1, 0) AS perc_sco1,\n" + + " ISNULL(mtb_lisv_data.perc_sco2, 0) AS perc_sco2,\n" + + " ISNULL(mtb_lisv_data.perc_sco3, 0) AS perc_sco3,\n" + + " ISNULL(mtb_lisv_data.perc_sco4, 0) AS perc_sco4,\n" + + " ISNULL(mtb_lisv_data.perc_prov, 0) AS perc_prov,\n" + + " ISNULL(mtb_lisv_data.fisso_prov, 0) AS fisso_prov,\n" + + " ISNULL(mtb_lisv_data.posizione, '') AS posizione,\n" + + " ISNULL(mtb_lisv_data.perc_gest, 0) AS perc_gest,\n" + + " ISNULL(mtb_lisv_data.val_gest, 0) AS val_gest,\n" + + " mtb_lisv_data.data_agg_prz AS data_agg_prz,\n" + + " ISNULL(mtb_lisv_data.perc_ispe, 0) AS perc_ispe,\n" + + " ISNULL(mtb_lisv_data.val_ispe, 0) AS val_ispe,\n" + + " ISNULL(mtb_lisv_data.perc_promo, 0) AS perc_promo,\n" + + " ISNULL(mtb_lisv_data.val_promo, 0) AS val_promo,\n" + + " ISNULL(mtb_lisv_data.perc_oneri, 0) AS perc_oneri,\n" + + " ISNULL(mtb_lisv_data.val_oneri, 0) AS val_oneri,\n" + + " mtb_lisv_data.tipo_variazione AS tipo_variazione,\n" + + " mtb_lisv_data.note AS note,\n" + + " mtb_lisv_data.aggiornato_da AS aggiornato_da,\n" + + " mtb_lisv_data.prz_vend * (1 - mtb_lisv_data.perc_sco1 / 100) * (1 - mtb_lisv_data.perc_sco2 / 100) *\n" + + " (1 - mtb_lisv_data.perc_sco3 / 100) *\n" + + " (1 - mtb_lisv_data.perc_sco4 / 100) AS prz_vend_netto,\n" + + " CASE\n" + + " WHEN ISNULL(mtb_lisv_data.colli_pedana, 0) <> 0 THEN mtb_lisv_data.colli_pedana\n" + + " ELSE mtb_aart.colli_pedana END AS colli_pedana,\n" + + " mtb_lisv_data.cod_tcol_ul AS cod_tcol_ul,\n" + + " mtb_lisv_data.cod_tcol_ui AS cod_tcol_ui,\n" + + " ISNULL(mtb_lisv_data.prz_vend_sug, 0) AS prz_vend_sug,\n" + + " CASE\n" + + " WHEN ISNULL(mtb_lisv_data.qta_cnf, 0) <> 0\n" + + " /*AND dbo.getGestSetup('VTB_LIST', 'SETUP', 'QTA_CNF_LISTINO') = 'S' */\n" + + " THEN mtb_lisv_data.qta_cnf\n" + + " ELSE mtb_aart.qta_cnf END AS qta_cnf,\n" + + " CASE\n" + + " WHEN ISNULL(mtb_lisv_data.colli_strato, 0) <> 0 THEN mtb_lisv_data.colli_strato\n" + + " ELSE mtb_aart.colli_strato END AS colli_strato,\n" + + " mtb_lisv_data.descrizione_html AS descrizione_html,\n" + + " mtb_lisv_data.colli_pedana AS colli_pedana_lisv,\n" + + " mtb_lisv_data.qta_cnf AS qta_cnf_lisv,\n" + + " mtb_lisv_data.colli_strato AS colli_strato_lisv,\n" + + " mtb_lisv_data.sconto_cartoni,\n" + + " mtb_lisv_data.sconto_strato,\n" + + " mtb_lisv_data.sconto_pedane,\n" + + " vtb_list.flag_attivo,\n" + + " vtb_list_data.note AS note_testata,\n" + + " ISNULL(mtb_lisv_data.flag_prz_bloccato, 'N') AS flag_prz_bloccato,\n" + + " vtb_list_data.porto AS porto,\n" + + " mtb_lisv_data.system_note\n" + + " FROM (SELECT vtb_list.cod_vlis AS cod_vlis,\n" + + " mtb_lisv_data.cod_mart,\n" + + " MAX(CASE\n" + + " WHEN vtb_list_data.versione IS NULL THEN NULL\n" + + " ELSE CONVERT(VARCHAR(10), vtb_list_data.data_iniz, 111) + ' ' +\n" + + " REPLICATE('0', 5 - LEN(vtb_list_data.versione)) +\n" + + " CONVERT(VARCHAR(5), vtb_list_data.versione) END) AS max_lisv,\n" + + " vtb_list.cod_vlis AS 'cod_vlis_rif'\n" + + " FROM vtb_list,\n" + + " mtb_lisv_data\n" + + " LEFT OUTER JOIN vtb_list_data ON mtb_lisv_data.cod_vlis = vtb_list_data.cod_vlis AND\n" + + " mtb_lisv_data.versione = vtb_list_data.versione AND\n" + + " vtb_list_data.cod_promo IS NULL AND\n" + + " vtb_list_data.data_iniz <= ISNULL(@dataValidita, GETDATE())\n" + + " WHERE vtb_list.cod_vlis = mtb_lisv_data.cod_vlis\n" + + " AND vtb_list.cod_vlis_rif IS NULL\n" + + " GROUP BY vtb_list.cod_vlis,\n" + + " mtb_lisv_data.cod_mart\n" + + " UNION\n" + + " SELECT vtb_list.cod_vlis AS cod_vlis,\n" + + " mtb_lisv_data.cod_mart,\n" + + " MAX(CASE\n" + + " WHEN vtb_list_data.versione IS NULL THEN NULL\n" + + " ELSE CONVERT(VARCHAR(10), vtb_list_data.data_iniz, 111) + ' ' +\n" + + " REPLICATE('0', 5 - LEN(vtb_list_data.versione_rif)) +\n" + + " CONVERT(VARCHAR(5), vtb_list_data.versione_rif) END) AS max_lisv,\n" + + " vtb_list.cod_vlis_rif AS 'cod_vlis_rif'\n" + + " FROM vtb_list,\n" + + " mtb_lisv_data,\n" + + " vtb_list_data,\n" + + " vtb_list_data vtb_list_data_rif\n" + + " WHERE vtb_list.cod_vlis = vtb_list_data.cod_vlis\n" + + " AND vtb_list.cod_vlis_rif = vtb_list_data_rif.cod_vlis\n" + + " AND vtb_list_data.versione_rif = vtb_list_data_rif.versione\n" + + " AND vtb_list_data_rif.cod_vlis = mtb_lisv_data.cod_vlis\n" + + " AND vtb_list_data_rif.versione = mtb_lisv_data.versione\n" + + " AND vtb_list_data.data_iniz <= ISNULL(@dataValidita, GETDATE())\n" + + " AND vtb_list.cod_vlis_rif IS NOT NULL\n" + + " GROUP BY vtb_list.cod_vlis,\n" + + " mtb_lisv_data.cod_mart,\n" + + " vtb_list.cod_vlis_rif) tmp_list\n" + + " LEFT OUTER JOIN mtb_lisv_data ON tmp_list.cod_vlis_rif = mtb_lisv_data.cod_vlis AND\n" + + " tmp_list.cod_mart = mtb_lisv_data.cod_mart AND\n" + + " CONVERT(INT, RIGHT(tmp_list.max_lisv, 5)) = mtb_lisv_data.versione\n" + + " LEFT OUTER JOIN vtb_list_data ON tmp_list.cod_vlis = vtb_list_data.cod_vlis AND\n" + + " CONVERT(INT, RIGHT(tmp_list.max_lisv, 5)) = vtb_list_data.versione,\n" + + " vtb_list,\n" + + " mtb_aart\n" + + " WHERE vtb_list.cod_vlis = tmp_list.cod_vlis\n" + + " AND (@codMart IS NULL OR tmp_list.cod_mart = @codMart)\n" + + " AND (@codVlis IS NULL OR tmp_list.cod_vlis = @codVlis)\n" + + " AND tmp_list.cod_mart = mtb_aart.cod_mart"); + } + + @Override + public void down() throws Exception { + + } + +} diff --git a/ems-core/src/main/java/it/integry/ems/migration/model/Migration_20240423101233.java b/ems-core/src/main/java/it/integry/ems/migration/model/Migration_20240423101233.java new file mode 100644 index 0000000000..e70b228084 --- /dev/null +++ b/ems-core/src/main/java/it/integry/ems/migration/model/Migration_20240423101233.java @@ -0,0 +1,160 @@ +package it.integry.ems.migration.model; + +import it.integry.ems.migration._base.BaseMigration; +import it.integry.ems.migration._base.MigrationModelInterface; + +public class Migration_20240423101233 extends BaseMigration implements MigrationModelInterface { + + @Override + public void up() throws Exception { + if (isHistoryDB()) + return; + + + createOrUpdateFunction("getPromozioneVendita", "CREATE FUNCTION [dbo].[getPromozioneVendita] (@dataIniz datetime, @dataFine datetime, @codVlis varchar(5), @codPromo varchar(10), @codMart varchar(15)) RETURNS TABLE AS \n" + + " return \n" + + " SELECT vtb_list.cod_vlis, \n" + + " vtb_list.descrizione, \n" + + " vtb_list_data.data_iniz, \n" + + " vtb_list_data.data_fine,\n" + + " vtb_list_data.cod_promo,\n" + + " vtb_list_data.versione, \n" + + " vtb_list.cod_divi,\n" + + " vtb_list.flag_arr_prz_iva, \n" + + " vtb_list.arr_ric,\n" + + " vtb_list.flag_list_iva_inclusa,\n" + + " vtb_list.flag_lisv_margine, \n" + + " mtb_lisv_data.cod_mart as cod_mart, \n" + + " mtb_lisv_data.unt_mis_ven as unt_mis_ven,\n" + + " mtb_lisv_data.rap_conv as rap_conv, \n" + + " mtb_lisv_data.prz_base as prz_base, \n" + + " mtb_lisv_data.ricarica as ricarico,\n" + + " dbo.f_calcMargineEffettivo(mtb_lisv_data.prz_base, mtb_lisv_data.prz_vend, mtb_aart.perc_sfrido) as margine_eff,\n" + + " dbo.f_calcRicaricoEffettivo(mtb_lisv_data.prz_base, mtb_lisv_data.prz_vend, mtb_aart.perc_sfrido) as ricarico_eff, \n" + + " mtb_lisv_data.prz_vend as prz_vend, \n" + + " mtb_lisv_data.prz_vend_iva as prz_vend_iva, \n" + + " mtb_lisv_data.perc_sco1 as perc_sco1, \n" + + " mtb_lisv_data.perc_sco2 as perc_sco2, \n" + + " mtb_lisv_data.perc_sco3 as perc_sco3, \n" + + " mtb_lisv_data.perc_sco4 as perc_sco4, \n" + + " mtb_lisv_data.perc_prov as perc_prov, \n" + + " mtb_lisv_data.fisso_prov as fisso_prov, \n" + + " mtb_lisv_data.posizione as posizione, \n" + + " mtb_lisv_data.perc_gest as perc_gest, \n" + + " mtb_lisv_data.val_gest as val_gest, \n" + + " mtb_lisv_data.data_agg_prz as data_agg_prz, \n" + + " mtb_lisv_data.perc_ispe as perc_ispe, \n" + + " mtb_lisv_data.val_ispe as val_ispe, \n" + + " mtb_lisv_data.perc_promo as perc_promo, \n" + + " mtb_lisv_data.val_promo as val_promo, \n" + + " mtb_lisv_data.perc_oneri as perc_oneri, \n" + + " mtb_lisv_data.val_oneri as val_oneri, \n" + + " mtb_lisv_data.tipo_variazione as tipo_variazione, \n" + + " mtb_lisv_data.note as note,\n" + + " mtb_lisv_data.aggiornato_da as aggiornato_da,\n" + + " mtb_lisv_data.prz_vend * (1 - mtb_lisv_data.perc_sco1/100) * (1 - mtb_lisv_data.perc_sco2/100)* (1 - mtb_lisv_data.perc_sco3/100)* (1 - mtb_lisv_data.perc_sco4/100) as prz_vend_netto,\n" + + " vtb_promo.descrizione as 'descr_promo',\n" + + " vtb_promo.data_iniz_sell_out,\n" + + " vtb_promo.data_fine_sell_out,\n" + + " vtb_promo.flag_tipo_promo,\n" + + " mtb_lisv_data.sconto_cartoni,\n" + + " mtb_lisv_data.sconto_strato,\n" + + " mtb_lisv_data.sconto_pedane,\n" + + " mtb_lisv_data.giacenza,\n" + + " mtb_lisv_data.magg_prz_vend,\n" + + " vtb_promo.flag_sconto_contrattuale,\n" + + " vtb_promo.intercode_xml_variazioni\n" + + " FROM vtb_list inner join vtb_list_data on vtb_list.cod_vlis = vtb_list_data.cod_vlis\n" + + " inner join mtb_lisv_data on vtb_list_data.cod_vlis = mtb_lisv_data.cod_vlis AND vtb_list_data.versione = mtb_lisv_data.versione\n" + + " inner join mtb_aart on mtb_lisv_data.cod_mart = mtb_aart.cod_mart\n" + + " inner join vtb_promo on vtb_list_data.cod_promo = vtb_promo.cod_promo \n" + + " outer apply (select count(*) as conta from vtb_list_data rif where vtb_list_data.cod_vlis = rif.cod_vlis_rif and vtb_list_data.versione = rif.versione ) list_rif\n" + + " WHERE (@codMart IS NULL OR mtb_lisv_data.cod_mart = @codMart)\n" + + " AND (@codvlis IS NULL OR vtb_list_data.cod_vlis = @codVlis) \n" + + " AND vtb_list.cod_vlis_rif IS NULL\n" + + " AND (@codPromo IS NULL OR vtb_list_data.cod_promo = @codPromo)\n" + + " AND (((@dataFine IS NULL OR ISNULL(@dataIniz, dbo.f_convertDatetimeToDate(GETDATE())) = @dataFine) AND \n" + + " ISNULL(@dataIniz, dbo.f_convertDatetimeToDate(GETDATE())) BETWEEN vtb_list_data.data_iniz AND vtb_list_data.data_fine) OR \n" + + " (@dataFine IS NOT NULL AND ISNULL(@dataIniz, dbo.f_convertDatetimeToDate(GETDATE())) <> @dataFine AND \n" + + " (vtb_list_data.data_iniz BETWEEN ISNULL(@dataIniz, dbo.f_convertDatetimeToDate(GETDATE())) AND @dataFine OR \n" + + " vtb_list_data.data_fine BETWEEN ISNULL(@dataIniz, dbo.f_convertDatetimeToDate(GETDATE())) AND @dataFine OR \n" + + " ISNULL(@dataIniz, dbo.f_convertDatetimeToDate(GETDATE())) BETWEEN vtb_list_data.data_iniz AND vtb_list_data.data_fine OR\n" + + " @dataFine BETWEEN vtb_list_data.data_iniz AND vtb_list_data.data_fine ))) AND\n" + + " (vtb_promo.flag_sconto_contrattuale = 'N' OR ( vtb_promo.flag_sconto_contrattuale = 'S' and list_rif.conta = 0 )) \n" + + " union\n" + + " SELECT vtb_list.cod_vlis, \n" + + " vtb_list.descrizione, \n" + + " vtb_list_data.data_iniz, \n" + + " vtb_list_data.data_fine,\n" + + " vtb_list_data.cod_promo,\n" + + " vtb_list_data.versione, \n" + + " vtb_list.cod_divi,\n" + + " vtb_list.flag_arr_prz_iva, \n" + + " vtb_list.arr_ric,\n" + + " vtb_list.flag_list_iva_inclusa,\n" + + " vtb_list.flag_lisv_margine, \n" + + " mtb_lisv_data.cod_mart as cod_mart, \n" + + " mtb_lisv_data.unt_mis_ven as unt_mis_ven,\n" + + " mtb_lisv_data.rap_conv as rap_conv, \n" + + " mtb_lisv_data.prz_base as prz_base, \n" + + " mtb_lisv_data.ricarica as ricarico,\n" + + " dbo.f_calcMargineEffettivo(mtb_lisv_data.prz_base, mtb_lisv_data.prz_vend, mtb_aart.perc_sfrido) as margine_eff,\n" + + " dbo.f_calcRicaricoEffettivo(mtb_lisv_data.prz_base, mtb_lisv_data.prz_vend, mtb_aart.perc_sfrido) as ricarico_eff, \n" + + " mtb_lisv_data.prz_vend as prz_vend, \n" + + " mtb_lisv_data.prz_vend_iva as prz_vend_iva, \n" + + " mtb_lisv_data.perc_sco1 as perc_sco1, \n" + + " mtb_lisv_data.perc_sco2 as perc_sco2, \n" + + " mtb_lisv_data.perc_sco3 as perc_sco3, \n" + + " mtb_lisv_data.perc_sco4 as perc_sco4, \n" + + " mtb_lisv_data.perc_prov as perc_prov, \n" + + " mtb_lisv_data.fisso_prov as fisso_prov, \n" + + " mtb_lisv_data.posizione as posizione, \n" + + " mtb_lisv_data.perc_gest as perc_gest, \n" + + " mtb_lisv_data.val_gest as val_gest, \n" + + " mtb_lisv_data.data_agg_prz as data_agg_prz, \n" + + " mtb_lisv_data.perc_ispe as perc_ispe, \n" + + " mtb_lisv_data.val_ispe as val_ispe, \n" + + " mtb_lisv_data.perc_promo as perc_promo, \n" + + " mtb_lisv_data.val_promo as val_promo, \n" + + " mtb_lisv_data.perc_oneri as perc_oneri, \n" + + " mtb_lisv_data.val_oneri as val_oneri, \n" + + " mtb_lisv_data.tipo_variazione as tipo_variazione, \n" + + " mtb_lisv_data.note as note,\n" + + " mtb_lisv_data.aggiornato_da as aggiornato_da,\n" + + " mtb_lisv_data.prz_vend * (1 - mtb_lisv_data.perc_sco1/100) * (1 - mtb_lisv_data.perc_sco2/100)* (1 - mtb_lisv_data.perc_sco3/100)* (1 - mtb_lisv_data.perc_sco4/100) as prz_vend_netto ,\n" + + " vtb_promo.descrizione as 'descr_promo',\n" + + " vtb_promo.data_iniz_sell_out,\n" + + " vtb_promo.data_fine_sell_out,\n" + + " vtb_promo.flag_tipo_promo,\n" + + " mtb_lisv_data.sconto_cartoni,\n" + + " mtb_lisv_data.sconto_strato,\n" + + " mtb_lisv_data.sconto_pedane,\n" + + " mtb_lisv_data.giacenza,\n" + + " mtb_lisv_data.magg_prz_vend,\n" + + " vtb_promo.flag_sconto_contrattuale,\n" + + " vtb_promo.intercode_xml_variazioni\n" + + " FROM vtb_list inner join vtb_list_data on vtb_list.cod_vlis = vtb_list_data.cod_vlis \n" + + " inner join vtb_list_data vtb_list_data_rif on vtb_list_data.cod_vlis_rif = vtb_list_data_rif.cod_vlis and\n" + + " vtb_list_data.versione_rif = vtb_list_data_rif.versione \n" + + " inner join mtb_lisv_data on vtb_list_data_rif.cod_vlis = mtb_lisv_data.cod_vlis and\n" + + " vtb_list_data_rif.versione = mtb_lisv_data.versione \n" + + " inner join mtb_aart on mtb_lisv_data.cod_mart = mtb_aart.cod_mart \n" + + " inner join vtb_promo on vtb_list_data_rif.cod_promo = vtb_promo.cod_promo \n" + + " WHERE (@codMart is null or mtb_lisv_data.cod_mart = @codMart ) and\n" + + " (@codvlis is null or vtb_list_data.cod_vlis = @codVlis) and\n" + + " ( @codPromo is null or vtb_list_data.cod_promo = @codPromo ) and\n" + + " (((@dataFine IS NULL OR ISNULL(@dataIniz, dbo.f_convertDatetimeToDate(GETDATE())) = @dataFine) AND \n" + + " ISNULL(@dataIniz, dbo.f_convertDatetimeToDate(GETDATE())) BETWEEN vtb_list_data.data_iniz AND vtb_list_data.data_fine) OR \n" + + " (@dataFine IS NOT NULL AND ISNULL(@dataIniz, dbo.f_convertDatetimeToDate(GETDATE())) <> @dataFine AND \n" + + " (vtb_list_data.data_iniz BETWEEN ISNULL(@dataIniz, dbo.f_convertDatetimeToDate(GETDATE())) AND @dataFine OR \n" + + " vtb_list_data.data_fine BETWEEN ISNULL(@dataIniz, dbo.f_convertDatetimeToDate(GETDATE())) AND @dataFine OR \n" + + " ISNULL(@dataIniz, dbo.f_convertDatetimeToDate(GETDATE())) BETWEEN vtb_list_data.data_iniz AND vtb_list_data.data_fine OR\n" + + " @dataFine BETWEEN vtb_list_data.data_iniz AND vtb_list_data.data_fine )))"); + } + + @Override + public void down() throws Exception { + + } + +} diff --git a/ems-core/src/main/java/it/integry/ems/rules/completing/SalesRules.java b/ems-core/src/main/java/it/integry/ems/rules/completing/SalesRules.java index 02cc7c24a3..584122b3d1 100644 --- a/ems-core/src/main/java/it/integry/ems/rules/completing/SalesRules.java +++ b/ems-core/src/main/java/it/integry/ems/rules/completing/SalesRules.java @@ -61,11 +61,11 @@ public class SalesRules extends QueryRules { } public static boolean checkDataIniz(Connection conn, VtbListData vtbListData) throws Exception { - if (vtbListData.getDataFine() != null ) { + if (vtbListData.getDataFine() != null) { String sql = Query.format("SELECT data_fine from vtb_list_data WHERE cod_vlis = %s AND versione = %s", vtbListData.getCodVlis(), vtbListData.getVersione(), vtbListData.getDataFine()); Date dataFine = UtilityDB.executeSimpleQueryOnlyFirstRowFirstColumn(conn, sql); - if (dataFine != null ) { + if (dataFine != null) { if (DateTimeComparator.getDateOnlyInstance().compare(vtbListData.getDataFine(), dataFine) == 0 && vtbListData.getDataIniz().before((UtilityDate.getTodayWithoutTime())) && vtbListData.getMtbLisvData().size() > 0) { @@ -78,9 +78,9 @@ public class SalesRules extends QueryRules { } - if ( vtbListData.getDataIniz().before((UtilityDate.getTodayWithoutTime()))) + if (vtbListData.getDataIniz().before((UtilityDate.getTodayWithoutTime()))) throw new Exception(String.format("Impossibile inserire una %s data inizio antecedente a oggi", - (vtbListData.getDataFine() != null?"promozione":"variazione"))); + (vtbListData.getDataFine() != null ? "promozione" : "variazione"))); return true; @@ -91,11 +91,11 @@ public class SalesRules extends QueryRules { String promoEscluse = setupGest.getSetup(conn, "VTB_LIST", "CHECK_DATA_FINE", "PROMO_ESCLUSE"); if (!UtilityString.isNullOrEmpty(promoEscluse)) { String[] split = promoEscluse.split("\\|"); - if (Arrays.stream(split).anyMatch(x-> x.equalsIgnoreCase(vtbListData.getCodPromo()))) + if (Arrays.stream(split).anyMatch(x -> x.equalsIgnoreCase(vtbListData.getCodPromo()))) return true; } - if (vtbListData.getDataFine().before(vtbListData.getDataIniz()) ) + if (vtbListData.getDataFine().before(vtbListData.getDataIniz())) throw new Exception(String.format("Impossibile inserire//modificare una promozione con data fine (%s) antecedente a data inizio ( %s )", new SimpleDateFormat(CommonConstants.DATE_FORMAT_DMY).format(vtbListData.getDataFine()), new SimpleDateFormat(CommonConstants.DATE_FORMAT_DMY).format(vtbListData.getDataIniz()))); @@ -159,6 +159,36 @@ public class SalesRules extends QueryRules { return untMisVend; } + public static List insertVtbListDataRif(Connection connection, VtbList vtbList) throws SQLException { + String sql = + "SELECT cod_vlis, versione, data_iniz\n" + + "FROM vtb_list_data\n" + + "WHERE data_iniz >= (SELECT data_iniz\n" + + " FROM vtb_list_data\n" + + " WHERE cod_vlis = [cod_vlis]\n" + + " AND ([versione] is null or versione = [versione])\n" + + " AND data_fine IS NULL)\n" + + " AND cod_vlis = [cod_vlis]\n" + + " AND data_fine IS NULL"; + sql = sql. + replace("[versione]", UtilityDB.valueToString(vtbList.getVersioneRif())) + .replace("[cod_vlis]", UtilityDB.valueToString(vtbList.getCodVlisRif())); + + List> listini = UtilityDB.executeSimpleQuery(connection, sql); + List listVtbListData = new ArrayList<>(); + for (HashMap map : listini) { + VtbListData vtbListData = new VtbListData() + .setCodVlis(vtbList.getCodVlis()) + .setCodVlisRif(UtilityHashMap.getValueIfExists(map, "cod_vlis")) + .setVersioneRif(UtilityHashMap.getValueIfExists(map, "versione")) + .setDataIniz(UtilityHashMap.getValueIfExists(map, "data_iniz")); + vtbListData.setOperation(OperationType.INSERT_OR_UPDATE); + listVtbListData.add(vtbListData); + } + return listVtbListData; + + } + public static VtbList insertVtbList(Connection connection, VtbListData vtbListData) throws SQLException { String sql = Query.format( "SELECT CAST(COUNT(*) AS BIT) FROM vtb_list WHERE cod_vlis = %s", @@ -192,10 +222,10 @@ public class SalesRules extends QueryRules { } VtbPromo vtbPromo = new VtbPromo() - .setCodPromo(vtbListData.getCodPromo()) - .setDescrizione(vtbListData.getDescrPromo()) - .setDataInizSellIn(vtbListData.getDataIniz()) - .setDataFineSellIn(vtbListData.getDataFine()); + .setCodPromo(vtbListData.getCodPromo()) + .setDescrizione(vtbListData.getDescrPromo()) + .setDataInizSellIn(vtbListData.getDataIniz()) + .setDataFineSellIn(vtbListData.getDataFine()); vtbPromo.setOperation(OperationType.INSERT_OR_UPDATE); return vtbPromo; @@ -229,7 +259,7 @@ public class SalesRules extends QueryRules { "where mtb_lisv_data.cod_mart = " + UtilityDB.valueToString(mtbLisvData.getCodMart()) + " and " + "vtb_list_data.cod_vlis = " + UtilityDB.valueToString(mtbLisvData.getCodVlis()) + " and " + "vtb_list_data.data_iniz <= " + UtilityDB.valueDateToString(mtbLisvData.getDataIniz(), CommonConstants.DATE_FORMAT_YMD) + - (mtbLisvData.getVersione() != null?" AND vtb_list_data.versione <> " + UtilityDB.valueToString(mtbLisvData.getVersione()):"")+ + (mtbLisvData.getVersione() != null ? " AND vtb_list_data.versione <> " + UtilityDB.valueToString(mtbLisvData.getVersione()) : "") + " ORDER BY vtb_list_data.data_iniz desc"; String tipoVariazione = UtilityDB.executeSimpleQueryOnlyFirstRowFirstColumn(connection, sql); @@ -287,19 +317,19 @@ public class SalesRules extends QueryRules { testata.setVersione(maxVersioneVend); Stream.of(testata.getMtbLisvData()).forEach( - x->x.setVersione(maxVersioneVend) + x -> x.setVersione(maxVersioneVend) ); Stream.of(testata.getMtbLisvDataSpese()).forEach( - x->x.setVersione(maxVersioneVend) + x -> x.setVersione(maxVersioneVend) ); } private static Integer getMaxVersioneVend(Connection conn, String codVlis) throws Exception { String query = " SELECT IsNull(max(versione), 0) + 1 versione" - + " FROM vtb_list_data " - + " WHERE cod_vlis = " - + UtilityDB.valueToString(codVlis); + + " FROM vtb_list_data " + + " WHERE cod_vlis = " + + UtilityDB.valueToString(codVlis); return UtilityDB.executeSimpleQueryOnlyFirstRowFirstColumn(conn, query); } @@ -483,7 +513,7 @@ public class SalesRules extends QueryRules { Date dataValidita = null; if (entity instanceof DtbOrdr || entity instanceof WdtbOrdr) { dataValidita = entity.getDataOrd(); - if (entity instanceof DtbOrdr ) { + if (entity instanceof DtbOrdr) { DtbOrdt dtbOrdt = ((DtbOrdt) entity.getParent()); if (dtbOrdt.getVtbClie().getFlagPrzCons()) { dataValidita = dtbOrdt.getDataConsRich(); @@ -491,7 +521,7 @@ public class SalesRules extends QueryRules { } else { String sql = String.format("SELECT flag_prz_cons FROM vtb_clie WHERE cod_anag = %s", UtilityDB.valueToString(entity.getCodAnag())); boolean flagPrzCons = UtilityDB.executeSimpleQueryOnlyFirstRowFirstColumn(conn, sql); - if ( flagPrzCons ){ + if (flagPrzCons) { dataValidita = ((WdtbOrdt) entity.getParent()).getDataConsRich(); } } @@ -511,8 +541,8 @@ public class SalesRules extends QueryRules { valUntIva != null) { BigDecimal percAliq = (BigDecimal) DroolsUtil.getEntityFieldValue(entity, "perc_aliq"); - if ( percAliq == null ) - throw new Exception ( String.format("Aliquota iva mancante sull'articolo ", entity.getCodMart())); + if (percAliq == null) + throw new Exception(String.format("Aliquota iva mancante sull'articolo ", entity.getCodMart())); BigDecimal valUnt = CommonRules.scorporoIva(valUntIva, percAliq); entity.setValUnt(valUnt); } @@ -791,7 +821,7 @@ public class SalesRules extends QueryRules { .map(x -> (String) x.getKey()) .toList(); - if ( artEquiErr.size() > 0 ) { + if (artEquiErr.size() > 0) { // List art = Stream.of(lisv) // .filter(x -> artEquiErr.contains(x.getIdArtEqui())) // .map(MtbLisvData::getCodMart) @@ -857,11 +887,11 @@ public class SalesRules extends QueryRules { "ricarico_max, " + "mtb_aart.descrizione, " + "flag_tipo_ricarico " + - " FROM vtb_range_ricarico INNER JOIN mtb_aart ON " + + " FROM vtb_range_ricarico INNER JOIN mtb_aart ON " + " vtb_range_ricarico.cod_mgrp = mtb_aart.cod_mgrp AND " + " vtb_range_ricarico.cod_msgr = mtb_aart.cod_msgr " + - " WHERE mtb_aart.cod_mart = " + UtilityDB.valueToString(entity.getCodMart()) + "AND " + - "( vtb_range_ricarico.ricarico_min <> 0 OR vtb_range_ricarico.ricarico_max <> 0 )"; + " WHERE mtb_aart.cod_mart = " + UtilityDB.valueToString(entity.getCodMart()) + "AND " + + "( vtb_range_ricarico.ricarico_min <> 0 OR vtb_range_ricarico.ricarico_max <> 0 )"; ps = conn.prepareStatement(query); rs = ps.executeQuery(); if (rs.next()) { @@ -930,14 +960,14 @@ public class SalesRules extends QueryRules { return value.subtract(minValue).signum() >= 0 && value.subtract(maxValue).signum() <= 0; } - public static void insertMtbLisv(Connection conn, MtbLisvData mtbLisvData) throws Exception{ + public static void insertMtbLisv(Connection conn, MtbLisvData mtbLisvData) throws Exception { String sql = "SELECT Cast(count(*) as bit) " + - " FROM mtb_lisv " + - " WHERE cod_vlis = " + UtilityDB.valueToString(mtbLisvData.getCodVlis()) + " AND " + - "cod_mart = " + UtilityDB.valueToString(mtbLisvData.getCodMart()); + " FROM mtb_lisv " + + " WHERE cod_vlis = " + UtilityDB.valueToString(mtbLisvData.getCodVlis()) + " AND " + + "cod_mart = " + UtilityDB.valueToString(mtbLisvData.getCodMart()); boolean existLiv = UtilityDB.executeSimpleQueryOnlyFirstRowFirstColumn(conn, sql); - if ( !existLiv ) { + if (!existLiv) { MtbLisv mtbLisv = new MtbLisv() .setCodMart(mtbLisvData.getCodMart()) .setCodVlis(mtbLisvData.getCodVlis()) @@ -948,6 +978,7 @@ public class SalesRules extends QueryRules { mtbLisvData.setMtbLisv(mtbLisv); } } + public static void updArtEqui(Connection conn, VtbListData testata) throws Exception { boolean aggiornaEquivalenti = setupGest.getSetupBoolean("vtb_list", "ART_EQUIVALENTI", "AGGIORNAMENTO_AUTO"); if (!aggiornaEquivalenti) return; @@ -1011,15 +1042,15 @@ public class SalesRules extends QueryRules { "isnull(lisv.unt_mis_ven,articoli.unt_mis) as unt_mis_vend,\n" + "IsNull(lisv.rap_conv, case lisv.unt_mis_ven WHEN articoli.unt_mis2 THEN articoli.unt_mis2 WHEN articoli.unt_mis3 THEN articoli.unt_mis3 ELSE 1 END ) as rap_conv,\n" + "CASE WHEN articoli.flag_equi_prezzo = 'B' OR articoli.flag_equi_prezzo = 'T' THEN " + - UtilityDB.valueToString(datiListino.getPrzBase()) + " ELSE IsNull(lisv.prz_base,0) END as prz_base,\n" + + UtilityDB.valueToString(datiListino.getPrzBase()) + " ELSE IsNull(lisv.prz_base,0) END as prz_base,\n" + "CASE WHEN articoli.flag_equi_prezzo = 'R' OR articoli.flag_equi_prezzo = 'P' OR articoli.flag_equi_prezzo = 'T' THEN " + - UtilityDB.valueToString(datiListino.getRicarica()) + " ELSE IsNull(lisv.ricarico,0) END as ricarica,\n" + + UtilityDB.valueToString(datiListino.getRicarica()) + " ELSE IsNull(lisv.ricarico,0) END as ricarica,\n" + "CASE WHEN articoli.flag_equi_prezzo = 'R' OR articoli.flag_equi_prezzo = 'P' OR articoli.flag_equi_prezzo = 'T' THEN\n" + - UtilityDB.valueToString(datiListino.getMaggPrzVend()) + " ELSE IsNull(lisv.magg_prz_vend,0) END as magg_prz_vend,\n" + - "compute_column.prz_vend as prz_vend,\n"+ - "CASE WHEN articoli.flag_equi_prezzo = 'B' OR articoli.flag_equi_prezzo = 'R' THEN \n"+ - "dbo.f_calcPrzVendIva(lisv.cod_vlis, lisv.cod_mart, compute_column.prz_vend) \n" + - "ELSE " + UtilityDB.valueToString(datiListino.getPrzVendIva()) + " END as prz_vend_iva,\n"+ + UtilityDB.valueToString(datiListino.getMaggPrzVend()) + " ELSE IsNull(lisv.magg_prz_vend,0) END as magg_prz_vend,\n" + + "compute_column.prz_vend as prz_vend,\n" + + "CASE WHEN articoli.flag_equi_prezzo = 'B' OR articoli.flag_equi_prezzo = 'R' THEN \n" + + "dbo.f_calcPrzVendIva(lisv.cod_vlis, lisv.cod_mart, compute_column.prz_vend) \n" + + "ELSE " + UtilityDB.valueToString(datiListino.getPrzVendIva()) + " END as prz_vend_iva,\n" + "IsNull(lisv.perc_sco1,0) as perc_sco1,\n" + "IsNull(lisv.perc_sco2,0) as perc_sco2,\n" + "IsNull(lisv.perc_sco3,0) as perc_sco3,\n" + @@ -1046,17 +1077,17 @@ public class SalesRules extends QueryRules { UtilityDB.valueToString(datiListino.getPrzVendSug()) + " as prz_vend_sug,\n" + "case when lisv.cod_vlis is null THEN 'INSERT' ELSE 'UPDATE' END AS operation\n" + " FROM articoli \n" + - "LEFT OUTER JOIN dbo.getListinoVendita(" + UtilityDB.valueToString(testata.getDataIniz()) + "," + - UtilityDB.valueToString(testata.getCodVlis()) + ", null) lisv ON articoli.cod_mart = lisv.cod_mart " + - "CROSS APPLY (\n"+ - "SELECT CASE articoli.flag_equi_prezzo\n" + - "WHEN 'B' THEN dbo.f_calcPrzVend(lisv.cod_vlis, lisv.cod_mart, " + UtilityDB.valueToString(datiListino.getPrzBase()) + ", lisv.ricarico, articoli.perc_sfrido, lisv.magg_prz_vend)\n"+ - "WHEN 'R' THEN dbo.f_calcPrzVend(lisv.cod_vlis, lisv.cod_mart, IsNull(lisv.prz_base,0), " + UtilityDB.valueToString(datiListino.getRicarica()) + ", articoli.perc_sfrido, " + UtilityDB.valueToString(datiListino.getMaggPrzVend())+ " )\n"+ - "ELSE " + UtilityDB.valueToString(datiListino.getPrzVend()) + " END as prz_vend) compute_column\n"+ - " WHERE ( lisv.tipo_variazione is null OR lisv.tipo_variazione <> 'D' ) " + whereCondPrezzoBloccato; + "LEFT OUTER JOIN dbo.getListinoVendita(" + UtilityDB.valueToString(testata.getDataIniz()) + "," + + UtilityDB.valueToString(testata.getCodVlis()) + ", null) lisv ON articoli.cod_mart = lisv.cod_mart " + + "CROSS APPLY (\n" + + "SELECT CASE articoli.flag_equi_prezzo\n" + + "WHEN 'B' THEN dbo.f_calcPrzVend(lisv.cod_vlis, lisv.cod_mart, " + UtilityDB.valueToString(datiListino.getPrzBase()) + ", lisv.ricarico, articoli.perc_sfrido, lisv.magg_prz_vend)\n" + + "WHEN 'R' THEN dbo.f_calcPrzVend(lisv.cod_vlis, lisv.cod_mart, IsNull(lisv.prz_base,0), " + UtilityDB.valueToString(datiListino.getRicarica()) + ", articoli.perc_sfrido, " + UtilityDB.valueToString(datiListino.getMaggPrzVend()) + " )\n" + + "ELSE " + UtilityDB.valueToString(datiListino.getPrzVend()) + " END as prz_vend) compute_column\n" + + " WHERE ( lisv.tipo_variazione is null OR lisv.tipo_variazione <> 'D' ) " + whereCondPrezzoBloccato; List articoliDaAggiornare = new ResultSetMapper().mapQuerySetToList(conn, sql, MtbLisvData.class, OperationType.INSERT_OR_UPDATE); - for ( MtbLisvData l:articoliDaAggiornare){ + for (MtbLisvData l : articoliDaAggiornare) { l.setCompletingManager(datiListino.getCompletingManager()); l.setUsername(datiListino.getUsername()); testata.completeEntityChild(conn, l, true); diff --git a/ems-core/src/main/java/it/integry/ems_model/entity/VtbList.java b/ems-core/src/main/java/it/integry/ems_model/entity/VtbList.java index 946dd8f862..72a0c95baa 100644 --- a/ems-core/src/main/java/it/integry/ems_model/entity/VtbList.java +++ b/ems-core/src/main/java/it/integry/ems_model/entity/VtbList.java @@ -1,5 +1,6 @@ package it.integry.ems_model.entity; +import com.fasterxml.jackson.annotation.JsonProperty; import com.fasterxml.jackson.annotation.JsonTypeName; import it.integry.ems_model.annotation.*; import it.integry.ems_model.base.EntityBase; @@ -105,9 +106,15 @@ public class VtbList extends EntityBase { @SqlField(value = "flag_add_trasp", maxLength = 1, nullable = false, defaultObjectValue = "true") private Boolean flagAddTrasp; + @JsonProperty("versione_rif") + private Integer versioneRif; + @Priority(101) private List vtbList; + @Priority(102) + private List vtbListData; + @EntityChild private List vtbListPremi; @@ -318,6 +325,16 @@ public class VtbList extends EntityBase { return this; } + + public Integer getVersioneRif() { + return versioneRif; + } + + public VtbList setVersioneRif(Integer versioneRif) { + this.versioneRif = versioneRif; + return this; + } + public List getVtbList() { return vtbList; } @@ -327,6 +344,15 @@ public class VtbList extends EntityBase { return this; } + public List getVtbListData() { + return vtbListData; + } + + public VtbList setVtbListData(List vtbListData) { + this.vtbListData = vtbListData; + return this; + } + public List getVtbListPremi() { return vtbListPremi; } diff --git a/ems-core/src/main/java/it/integry/ems_model/entity/VtbListData.java b/ems-core/src/main/java/it/integry/ems_model/entity/VtbListData.java index a3a6693e09..2be64edb24 100644 --- a/ems-core/src/main/java/it/integry/ems_model/entity/VtbListData.java +++ b/ems-core/src/main/java/it/integry/ems_model/entity/VtbListData.java @@ -32,7 +32,6 @@ public class VtbListData extends EntityBase { private String codVlis; @PK - @ImportFromParent @SqlField(value = "versione", nullable = false) private Integer versione; @@ -72,6 +71,10 @@ public class VtbListData extends EntityBase { @SqlField(value = "cod_vlis_rif", maxLength = 5, nullable = true) private String codVlisRif; + @ImportFromParent(value = "versione") + @SqlField(value = "versione_rif") + private Integer versioneRif; + @SqlField(value = "condizioni_comm", nullable = true) private String condizioniComm; @@ -235,6 +238,15 @@ public class VtbListData extends EntityBase { return this; } + public Integer getVersioneRif() { + return versioneRif; + } + + public VtbListData setVersioneRif(Integer versioneRif) { + this.versioneRif = versioneRif; + return this; + } + public String getCondizioniComm() { return condizioniComm; } diff --git a/ems-core/src/main/resources/rules/LisV.drl b/ems-core/src/main/resources/rules/LisV.drl index f6281eb987..eb9654d164 100644 --- a/ems-core/src/main/resources/rules/LisV.drl +++ b/ems-core/src/main/resources/rules/LisV.drl @@ -424,6 +424,18 @@ then } end +rule "insertVtbListDataRif" +no-loop +when + eval(completeRulesEnabled) + $entity : VtbList(codVlis != null && codVlisRif !=null && (vtbListData == null || vtbListData.size == 0) && operation != OperationType.DELETE) +then + List vtbListData = SalesRules.insertVtbListDataRif(conn, $entity); + modify($entity){ + setVtbListData(vtbListData) + } +end + rule "completePromoVend" no-loop when diff --git a/ems-engine/src/main/java/it/integry/ems/product/controller/ListiniVenditaController.java b/ems-engine/src/main/java/it/integry/ems/product/controller/ListiniVenditaController.java index 67a6993179..551d11a10c 100644 --- a/ems-engine/src/main/java/it/integry/ems/product/controller/ListiniVenditaController.java +++ b/ems-engine/src/main/java/it/integry/ems/product/controller/ListiniVenditaController.java @@ -113,4 +113,5 @@ public class ListiniVenditaController { return UtilityEntity.toServiceRestResponse(entities); } + } diff --git a/ems-engine/src/main/java/it/integry/ems/product/importaz/service/ImportAnagListiniService.java b/ems-engine/src/main/java/it/integry/ems/product/importaz/service/ImportAnagListiniService.java index 42205ae90a..94e7770faa 100644 --- a/ems-engine/src/main/java/it/integry/ems/product/importaz/service/ImportAnagListiniService.java +++ b/ems-engine/src/main/java/it/integry/ems/product/importaz/service/ImportAnagListiniService.java @@ -618,7 +618,7 @@ public class ImportAnagListiniService { entitySave.addAll(vtbGriglia); } } - } else if (entityList.get(0) instanceof VtbCompensiTdr) { + } else if (entityList.get(0) instanceof VtbCompensiTdr) { if (Stream.of(entitySave).filter(x -> x instanceof VtbCompensiTdt).findFirst().isEmpty()) { List vtbCompensiTdt = getVtbCompensiTdt(entityList); if (vtbCompensiTdt != null && vtbCompensiTdt.size() > 0) {