Creato menu tracciabilita su pvm, setup per report ed update viste
All checks were successful
IntegryManagementSystem_Multi/pipeline/head This commit looks good

(cherry picked from commit a24e26b436)
This commit is contained in:
2025-09-17 12:14:29 +02:00
parent 82972a537e
commit 2abf8b55ac
2 changed files with 255 additions and 1 deletions

View File

@@ -0,0 +1,254 @@
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_20250917111031 extends BaseMigration implements MigrationModelInterface {
@Override
public void up() throws Exception {
if (isHistoryDB())
return;
createSetupQuery("REPORT_NAME", "REPORT_NAME", "SELECT REPORT_NAME FROM WTB_JREPT ORDER BY 1");
String value = null;
if (this.isCustomerDb(IntegryCustomerDB.RossoGargano_RossoGargano)) {
value = "ReportTracciabilitaUDCAcquistate";
}
createSetup("PVM", "TRACCIABILITA", "REPORT_NAME_UDCACQ", value,
"Nome report stampa tracciabilità udc acquisti", false, "REPORT_NAME", false, false,
false, false, false, null, false, "SELECT REPORT_NAME FROM WTB_JREPT ORDER BY 1");
if (this.isCustomerDb(IntegryCustomerDB.RossoGargano_RossoGargano)) {
value = "ReportTracciabilitaUDCProdotte";
}
createSetup("PVM", "TRACCIABILITA", "REPORT_NAME_UDCPROD", value,
"Nome report stampa tracciabilità udc produzione", false, "REPORT_NAME", false, false,
false, false, false, null, false, "SELECT REPORT_NAME FROM WTB_JREPT ORDER BY 1");
if (this.isCustomerDb(IntegryCustomerDB.RossoGargano_RossoGargano)) {
value = "ReportTracciabilitaUDCVendute";
}
createSetup("PVM", "TRACCIABILITA", "REPORT_NAME_UDCVEND", value,
"Nome report stampa tracciabilità udc vendite", false, "REPORT_NAME", false, false,
false, false, false, null, false, "SELECT REPORT_NAME FROM WTB_JREPT ORDER BY 1");
createOrUpdateView("vw_tracciabUDCACQ",
"CREATE VIEW [dbo].[vw_tracciabUDCACQ] AS\n" +
"SELECT doct.cod_anag AS codAnag,\n" +
" gtb_anag.rag_soc AS ragSoc,\n" +
" doct.data_doc AS dataDoc,\n" +
" doct.ser_doc AS serDoc,\n" +
" doct.num_doc AS numDoc,\n" +
" doct.cod_dtip AS codDtip,\n" +
" doct.num_doc_forn AS numDocForn,\n" +
" mtb_grup.tipo_mgrp AS tipoMgrp,\n" +
" docr.cod_mart AS codMart,\n" +
" docr.descrizione,\n" +
" docr.partita_mag AS lotto,\n" +
" docr.unt_doc AS untDoc,\n" +
" docr.qta_doc AS qtaDoc,\n" +
" UDCAcq.UDC,\n" +
" UDCAcq.qtaUDC\n" +
"FROM dtb_doct doct\n" +
" INNER JOIN dtb_docr docr ON doct.cod_anag = docr.cod_anag AND\n" +
" doct.cod_dtip = docr.cod_dtip AND\n" +
" doct.data_doc = docr.data_doc AND\n" +
" doct.ser_doc = docr.ser_doc AND\n" +
" doct.num_doc = docr.num_doc\n" +
" INNER JOIN dtb_tipi ON doct.cod_dtip = dtb_tipi.cod_Dtip\n" +
" INNER JOIN gtb_anag ON doct.cod_anag = gtb_anag.cod_anag\n" +
" INNER JOIN mtb_aart ON docr.cod_mart = mtb_aart.cod_mart\n" +
" INNER JOIN mtb_grup ON mtb_aart.cod_mgrp = mtb_grup.cod_mgrp\n" +
" LEFT OUTER JOIN\n" +
" (SELECT mtb_colt.barcode_ul AS UDC,\n" +
" mtb_colt.cod_anag,\n" +
" mtb_colt.cod_dtip,\n" +
" mtb_colt.data_doc,\n" +
" mtb_colt.ser_doc,\n" +
" mtb_colt.num_doc,\n" +
" mtb_colr.cod_mart,\n" +
" mtb_colr.partita_mag,\n" +
" mtb_colr.qta_col AS qtaUDC\n" +
" FROM mtb_colt\n" +
" INNER JOIN mtb_colr ON mtb_colt.gestione = mtb_colr.gestione AND\n" +
" mtb_colt.data_collo = mtb_colr.data_collo AND\n" +
" mtb_colt.ser_collo = mtb_colr.ser_collo AND\n" +
" mtb_colt.num_collo = mtb_colr.num_collo\n" +
" WHERE mtb_colt.gestione = 'A'\n" +
" AND mtb_colt.segno = 1) UDCAcq ON doct.cod_anag = UDCAcq.cod_anag AND\n" +
" doct.cod_dtip = UDCAcq.cod_dtip AND\n" +
" doct.data_doc = UDCAcq.data_doc AND\n" +
" doct.ser_doc = UDCAcq.ser_doc AND\n" +
" doct.num_doc = UDCAcq.num_doc AND\n" +
" docr.cod_mart = UDCAcq.cod_mart AND\n" +
" docr.partita_mag = UDCAcq.partita_mag\n" +
"WHERE doct.gestione = 'A'\n" +
" AND dtb_tipi.segno_qta_car = 1\n" +
" AND dtb_tipi.tipo_emissione = 'DIRETTA'\n" +
" AND docr.partita_mag IS NOT NULL"
);
createOrUpdateView("vw_tracciabUDCProd",
"CREATE VIEW [dbo].[vw_tracciabUDCProd] AS\n" +
"SELECT mtb_colr.data_ord AS dataOrdProd,\n" +
" mtb_colr.num_ord AS numOrdProd,\n" +
" mtb_colt.cod_anag AS codAnag,\n" +
" gtb_anag.rag_soc AS produttore,\n" +
" mtb_colt.cod_jfas AS linea,\n" +
" mtb_colr.datetime_row AS dataOraProd,\n" +
" mtb_colt.cod_dtip AS codDtip,\n" +
" mtb_colt.data_doc AS dataDoc,\n" +
" mtb_colt.ser_doc AS serDoc,\n" +
" mtb_colt.num_doc AS numDoc,\n" +
" mtb_colt.segno,\n" +
" dtb_ordt.cod_prod AS codProd,\n" +
" dtb_ordt.descrizione_prod AS DescrizioneProd,\n" +
" IIF(mtb_colt.segno = 1, mtb_colr.partita_mag, NULL) AS lottoProd,\n" +
" IIF(mtb_colt.segno = 1, mtb_colt.progressivo_ul, NULL) AS numUDCProd,\n" +
" IIF(mtb_colt.segno = 1, mtb_colr.barcode_ul_in, NULL) AS UDCProd,\n" +
" IIF(mtb_colt.segno = 1, mtb_aart.unt_mis, NULL) AS untMisProd,\n" +
" IIF(mtb_colt.segno = 1, mtb_colr.qta_col, 0) AS qtaProd,\n" +
" IIF(mtb_colt.segno = 1, mtb_colr.num_cnf, 0) AS colliProd,\n" +
" IIF(mtb_colt.segno = -1, mtb_colr.cod_mart, NULL) AS codMP,\n" +
" IIF(mtb_colt.segno = -1, mtb_aart.descrizione_estesa, NULL) AS DescrizioneMP,\n" +
" IIF(mtb_colt.segno = -1, mtb_colr.partita_mag, NULL) AS lottoMP,\n" +
" IIF(mtb_colt.segno = -1, mtb_colr.barcode_ul_out, NULL) AS UDCMP,\n" +
" IIF(mtb_colt.segno = -1, mtb_aart.unt_mis, NULL) AS untMisMP,\n" +
" IIF(mtb_colt.segno = -1, mtb_colr.qta_col, 0) AS qtaScar\n" +
"FROM mtb_colt\n" +
" INNER JOIN mtb_colr ON mtb_colt.gestione = mtb_colr.gestione AND\n" +
" mtb_colt.data_collo = mtb_colr.data_collo AND\n" +
" mtb_colt.ser_collo = mtb_colr.ser_collo AND\n" +
" mtb_colt.num_collo = mtb_colr.num_collo\n" +
" INNER JOIN mtb_aart ON mtb_colr.cod_mart = mtb_aart.cod_mart\n" +
" INNER JOIN gtb_anag ON mtb_colt.cod_anag = gtb_anag.cod_anag\n" +
" LEFT OUTER JOIN dtb_ordt ON mtb_colt.gestione = dtb_ordt.gestione AND mtb_colt.data_ord = dtb_ordt.data_ord AND\n" +
" mtb_colt.num_ord = dtb_ordt.num_ord\n" +
"WHERE mtb_colt.gestione = 'L'\n" +
" AND mtb_colr.data_ord IS NOT NULL\n" +
"UNION ALL\n" +
"SELECT dtb_doct.data_ord AS dataOrdProd,\n" +
" dtb_doct.num_ord AS num_ordProd,\n" +
" dtb_doct.cod_anag,\n" +
" gtb_anag.rag_soc,\n" +
" dtb_doct.cod_jfas,\n" +
" step_ordine.data_iniz AS dataOraProd,\n" +
" dtb_doct.cod_Dtip,\n" +
" dtb_doct.data_doc,\n" +
" dtb_doct.ser_doc,\n" +
" dtb_doct.num_doc,\n" +
" -1 AS segno,\n" +
" dtb_doct.cod_prod AS codProd,\n" +
" dtb_ordt.descrizione_prod AS descrizioneProd,\n" +
" NULL AS LottoProd,\n" +
" NULL AS NumUdcProd,\n" +
" NULL AS UDCProd,\n" +
" NULL AS untMisProd,\n" +
" NULL AS qtaProd,\n" +
" NULL AS colliProd,\n" +
" dtb_docr.cod_mart AS codMp,\n" +
" dtb_docr.descrizione AS DescrizioneMP,\n" +
" dtb_docr.partita_mag AS LottMP,\n" +
" NULL AS UDCMP,\n" +
" dtb_docr.unt_doc AS UntMisMP,\n" +
" dtb_docr.qta_doc AS qtaScar\n" +
"FROM dtb_doct\n" +
" INNER JOIN dtb_docr ON dtb_doct.cod_anag = dtb_docr.cod_anag AND\n" +
" dtb_doct.cod_dtip = dtb_docr.cod_dtip AND\n" +
" dtb_doct.data_doc = dtb_docr.data_doc AND\n" +
" dtb_doct.ser_doc = dtb_docr.ser_doc AND\n" +
" dtb_doct.num_doc = dtb_docr.num_doc\n" +
" INNER JOIN gtb_anag ON dtb_doct.cod_anag = gtb_anag.cod_anag\n" +
" INNER JOIN mtb_aart ON dtb_docr.cod_mart = mtb_aart.cod_mart AND mtb_aart.flag_tracciabilita = 'S'\n" +
" INNER JOIN mtb_grup ON mtb_aart.cod_mgrp = mtb_grup.cod_mgrp AND mtb_grup.tipo_mgrp = 'IMB'\n" +
" INNER JOIN dtb_ordt ON dtb_ordt.gestione = dtb_doct.gestione AND dtb_ordt.data_ord = dtb_doct.data_ord AND\n" +
" dtb_ordt.num_ord = dtb_doct.num_ord\n" +
" INNER JOIN (SELECT gestione, data_ord, num_ord, MIN(data_iniz) AS data_iniz\n" +
" FROM dtb_ord_steps\n" +
" WHERE gestione = 'L'\n" +
" GROUP BY gestione, data_ord, num_ord) step_ordine\n" +
" ON step_ordine.gestione = dtb_doct.gestione AND step_ordine.data_ord = dtb_doct.data_ord AND\n" +
" step_ordine.num_ord = dtb_doct.num_ord\n" +
" INNER JOIN (SELECT cod_anag, cod_dtip, data_doc, ser_doc, num_doc\n" +
" FROM dtb_doct\n" +
" WHERE dtb_doct.cod_dtip IN ('H2', 'SLAV')\n" +
" EXCEPT\n" +
" SELECT cod_anag, cod_Dtip, data_doc, ser_doc, num_doc\n" +
" FROM mtb_colt\n" +
" WHERE cod_dtip IN ('H2', 'SLAV')) DocNoPackList ON dtb_doct.cod_anag = DocNoPackList.cod_anag AND\n" +
" dtb_doct.cod_Dtip = DocNoPackList.cod_Dtip AND\n" +
" dtb_doct.data_doc = DocNoPackList.data_doc AND\n" +
" dtb_doct.ser_doc = DocNoPackList.ser_doc AND\n" +
" dtb_doct.num_doc = DocNoPackList.num_doc"
);
createOrUpdateView("vw_tracciabUDCVend",
"CREATE VIEW [dbo].[vw_tracciabUDCVend] AS\n" +
"SELECT mtb_colt.cod_anag AS codAnag,\n" +
" gtb_anag.rag_soc AS ragSoc,\n" +
" ISNULL(vtb_dest.destinatario, '') AS destinazione,\n" +
" ISNULL(vtb_dest.citta, gtb_anag.citta) AS citta,\n" +
" ISNULL(vtb_dest.prov, gtb_anag.prov) AS provincia,\n" +
" ISNULL(vtb_dest.nazione, gtb_anag.nazione) AS nazione,\n" +
" mtb_colt.cod_dtip AS codDtip,\n" +
" mtb_colt.data_doc AS dataDoc,\n" +
" mtb_colt.ser_doc AS serDoc,\n" +
" mtb_colt.num_doc AS numDoc,\n" +
" mtb_colr.cod_mart AS codMart,\n" +
" mtb_aart.descrizione_estesa AS descrizioneEstesa,\n" +
" ISNULL(mtb_partita_mag.partita_mag_prod, mtb_colr.partita_mag) AS lotto,\n" +
" mtb_partita_mag.data_prod AS dataLotto,\n" +
" IIF(dtb_tipi.segno_qta_scar = -1, mtb_colr.barcode_ul_in, mtb_colr.barcode_ul_out) AS UDCVenduta,\n" +
" UDC.data_vers AS dataOraProd,\n" +
" UDC.cod_jfas AS LineaProd,\n" +
" UDC.num_ord AS numOrdProd,\n" +
" UDC.data_ord AS DataOrdProd,\n" +
" mtb_aart.unt_mis AS untMis,\n" +
" SUM(mtb_colr.qta_col) AS qtaVenduta,\n" +
" SUM(mtb_colr.num_cnf) AS colliVenduti\n" +
"FROM mtb_colt\n" +
" INNER JOIN mtb_colr ON mtb_colt.gestione = mtb_colr.gestione AND\n" +
" mtb_colt.data_collo = mtb_colr.data_collo AND\n" +
" mtb_colt.ser_collo = mtb_colr.ser_collo AND\n" +
" mtb_colt.num_collo = mtb_colr.num_collo\n" +
" INNER JOIN dtb_tipi ON mtb_colt.cod_dtip = dtb_tipi.cod_dtip\n" +
" INNER JOIN gtb_anag ON mtb_colt.cod_anag = gtb_anag.cod_anag\n" +
" LEFT OUTER JOIN vtb_dest ON mtb_colt.cod_anag = vtb_dest.cod_anag AND\n" +
" mtb_colt.cod_vdes = vtb_dest.cod_vdes\n" +
" INNER JOIN mtb_aart ON mtb_colr.cod_mart = mtb_aart.cod_mart\n" +
" INNER JOIN mtb_partita_mag ON mtb_colr.cod_mart = mtb_partita_mag.cod_mart AND\n" +
" mtb_colr.partita_mag = mtb_partita_mag.partita_mag\n" +
" INNER JOIN mtb_colt UDC ON IIF(dtb_tipi.segno_qta_scar = -1, mtb_colr.barcode_ul_in, mtb_colr.barcode_ul_out) =\n" +
" UDC.barcode_ul\n" +
"WHERE mtb_colt.gestione = 'V'\n" +
" AND dtb_tipi.tipo_emissione = 'DIRETTA'\n" +
"GROUP BY mtb_colt.cod_anag, gtb_anag.rag_soc, ISNULL(vtb_dest.destinatario, ''),\n" +
" ISNULL(vtb_dest.citta, gtb_anag.citta),\n" +
" ISNULL(vtb_dest.prov, gtb_anag.prov),\n" +
" ISNULL(vtb_dest.nazione, gtb_anag.nazione),\n" +
" mtb_colt.cod_dtip, mtb_colt.data_doc, mtb_colt.ser_doc, mtb_colt.num_doc,\n" +
" mtb_colr.cod_mart, mtb_aart.descrizione_estesa,\n" +
" ISNULL(mtb_partita_mag.partita_mag_prod, mtb_colr.partita_mag),\n" +
" mtb_partita_mag.data_prod,\n" +
" mtb_aart.unt_mis,\n" +
" IIF(dtb_tipi.segno_qta_scar = -1, mtb_colr.barcode_ul_in, mtb_colr.barcode_ul_out),\n" +
" UDC.data_vers,\n" +
" UDC.cod_jfas,\n" +
" UDC.data_ord,\n" +
" UDC.num_ord"
);
}
@Override
public void down() throws Exception {
}
}

File diff suppressed because one or more lines are too long