Funzione visualizzazione castelletto IVA
All checks were successful
IntegryManagementSystem_Multi/pipeline/head This commit looks good

This commit is contained in:
2024-11-14 09:35:34 +01:00
parent c086918cf3
commit add41c0c44

View File

@@ -0,0 +1,86 @@
package it.integry.ems.migration.model;
import it.integry.ems.migration._base.BaseMigration;
import it.integry.ems.migration._base.MigrationModelInterface;
public class Migration_20241114092459 extends BaseMigration implements MigrationModelInterface {
@Override
public void up() throws Exception {
if (isHistoryDB())
return;
createOrUpdateFunction("getCastellettoIVA", "CREATE FUNCTION dbo.getCastellettoIVA (@codDtip varchar(5), @codAnag varchar(5), @dataDoc datetime, @serDoc varchar(2), @numDoc integer) RETURNS TABLE AS \n" +
"return\n" +
" select cod_aliq,\n" +
" perc_aliq, \n" +
" descrizione, \n" +
" sum(imponibile) as imponibile,\n" +
" round(case when flag_prz_iva = 'N' then sum(imponibile) * perc_aliq/100 else 0 end, cifre_dec) as imposta\n" +
" from ( SELECT gtb_aliq.cod_aliq,\n" +
" gtb_aliq.perc_aliq, \n" +
" gtb_aliq.descrizione, \n" +
" case when (dtb_docr.sconto5 + dtb_docr.sconto6 + dtb_docr.sconto7 = 100) and (gtb_aliq.perc_aliq > 0 OR gtb_aliq.tipo_iva = 'OMAGGI') then\n" +
" round((case when dtb_tipi.flag_prz_iva = 'N' then \n" +
" dtb_docr.val_unt \n" +
" else \n" +
" dtb_docr.val_unt_iva \n" +
" end) * dtb_docr.qta_doc * (1 - dtb_doct.sconto1 / 100) * (1 - dtb_doct.sconto2 / 100) * (1 - dtb_doct.sconto3 / 100) * (1 - dtb_doct.sconto4 / 100), gtb_divi.cifre_dec)\n" +
" else\n" +
" round((case when dtb_tipi.flag_prz_iva = 'N' then \n" +
" dtb_docr.importo_riga \n" +
" else \n" +
" dtb_docr.val_unt_iva * dtb_docr.qta_doc * (1 - sconto5/100) * (1 - sconto6/100) * (1 - sconto7/100) * (1 - sconto8/100)\n" +
" end) * (1 - dtb_doct.sconto1 / 100) * (1 - dtb_doct.sconto2 / 100) * (1 - dtb_doct.sconto3 / 100) * (1 - dtb_doct.sconto4 / 100), gtb_divi.cifre_dec)\n" +
" end as imponibile, \n" +
" dtb_tipi.flag_prz_iva, \n" +
" gtb_divi.cifre_dec\n" +
" FROM dtb_doct inner join dtb_docr on dtb_doct.cod_dtip = dtb_docr.cod_dtip and\n" +
" dtb_doct.cod_anag = dtb_docr.cod_anag 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 dtb_tipi on dtb_doct.cod_dtip = dtb_tipi.cod_dtip\n" +
" inner join gtb_divi on dtb_doct.cod_divi = gtb_divi.cod_divi\n" +
" inner join gtb_aliq on dtb_docr.cod_aliq = gtb_aliq.cod_aliq\n" +
" WHERE dtb_docr.cod_anag = @codAnag and\n" +
" dtb_docr.cod_dtip = @codDtip and\n" +
" dtb_docr.data_doc = @dataDoc and\n" +
" dtb_docr.ser_doc = @serDoc and\n" +
" dtb_docr.num_doc = @numDoc and\n" +
" gtb_aliq.tipo_iva <> 'IVA COMPOSTA'\n" +
" UNION ALL\n" +
" SELECT gtb_aliq.cod_aliq,\n" +
" gtb_aliq.perc_aliq, \n" +
" gtb_aliq.descrizione, \n" +
" dtb_docs.importo as imponibile, \n" +
" dtb_tipi.flag_prz_iva, \n" +
" gtb_divi.cifre_dec\n" +
" FROM dtb_docs inner join gtb_aliq on dtb_docs.cod_aliq = gtb_aliq.cod_aliq\n" +
" inner join dtb_tipi on dtb_docs.cod_dtip = dtb_tipi.cod_dtip\n" +
" inner join dtb_doct on dtb_doct.cod_dtip = dtb_docs.cod_dtip and\n" +
" dtb_doct.cod_anag = dtb_docs.cod_anag and\n" +
" dtb_doct.data_doc = dtb_docs.data_doc and\n" +
" dtb_doct.ser_doc = dtb_docs.ser_doc and\n" +
" dtb_doct.num_doc = dtb_docs.num_doc\n" +
" inner join gtb_divi on dtb_doct.cod_divi = gtb_divi.cod_divi\n" +
" WHERE dtb_docs.cod_anag = @codAnag and\n" +
" dtb_docs.cod_dtip = @codDtip and\n" +
" dtb_docs.data_doc = @dataDoc and\n" +
" dtb_docs.ser_doc = @serDoc and\n" +
" dtb_docs.num_doc = @numDoc and\n" +
" gtb_aliq.tipo_iva <> 'IVA COMPOSTA')riep\n" +
" group by perc_aliq, \n" +
" descrizione, \n" +
" flag_prz_iva, \n" +
" cifre_dec, \n" +
" cod_aliq");
}
@Override
public void down() throws Exception {
}
}