diff --git a/ems-core/src/main/java/it/integry/ems/migration/model/Migration_20240719163828.java b/ems-core/src/main/java/it/integry/ems/migration/model/Migration_20240719163828.java new file mode 100644 index 0000000000..d6beb7245f --- /dev/null +++ b/ems-core/src/main/java/it/integry/ems/migration/model/Migration_20240719163828.java @@ -0,0 +1,140 @@ +package it.integry.ems.migration.model; + +import it.integry.ems.migration._base.BaseMigration; +import it.integry.ems.migration._base.MigrationModelInterface; + +public class Migration_20240719163828 extends BaseMigration implements MigrationModelInterface { + + @Override + public void up() throws Exception { + if (isHistoryDB()) + return; + + createOrUpdateFunction("CountAllegatiCommessa", "CREATE FUNCTION [dbo].[CountAllegatiCommessa](@codJcom VARCHAR(10), @userName VARCHAR(40))\n" + + " RETURNS INTEGER\n" + + "AS\n" + + "BEGIN\n" + + " DECLARE @countAllegati INTEGER\n" + + "\n" + + " SELECT @countAllegati = SUM(cnt)\n" + + " FROM (SELECT COUNT(file_name) AS cnt\n" + + " FROM stb_activity_file\n" + + " WHERE id IN (SELECT stb_activity.activity_id\n" + + " FROM jtb_comt\n" + + " INNER JOIN stb_activity ON jtb_comt.cod_jcom = stb_activity.cod_jcom AND\n" + + " stb_activity.parent_activity_id IS NULL\n" + + " INNER JOIN stb_activity_type\n" + + " ON stb_activity.activity_type_id =\n" + + " stb_activity_type.activity_type_id AND\n" + + " stb_activity_type.flag_tipologia = 'P'\n" + + " WHERE jtb_comt.cod_jcom = @codJcom)\n" + + "\n" + + " UNION ALL\n" + + "\n" + + " SELECT COUNT(stb_activity_file.file_name) AS cnt\n" + + " FROM stb_activity\n" + + " INNER JOIN stb_activity_file ON stb_activity.activity_id = stb_activity_file.id\n" + + " WHERE stb_activity.cod_jcom = @codJcom\n" + + " AND activity_type_id IN (SELECT activity_type_id\n" + + " FROM srl_activity_type_user\n" + + " INNER JOIN jrl_flav_users\n" + + " ON srl_activity_type_user.user_name = jrl_flav_users.user_name\n" + + " INNER JOIN wtb_users\n" + + " ON wtb_users.User_name =\n" + + " jrl_flav_users.user_name AND\n" + + " wtb_users.user_name = @userName)\n" + + " AND @userName IN (stb_activity.user_creator, stb_activity.user_name)\n" + + "\n" + + " UNION ALL\n" + + "\n" + + " SELECT COUNT(filename) AS cnt\n" + + " FROM dtb_doc_pdf\n" + + " INNER JOIN\n" + + " (SELECT dtb_doct.num_doc,\n" + + " dtb_doct.data_doc,\n" + + " dtb_doct.cod_dtip,\n" + + " dtb_doct.cod_anag,\n" + + " dtb_doct.ser_doc,\n" + + " dtb_doct.cod_jcom,\n" + + " dtb_doct.gestione,\n" + + " MAX(versione) AS versione,\n" + + " dtb_ordt.data_ord,\n" + + " dtb_ordt.num_ord,\n" + + " dtb_ordt.num_ord_provv\n" + + " FROM dtb_doc_pdf\n" + + " INNER JOIN dtb_doct\n" + + " ON dtb_doct.data_doc = dtb_doc_pdf.data_doc AND\n" + + " dtb_doct.num_doc = dtb_doc_pdf.num_doc AND\n" + + " dtb_doct.cod_dtip = dtb_doc_pdf.cod_dtip AND\n" + + " dtb_doct.cod_anag = dtb_doc_pdf.cod_anag AND\n" + + " dtb_doct.ser_doc = dtb_doc_pdf.ser_doc\n" + + " INNER JOIN dtb_docr ON dtb_doct.data_doc = dtb_docr.data_doc AND\n" + + " dtb_doct.num_doc = dtb_docr.num_doc AND\n" + + " dtb_doct.ser_doc = dtb_docr.ser_doc AND\n" + + " dtb_doct.cod_dtip = dtb_docr.cod_dtip AND\n" + + " dtb_doct.cod_anag = dtb_docr.cod_anag\n" + + " LEFT OUTER JOIN dtb_ordt\n" + + " ON dtb_doct.gestione = dtb_ordt.gestione AND\n" + + " dtb_doct.data_ord = dtb_ordt.data_ord AND\n" + + " dtb_doct.num_ord = dtb_ordt.num_ord\n" + + " WHERE (filecontent IS NOT NULL OR ref_uuid IS NOT NULL)\n" + + " GROUP BY dtb_doct.num_doc, dtb_doct.data_doc, dtb_doct.cod_dtip,\n" + + " dtb_doct.cod_anag, dtb_doct.ser_doc,\n" + + " dtb_doct.cod_jcom, dtb_doct.gestione, dtb_ordt.data_ord,\n" + + " dtb_ordt.num_ord, dtb_ordt.num_ord_provv) t\n" + + " ON dtb_doc_pdf.num_doc = t.num_doc AND\n" + + " dtb_doc_pdf.data_doc = t.data_doc AND\n" + + " dtb_doc_pdf.cod_dtip = t.cod_dtip AND\n" + + " dtb_doc_pdf.cod_anag = t.cod_anag AND\n" + + " dtb_doc_pdf.ser_doc = t.ser_doc AND\n" + + " dtb_doc_pdf.versione = t.versione\n" + + " WHERE cod_jcom = @codJcom\n" + + "\n" + + " UNION ALL\n" + + "\n" + + " SELECT COUNT(stb_files_attached.file_name) AS cnt\n" + + " FROM stb_files_attached,\n" + + " drl_ord_attached,\n" + + " dtb_ordt\n" + + " WHERE stb_files_attached.id_attach = drl_ord_attached.id_attach\n" + + " AND drl_ord_attached.gestione = dtb_ordt.gestione\n" + + " AND drl_ord_attached.data_ord = dtb_ordt.data_ord\n" + + " AND drl_ord_attached.num_ord = dtb_ordt.num_ord\n" + + " AND dtb_ordt.cod_jcom = @codJcom\n" + + "\n" + + " UNION ALL\n" + + "\n" + + " SELECT COUNT(DISTINCT stb_files_attached.file_name) AS cnt\n" + + " FROM stb_files_attached,\n" + + " drl_doc_attached,\n" + + " dtb_docr\n" + + " WHERE stb_files_attached.id_attach = drl_doc_attached.id_attach\n" + + " AND drl_doc_attached.cod_anag = dtb_docr.cod_anag\n" + + " AND drl_doc_attached.cod_dtip = dtb_docr.cod_dtip\n" + + " AND drl_doc_attached.data_doc = dtb_docr.data_doc\n" + + " AND drl_doc_attached.ser_doc = dtb_docr.ser_doc\n" + + " AND drl_doc_attached.num_doc = dtb_docr.num_doc\n" + + " AND dtb_docr.cod_jcom = @codJcom\n" + + "\n" + + " UNION ALL\n" + + " \n" + + " SELECT COUNT(mtb_aart_link.id_riga) AS cnt\n" + + " FROM mtb_aart_link\n" + + " WHERE cod_mart IN (SELECT DISTINCT Wor.cod_mart\n" + + " FROM Wdtb_ordr Wor\n" + + " INNER JOIN Wdtb_ordt Wot\n" + + " ON Wor.gestione = Wot.gestione AND Wor.data_ord = Wot.data_ord AND\n" + + " Wor.num_ord = Wot.num_ord\n" + + " AND Wot.serie = Wor.serie\n" + + " WHERE Wot.cod_jcom = @codJcom)) t\n" + + "\n" + + " RETURN @countAllegati\n" + + "END"); + } + + @Override + public void down() throws Exception { + + } + +}