aggiunti lotti multipli su kit
Some checks failed
IntegryManagementSystem_Multi/pipeline/head There was a failure building this commit
Some checks failed
IntegryManagementSystem_Multi/pipeline/head There was a failure building this commit
This commit is contained in:
@@ -0,0 +1,99 @@
|
|||||||
|
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;
|
||||||
|
|
||||||
|
public class Migration_20251013174133 extends BaseMigration implements MigrationModelInterface {
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void up() throws Exception {
|
||||||
|
if (isHistoryDB())
|
||||||
|
return;
|
||||||
|
|
||||||
|
if (!isCustomer(IntegryCustomer.Carelli)) return;
|
||||||
|
|
||||||
|
if (isCustomerDb(IntegryCustomerDB.Carelli_Format)) return;
|
||||||
|
|
||||||
|
createOrUpdateView("avw_last_acq_lotto_w"
|
||||||
|
, "CREATE VIEW avw_last_acq_lotto_w WITH SCHEMABINDING AS\n" +
|
||||||
|
" SELECT wdtb_doct.data_reg,\n" +
|
||||||
|
" cod_mart,\n" +
|
||||||
|
" wdtb_docr.partita_mag,\n" +
|
||||||
|
" wdtb_doct.cod_mdep,\n" +
|
||||||
|
" wdtb_doct.data_ins,\n" +
|
||||||
|
" mtb_depo.cod_vlis,\n" +
|
||||||
|
" wdtb_docr.id_riga\n" +
|
||||||
|
" FROM dbo.wdtb_doct\n" +
|
||||||
|
" INNER JOIN dbo.wdtb_docr ON wdtb_doct.cod_anag = wdtb_docr.cod_anag AND\n" +
|
||||||
|
" wdtb_doct.cod_dtip = wdtb_docr.cod_dtip AND\n" +
|
||||||
|
" wdtb_doct.data_doc = wdtb_docr.data_doc AND\n" +
|
||||||
|
" wdtb_doct.ser_doc = wdtb_docr.ser_doc AND\n" +
|
||||||
|
" wdtb_doct.num_doc = wdtb_docr.num_doc\n" +
|
||||||
|
" inner join dbo.mtb_depo on mtb_depo.cod_mdep = wdtb_doct.cod_mdep\n" +
|
||||||
|
" WHERE wdtb_docr.partita_mag IS NOT NULL");
|
||||||
|
|
||||||
|
executeStatement("CREATE UNIQUE CLUSTERED INDEX [IDX_CLUSTERED_avw_last_acq_lotto_w] ON [dbo].avw_last_acq_lotto_w\n" +
|
||||||
|
" (\n" +
|
||||||
|
" data_reg,\n" +
|
||||||
|
" cod_mart,\n" +
|
||||||
|
" partita_mag,\n" +
|
||||||
|
" cod_mdep,\n" +
|
||||||
|
" data_ins,\n" +
|
||||||
|
" id_riga\n" +
|
||||||
|
" )",
|
||||||
|
"CREATE NONCLUSTERED INDEX ix_avw_last_acq_lotto_w_2\n" +
|
||||||
|
" ON [dbo].[avw_last_acq_lotto_w] ([cod_mart],[cod_mdep],[data_reg])\n" +
|
||||||
|
" INCLUDE ([data_ins],[cod_vlis])",
|
||||||
|
"CREATE NONCLUSTERED INDEX ix_avw_last_acq_lotto_w_1\n" +
|
||||||
|
" ON [dbo].[avw_last_acq_lotto_w] ([cod_mdep],[data_reg],[cod_vlis])\n" +
|
||||||
|
" INCLUDE ([cod_mart],[data_ins])");
|
||||||
|
|
||||||
|
createOrUpdateView("avw_last_acq_lotto", "CREATE VIEW avw_last_acq_lotto WITH SCHEMABINDING AS\n" +
|
||||||
|
" SELECT dtb_doct.data_reg,\n" +
|
||||||
|
" cod_mart,\n" +
|
||||||
|
" dtb_docr.partita_mag,\n" +
|
||||||
|
" dtb_doct.cod_mdep,\n" +
|
||||||
|
" dtb_doct.data_ins,\n" +
|
||||||
|
" mtb_depo.cod_vlis,\n" +
|
||||||
|
" dtb_docr.id_riga,\n" +
|
||||||
|
" CAST(dtb_doct.cod_anag AS VARCHAR(10))\n" +
|
||||||
|
" + '_' + dtb_doct.cod_dtip\n" +
|
||||||
|
" + '_' + convert(varchar(10), dtb_doct.data_doc, 112)\n" +
|
||||||
|
" + '_' + dtb_doct.ser_doc\n" +
|
||||||
|
" + '_' + CAST(dtb_doct.num_doc AS VARCHAR(10)) AS chiave_doc\n" +
|
||||||
|
" FROM dbo.dtb_doct\n" +
|
||||||
|
" INNER JOIN dbo.dtb_docr\n" +
|
||||||
|
" ON dtb_doct.cod_anag = dtb_docr.cod_anag AND dtb_doct.cod_dtip = dtb_docr.cod_dtip AND\n" +
|
||||||
|
" dtb_doct.data_doc = dtb_docr.data_doc AND dtb_doct.ser_doc = dtb_docr.ser_doc AND\n" +
|
||||||
|
" dtb_doct.num_doc = dtb_docr.num_doc\n" +
|
||||||
|
" INNER JOIN dbo.dtb_tipi ON dtb_doct.cod_dtip = dtb_tipi.cod_dtip\n" +
|
||||||
|
" inner join dbo.mtb_depo on mtb_depo.cod_mdep = dtb_doct.cod_mdep\n" +
|
||||||
|
" WHERE dtb_tipi.gestione = 'A'\n" +
|
||||||
|
" AND dtb_docr.partita_mag IS NOT NULL\n" +
|
||||||
|
" AND dtb_tipi.tipo_emissione = 'DIRETTA'\n" +
|
||||||
|
" AND dtb_tipi.segno_qta_car = 1\n" +
|
||||||
|
" AND flag_chk_tracciabilita = 1\n" +
|
||||||
|
" and dtb_doct.data_reg >= CONVERT(datetime, '20230101', 112)");
|
||||||
|
|
||||||
|
executeStatement("CREATE UNIQUE CLUSTERED INDEX [IDX_CLUSTERED_avw_last_acq_lotto] ON [dbo].avw_last_acq_lotto\n" +
|
||||||
|
" (\n" +
|
||||||
|
" data_reg,\n" +
|
||||||
|
" cod_mart,\n" +
|
||||||
|
" partita_mag,\n" +
|
||||||
|
" cod_mdep,\n" +
|
||||||
|
" data_ins,\n" +
|
||||||
|
" id_riga,\n" +
|
||||||
|
" chiave_doc\n" +
|
||||||
|
" )");
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void down() throws Exception {
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -829,72 +829,95 @@ public class VariazioniPvService {
|
|||||||
queryAssortimento =
|
queryAssortimento =
|
||||||
"WITH componenti AS (SELECT cod_mart, cod_mart AS cod_comp\n" +
|
"WITH componenti AS (SELECT cod_mart, cod_mart AS cod_comp\n" +
|
||||||
" FROM mtb_aart\n" +
|
" FROM mtb_aart\n" +
|
||||||
" WHERE articolo_composto = 'N'\n" +
|
|
||||||
" UNION ALL\n" +
|
" UNION ALL\n" +
|
||||||
" SELECT mtb_comp.cod_mart, cod_comp\n" +
|
" SELECT mtb_comp.cod_mart, cod_comp\n" +
|
||||||
" FROM mtb_comp\n" +
|
" FROM mtb_comp),\n" +
|
||||||
" INNER JOIN mtb_aart ON mtb_comp.cod_mart = mtb_aart.cod_mart AND articolo_composto = 'S'),\n" +
|
" doc AS (SELECT avw_last_acq_lotto_w.data_reg,\n" +
|
||||||
" doc AS (SELECT wdtb_doct.data_reg,\n" +
|
|
||||||
" componenti.cod_comp AS cod_mart,\n" +
|
" componenti.cod_comp AS cod_mart,\n" +
|
||||||
" wdtb_docr.partita_mag,\n" +
|
" avw_last_acq_lotto_w.partita_mag,\n" +
|
||||||
" wdtb_doct.cod_mdep,\n" +
|
" avw_last_acq_lotto_w.cod_mdep,\n" +
|
||||||
" wdtb_doct.data_ins\n" +
|
" avw_last_acq_lotto_w.data_ins,\n" +
|
||||||
" FROM wdtb_doct\n" +
|
" avw_last_acq_lotto_w.cod_vlis\n" +
|
||||||
" INNER JOIN wdtb_docr ON wdtb_doct.cod_anag = wdtb_docr.cod_anag AND\n" +
|
" FROM avw_last_acq_lotto_w\n" +
|
||||||
" wdtb_doct.cod_dtip = wdtb_docr.cod_dtip AND\n" +
|
" INNER JOIN componenti ON avw_last_acq_lotto_w.cod_mart = componenti.cod_mart\n" +
|
||||||
" wdtb_doct.data_doc = wdtb_docr.data_doc AND\n" +
|
" WHERE avw_last_acq_lotto_w.cod_vlis = '[COD_VLIS]'\n" +
|
||||||
" wdtb_doct.ser_doc = wdtb_docr.ser_doc AND\n" +
|
|
||||||
" wdtb_doct.num_doc = wdtb_docr.num_doc\n" +
|
|
||||||
" INNER JOIN componenti ON wdtb_docr.cod_mart = componenti.cod_mart\n" +
|
|
||||||
" UNION ALL\n" +
|
" UNION ALL\n" +
|
||||||
" SELECT dtb_doct.data_reg,\n" +
|
" SELECT avw_last_acq_lotto.data_reg,\n" +
|
||||||
" componenti.cod_comp AS cod_mart,\n" +
|
" componenti.cod_comp AS cod_mart,\n" +
|
||||||
" dtb_docr.partita_mag,\n" +
|
" avw_last_acq_lotto.partita_mag,\n" +
|
||||||
" dtb_doct.cod_mdep,\n" +
|
" avw_last_acq_lotto.cod_mdep,\n" +
|
||||||
" dtb_doct.data_ins\n" +
|
" avw_last_acq_lotto.data_ins,\n" +
|
||||||
" FROM dtb_doct\n" +
|
" avw_last_acq_lotto.cod_vlis\n" +
|
||||||
" INNER JOIN dtb_docr\n" +
|
" FROM avw_last_acq_lotto\n" +
|
||||||
" ON dtb_doct.cod_anag = dtb_docr.cod_anag AND dtb_doct.cod_dtip = dtb_docr.cod_dtip AND\n" +
|
" INNER JOIN componenti ON avw_last_acq_lotto.cod_mart = componenti.cod_mart\n" +
|
||||||
" dtb_doct.data_doc = dtb_docr.data_doc AND dtb_doct.ser_doc = dtb_docr.ser_doc AND\n" +
|
" WHERE avw_last_acq_lotto.cod_vlis = '[COD_VLIS]')\n" +
|
||||||
" dtb_doct.num_doc = dtb_docr.num_doc\n" +
|
" ,\n" +
|
||||||
" INNER JOIN dtb_tipi ON dtb_doct.cod_dtip = dtb_docr.cod_dtip\n" +
|
" max_doc AS (SELECT cod_mart,\n" +
|
||||||
" INNER JOIN componenti ON dtb_docr.cod_mart = componenti.cod_mart\n" +
|
" cod_mdep,\n" +
|
||||||
" WHERE dtb_tipi.gestione = 'A'\n" +
|
" MAX(data_ins) AS last_ins\n" +
|
||||||
" AND dtb_tipi.tipo_emissione = 'DIRETTA'\n" +
|
|
||||||
" AND dtb_tipi.segno_qta_car = 1\n" +
|
|
||||||
" AND flag_chk_tracciabilita = 1),\n" +
|
|
||||||
" last_doc AS (SELECT mtb_depo.cod_vlis,\n" +
|
|
||||||
" kit.cod_comp AS cod_mart,\n" +
|
|
||||||
" doc.partita_mag,\n" +
|
|
||||||
" DENSE_RANK() OVER (PARTITION BY kit.cod_comp ORDER BY doc.data_ins DESC ) AS ord\n" +
|
|
||||||
" FROM doc\n" +
|
" FROM doc\n" +
|
||||||
" INNER JOIN (SELECT cod_mart, cod_mart AS cod_comp\n" +
|
" WHERE data_reg <= '2025/10/14'\n" +
|
||||||
" FROM mtb_aart\n" +
|
" GROUP BY cod_mdep, cod_mart),\n" +
|
||||||
" UNION ALL\n" +
|
" last_doc_tot AS (SELECT doc.*\n" +
|
||||||
" SELECT cod_mart, cod_comp\n" +
|
" FROM max_doc\n" +
|
||||||
" FROM mtb_comp\n" +
|
" INNER JOIN doc ON doc.cod_mdep = max_doc.cod_mdep\n" +
|
||||||
" UNION ALL\n" +
|
" AND doc.cod_mart = max_doc.cod_mart\n" +
|
||||||
" SELECT cod_comp, cod_mart\n" +
|
" AND doc.data_ins = max_doc.last_ins)\n" +
|
||||||
" FROM mtb_comp) kit ON doc.cod_mart = kit.cod_mart\n" +
|
" ,\n" +
|
||||||
" INNER JOIN mtb_depo ON doc.cod_mdep = mtb_depo.cod_mdep\n" +
|
" last_doc AS (SELECT *\n" +
|
||||||
" WHERE CAST(doc.data_ins AS DATE) BETWEEN DATEADD(DD, -8, '[DATA_VALIDITA]') AND DATEADD(DD, -1, '[DATA_VALIDITA]')\n" +
|
" FROM last_doc_tot\n" +
|
||||||
" AND doc.partita_mag IS NOT NULL\n" +
|
" WHERE CAST(last_doc_tot.data_ins AS DATE) BETWEEN DATEADD(DD, -8, '[DATA_VALIDITA]') AND DATEADD(DD, -1, '[DATA_VALIDITA]')\n" +
|
||||||
" AND mtb_depo.cod_vlis = '[COD_VLIS]'\n" +
|
|
||||||
" AND NOT EXISTS (SELECT *\n" +
|
" AND NOT EXISTS (SELECT *\n" +
|
||||||
" FROM doc d\n" +
|
" FROM doc d\n" +
|
||||||
" WHERE d.data_ins < DATEADD(DD, -1, '[DATA_VALIDITA]')\n" +
|
" WHERE d.data_ins < DATEADD(DD, -1, '[DATA_VALIDITA]')\n" +
|
||||||
" AND d.data_reg > doc.data_reg\n" +
|
" AND d.data_reg > last_doc_tot.data_reg\n" +
|
||||||
" AND d.cod_mart = doc.cod_mart\n" +
|
" AND d.cod_mart = last_doc_tot.cod_mart\n" +
|
||||||
" AND d.cod_mdep = doc.cod_mdep)),\n" +
|
" AND d.cod_mdep = last_doc_tot.cod_mdep)),\n" +
|
||||||
|
" last_doc_kit AS (SELECT last_doc.data_reg,\n" +
|
||||||
|
" last_doc.cod_mart,\n" +
|
||||||
|
" last_doc.partita_mag,\n" +
|
||||||
|
" last_doc.cod_mdep,\n" +
|
||||||
|
" last_doc.data_ins,\n" +
|
||||||
|
" last_doc.cod_vlis\n" +
|
||||||
|
" FROM last_doc\n" +
|
||||||
|
" UNION\n" +
|
||||||
|
" SELECT last_doc.data_reg,\n" +
|
||||||
|
" mtb_comp.cod_comp,\n" +
|
||||||
|
" last_doc.partita_mag,\n" +
|
||||||
|
" last_doc.cod_mdep,\n" +
|
||||||
|
" last_doc.data_ins,\n" +
|
||||||
|
" last_doc.cod_vlis\n" +
|
||||||
|
" FROM last_doc\n" +
|
||||||
|
" INNER JOIN mtb_comp ON last_doc.cod_mart = mtb_comp.cod_mart\n" +
|
||||||
|
" UNION\n" +
|
||||||
|
" SELECT last_doc.data_reg,\n" +
|
||||||
|
" last_doc.cod_mart,\n" +
|
||||||
|
" last_doc.partita_mag,\n" +
|
||||||
|
" last_doc.cod_mdep,\n" +
|
||||||
|
" last_doc.data_ins,\n" +
|
||||||
|
" last_doc.cod_vlis\n" +
|
||||||
|
" FROM last_doc\n" +
|
||||||
|
" UNION\n" +
|
||||||
|
" SELECT last_doc.data_reg,\n" +
|
||||||
|
" mtb_comp.cod_mart,\n" +
|
||||||
|
" STUFF((SELECT DISTINCT '-' + partita_mag\n" +
|
||||||
|
" FROM mtb_comp kit\n" +
|
||||||
|
" INNER JOIN last_doc_tot doc ON kit.cod_comp = doc.cod_mart AND\n" +
|
||||||
|
" doc.cod_mdep = '[COD_VLIS]'\n" +
|
||||||
|
" WHERE kit.cod_mart = mtb_comp.cod_mart\n" +
|
||||||
|
" FOR XML PATH(''), TYPE).value('.', 'NVARCHAR(MAX)'), 1, 1, '') AS partita_mag,\n" +
|
||||||
|
" last_doc.cod_mdep,\n" +
|
||||||
|
" last_doc.data_ins,\n" +
|
||||||
|
" last_doc.cod_vlis\n" +
|
||||||
|
" FROM mtb_comp\n" +
|
||||||
|
" INNER JOIN last_doc ON mtb_comp.cod_comp = last_doc.cod_mart),\n" +
|
||||||
" tmp_assortimento AS (SELECT cod_vlis,\n" +
|
" tmp_assortimento AS (SELECT cod_vlis,\n" +
|
||||||
" doc.cod_mart,\n" +
|
" doc.cod_mart,\n" +
|
||||||
" 'A' AS tipo_variazione,\n" +
|
" 'A' AS tipo_variazione,\n" +
|
||||||
" CONVERT(VARCHAR(15), NULL) AS cod_mart_view,\n" +
|
" CONVERT(VARCHAR(15), NULL) AS cod_mart_view,\n" +
|
||||||
" 'N' AS 'fine_promo',\n" +
|
" 'N' AS 'fine_promo',\n" +
|
||||||
" CONVERT(VARCHAR(25), doc.partita_mag) AS lotto\n" +
|
" CONVERT(VARCHAR(25), doc.partita_mag) AS lotto\n" +
|
||||||
" FROM last_doc doc\n" +
|
" FROM last_doc_kit doc)\n";
|
||||||
" INNER JOIN mtb_aart ON doc.cod_mart = mtb_aart.cod_mart\n" +
|
|
||||||
" WHERE doc.ord = 1)\n";
|
|
||||||
|
|
||||||
queryAssortimento =
|
queryAssortimento =
|
||||||
queryAssortimento
|
queryAssortimento
|
||||||
|
|||||||
Reference in New Issue
Block a user