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 =
|
||||
"WITH componenti AS (SELECT cod_mart, cod_mart AS cod_comp\n" +
|
||||
" FROM mtb_aart\n" +
|
||||
" WHERE articolo_composto = 'N'\n" +
|
||||
" UNION ALL\n" +
|
||||
" SELECT mtb_comp.cod_mart, cod_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 wdtb_doct.data_reg,\n" +
|
||||
" FROM mtb_comp),\n" +
|
||||
" doc AS (SELECT avw_last_acq_lotto_w.data_reg,\n" +
|
||||
" componenti.cod_comp AS cod_mart,\n" +
|
||||
" wdtb_docr.partita_mag,\n" +
|
||||
" wdtb_doct.cod_mdep,\n" +
|
||||
" wdtb_doct.data_ins\n" +
|
||||
" FROM wdtb_doct\n" +
|
||||
" INNER JOIN 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 componenti ON wdtb_docr.cod_mart = componenti.cod_mart\n" +
|
||||
" avw_last_acq_lotto_w.partita_mag,\n" +
|
||||
" avw_last_acq_lotto_w.cod_mdep,\n" +
|
||||
" avw_last_acq_lotto_w.data_ins,\n" +
|
||||
" avw_last_acq_lotto_w.cod_vlis\n" +
|
||||
" FROM avw_last_acq_lotto_w\n" +
|
||||
" INNER JOIN componenti ON avw_last_acq_lotto_w.cod_mart = componenti.cod_mart\n" +
|
||||
" WHERE avw_last_acq_lotto_w.cod_vlis = '[COD_VLIS]'\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" +
|
||||
" dtb_docr.partita_mag,\n" +
|
||||
" dtb_doct.cod_mdep,\n" +
|
||||
" dtb_doct.data_ins\n" +
|
||||
" FROM dtb_doct\n" +
|
||||
" INNER JOIN 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 dtb_tipi ON dtb_doct.cod_dtip = dtb_docr.cod_dtip\n" +
|
||||
" INNER JOIN componenti ON dtb_docr.cod_mart = componenti.cod_mart\n" +
|
||||
" WHERE dtb_tipi.gestione = 'A'\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" +
|
||||
" INNER JOIN (SELECT cod_mart, cod_mart AS cod_comp\n" +
|
||||
" FROM mtb_aart\n" +
|
||||
" UNION ALL\n" +
|
||||
" SELECT cod_mart, cod_comp\n" +
|
||||
" FROM mtb_comp\n" +
|
||||
" UNION ALL\n" +
|
||||
" SELECT cod_comp, cod_mart\n" +
|
||||
" FROM mtb_comp) kit ON doc.cod_mart = kit.cod_mart\n" +
|
||||
" INNER JOIN mtb_depo ON doc.cod_mdep = mtb_depo.cod_mdep\n" +
|
||||
" WHERE CAST(doc.data_ins AS DATE) BETWEEN DATEADD(DD, -8, '[DATA_VALIDITA]') AND DATEADD(DD, -1, '[DATA_VALIDITA]')\n" +
|
||||
" AND doc.partita_mag IS NOT NULL\n" +
|
||||
" AND mtb_depo.cod_vlis = '[COD_VLIS]'\n" +
|
||||
" avw_last_acq_lotto.partita_mag,\n" +
|
||||
" avw_last_acq_lotto.cod_mdep,\n" +
|
||||
" avw_last_acq_lotto.data_ins,\n" +
|
||||
" avw_last_acq_lotto.cod_vlis\n" +
|
||||
" FROM avw_last_acq_lotto\n" +
|
||||
" INNER JOIN componenti ON avw_last_acq_lotto.cod_mart = componenti.cod_mart\n" +
|
||||
" WHERE avw_last_acq_lotto.cod_vlis = '[COD_VLIS]')\n" +
|
||||
" ,\n" +
|
||||
" max_doc AS (SELECT cod_mart,\n" +
|
||||
" cod_mdep,\n" +
|
||||
" MAX(data_ins) AS last_ins\n" +
|
||||
" FROM doc\n" +
|
||||
" WHERE data_reg <= '2025/10/14'\n" +
|
||||
" GROUP BY cod_mdep, cod_mart),\n" +
|
||||
" last_doc_tot AS (SELECT doc.*\n" +
|
||||
" FROM max_doc\n" +
|
||||
" INNER JOIN doc ON doc.cod_mdep = max_doc.cod_mdep\n" +
|
||||
" AND doc.cod_mart = max_doc.cod_mart\n" +
|
||||
" AND doc.data_ins = max_doc.last_ins)\n" +
|
||||
" ,\n" +
|
||||
" last_doc AS (SELECT *\n" +
|
||||
" FROM last_doc_tot\n" +
|
||||
" WHERE CAST(last_doc_tot.data_ins AS DATE) BETWEEN DATEADD(DD, -8, '[DATA_VALIDITA]') AND DATEADD(DD, -1, '[DATA_VALIDITA]')\n" +
|
||||
" AND NOT EXISTS (SELECT *\n" +
|
||||
" FROM doc d\n" +
|
||||
" WHERE d.data_ins < DATEADD(DD, -1, '[DATA_VALIDITA]')\n" +
|
||||
" AND d.data_reg > doc.data_reg\n" +
|
||||
" AND d.cod_mart = doc.cod_mart\n" +
|
||||
" AND d.cod_mdep = doc.cod_mdep)),\n" +
|
||||
" AND d.data_reg > last_doc_tot.data_reg\n" +
|
||||
" AND d.cod_mart = last_doc_tot.cod_mart\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" +
|
||||
" doc.cod_mart,\n" +
|
||||
" 'A' AS tipo_variazione,\n" +
|
||||
" CONVERT(VARCHAR(15), NULL) AS cod_mart_view,\n" +
|
||||
" 'N' AS 'fine_promo',\n" +
|
||||
" CONVERT(VARCHAR(25), doc.partita_mag) AS lotto\n" +
|
||||
" FROM last_doc doc\n" +
|
||||
" INNER JOIN mtb_aart ON doc.cod_mart = mtb_aart.cod_mart\n" +
|
||||
" WHERE doc.ord = 1)\n";
|
||||
" FROM last_doc_kit doc)\n";
|
||||
|
||||
queryAssortimento =
|
||||
queryAssortimento
|
||||
|
||||
Reference in New Issue
Block a user