Corretto conteggio allegati commessa

This commit is contained in:
2024-07-19 19:11:31 +02:00
parent 1b6f7d6e35
commit 205dce88b8

View File

@@ -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 {
}
}