Finish Hotfix-100
All checks were successful
IntegryManagementSystem_Multi/pipeline/head This commit looks good

This commit is contained in:
2025-09-30 15:14:30 +02:00

View File

@@ -0,0 +1,84 @@
package it.integry.ems.migration.model;
import it.integry.ems.migration._base.BaseMigration;
import it.integry.ems.migration._base.MigrationModelInterface;
public class Migration_20250930151328 extends BaseMigration implements MigrationModelInterface {
@Override
public void up() throws Exception {
if (isHistoryDB())
return;
createOrUpdateFunction("[GetDatiProvv]", "CREATE FUNCTION [dbo].[GetDatiProvv](@codVlis varchar(5), \n" +
" @dataValidita datetime, \n" +
" @codAnag varchar(5), \n" +
" @codVdes varchar(5), \n" +
" @codVage varchar(5), \n" +
" @codMart varchar(15), \n" +
" @codDivi varchar(5), \n" +
" @cambio numeric(20,5))\n" +
" RETURNS TABLE AS\n" +
" RETURN(\n" +
"WITH lisv AS (SELECT lisv.cod_vlis,\n" +
" lisv.cod_mart,\n" +
" ISNULL(promo.perc_ispe, lisv.perc_ispe) AS perc_ispe,\n" +
" ISNULL(promo.val_ispe, lisv.val_ispe) AS val_ispe,\n" +
" ISNULL(promo.perc_prov, lisv.perc_prov) AS perc_prov,\n" +
" ISNULL(promo.fisso_prov, lisv.fisso_prov) AS fisso_prov,\n" +
" cambio\n" +
" FROM dbo.getlistinovendita(@datavalidita, @codvlis, @codmart) lisv\n" +
" LEFT OUTER JOIN dbo.getpromozionevendita(@datavalidita, @datavalidita, @codvlis, NULL,\n" +
" @codmart) promo ON lisv.cod_vlis = promo.cod_vlis AND\n" +
" lisv.cod_mart = promo.cod_mart)\n" +
"\n" +
" , scon AS (SELECT *\n" +
" FROM vtb_scon\n" +
" WHERE\n" +
" vtb_scon.cod_sco_art = (SELECT mtb_aart.cod_sco_art FROM mtb_aart WHERE mtb_aart.cod_mart = @codmart)\n" +
" AND vtb_scon.cod_sco_cli = (SELECT ISNULL(vtb_dest.cod_sco_cli, vtb_clie.cod_sco_cli)\n" +
" FROM vtb_clie\n" +
" LEFT OUTER JOIN vtb_dest\n" +
" ON vtb_clie.cod_anag = vtb_dest.cod_anag AND\n" +
" vtb_dest.cod_vdes = @codvdes\n" +
" WHERE vtb_clie.cod_anag = @codanag))\n" +
" , scon_age AS (SELECT *\n" +
" FROM vtb_agen_prov\n" +
" WHERE vtb_agen_prov.cod_sco_art =\n" +
" (SELECT mtb_aart.cod_sco_art FROM mtb_aart WHERE mtb_aart.cod_mart = @codmart)\n" +
" AND vtb_agen_prov.cod_sco_cli = (SELECT ISNULL(vtb_dest.cod_sco_cli, vtb_clie.cod_sco_cli)\n" +
" FROM vtb_clie\n" +
" LEFT OUTER JOIN vtb_dest ON vtb_clie.cod_anag =\n" +
" vtb_dest.cod_anag AND\n" +
" vtb_dest.cod_vdes = @codvdes\n" +
" WHERE vtb_clie.cod_anag = @codanag)\n" +
" AND vtb_agen_prov.cod_vage = @codvage)\n" +
"\n" +
"\n" +
"/*Acquisizione provvigioni agente e ispettore */\n" +
"/* @percProv = round(CASE WHEN vtb_agen_prov.cod_vage IS NULL THEN (CASE WHEN vtb_scon.cod_sco_cli IS NULL THEN (CASE WHEN mtb_lisv.cod_mart IS NULL THEN CASE WHEN vtb_clie.perc_prov = 0 THEN ISNULL(vtb_agen.perc_prov_age, 0) ELSE vtb_Clie.perc_prov END ELSE mtb_lisv.perc_prov END) ELSE vtb_scon.perc_prov END) ELSE vtb_agen_prov.perc_prov END, 5), */\n" +
"/* 6.2.2018 (FABIO): implementata nuovamente la logica della provvigione da cliente e agente se presente in anagrafica, ma senza provviggioni */\n" +
"/* 14/10/2021 (FABIO): abbiamo aggiunto il campo perc_prov_age nella VTB_AGEN in modo da non leggere da vtb_agen.perc_prov_age che invece è la provvigione dell'ispettore */\n" +
"SELECT ROUND(IIF(vtb_agen_prov.cod_vage IS NULL, (IIF(vtb_scon.cod_sco_cli IS NULL, (IIF(mtb_lisv.cod_mart IS NULL, IIF(vtb_clie.perc_prov = 0, ISNULL(vtb_agen.perc_prov_age, 0), vtb_clie.perc_prov), IIF(mtb_lisv.perc_prov = 0 OR mtb_lisv.perc_prov IS NULL, IIF(vtb_clie.perc_prov <> 0, vtb_clie.perc_prov, ISNULL(vtb_agen.perc_prov_age, 0)), mtb_lisv.perc_prov))), vtb_scon.perc_prov)), vtb_agen_prov.perc_prov), 5) AS perc_prov,\n" +
" ROUND(IIF(vtb_agen_prov.cod_vage IS NULL, (IIF(vtb_scon.cod_sco_cli IS NULL, (IIF(mtb_lisv.cod_mart IS NULL, 0, mtb_lisv.fisso_prov * @cambio / mtb_lisv.cambio)), vtb_scon.fisso_prov * @cambio / vtb_scon.cambio_divi_cont)), vtb_agen_prov.fisso_prov * @cambio / vtb_agen_prov.cambio_divi_cont), 5) AS val_prov,\n" +
" ROUND(IIF(vtb_agen_prov.cod_vage IS NULL, (IIF(vtb_scon.cod_sco_cli IS NULL, (IIF(mtb_lisv.cod_mart IS NULL, 0, mtb_lisv.perc_ispe)), vtb_scon.perc_ispe)), vtb_agen_prov.perc_ispe), 5) AS perc_ispe,\n" +
" ROUND(IIF(vtb_agen_prov.cod_vage IS NULL, (IIF(vtb_scon.cod_sco_cli IS NULL, (IIF(mtb_lisv.cod_mart IS NULL, 0, mtb_lisv.val_ispe * @cambio / mtb_lisv.cambio)), vtb_scon.val_ispe * @cambio / vtb_scon.cambio_divi_cont)), vtb_agen_prov.val_ispe * @cambio / vtb_agen_prov.cambio_divi_cont), 5) AS val_ispe,\n" +
" ISNULL(vtb_clie.perc_prov2, 0) AS perc_prov2\n" +
"\n" +
"FROM vtb_clie\n" +
" OUTER APPLY scon vtb_scon\n" +
" OUTER APPLY scon_age vtb_agen_prov\n" +
" OUTER APPLY (SELECT * FROM vtb_agen WHERE vtb_agen.cod_vage = @codvage) vtb_agen\n" +
" OUTER APPLY lisv mtb_lisv\n" +
"WHERE vtb_clie.cod_anag = @codanag\n" +
" \n" +
")");
}
@Override
public void down() throws Exception {
}
}