tornare indietro con la modifica della getlistinoacquisto

This commit is contained in:
2024-04-18 13:27:15 +02:00
parent a1013c878a
commit 408b106c2f

View File

@@ -0,0 +1,261 @@
package it.integry.ems.migration.model;
import it.integry.ems.migration._base.BaseMigration;
import it.integry.ems.migration._base.MigrationModelInterface;
public class Migration_20240418132640 extends BaseMigration implements MigrationModelInterface {
@Override
public void up() throws Exception {
if (isHistoryDB())
return;
createOrUpdateFunction("getListinoAcquisto", "create FUNCTION [dbo].[getListinoAcquisto] (@dataValidita datetime, @codAlis varchar(5), @codArtFor varchar(25), @codMart varchar(15), @viewPromo varchar(1), @codMdep varchar(5)) \n" +
"RETURNS TABLE AS \n" +
"return \n" +
"select listino_base.cod_alis,\n" +
" listino_base.descrizione,\n" +
" IsNull(promozioni.versione, listino_base.versione) as versione,\n" +
" IsNull(promozioni.data_iniz, listino_base.data_iniz) as data_iniz,\n" +
" IsNull(promozioni.data_fine, listino_base.data_fine) as data_fine,\n" +
" IsNull(promozioni.cod_promo, listino_base.cod_promo) as cod_promo,\n" +
" IsNull(promozioni.note_listino, listino_base.note_listino) as note_listino,\n" +
" promozioni.flag_tipo_promo,\n" +
" listino_base.cod_divi_acq,\n" +
" listino_base.expression_costo,\n" +
" listino_base.cod_mart,\n" +
" listino_base.cod_art_for,\n" +
" listino_base.unt_mis_acq,\n" +
" listino_base.rap_conv,\n" +
" IsNull(promozioni.prz_acq, listino_base.prz_acq) as prz_acq,\n" +
" IsNull(promozioni.perc_1, listino_base.perc_1) as perc_1,\n" +
" IsNull(promozioni.perc_2, listino_base.perc_2) as perc_2,\n" +
" IsNull(promozioni.perc_3, listino_base.perc_3) as perc_3,\n" +
" IsNull(promozioni.perc_4, listino_base.perc_4) as perc_4,\n" +
" IsNull(promozioni.perc_promo_1,0) as perc_promo_1,\n" +
" IsNull(promozioni.perc_promo_2,0) as perc_promo_2,\n" +
" IsNull(promozioni.perc_promo_3,0) as perc_promo_3,\n" +
" IsNull(promozioni.perc_promo_4,0) as perc_promo_4,\n" +
" listino_base.data_agg_prz,\n" +
" listino_base.perc_oneri,\n" +
" listino_base.val_oneri,\n" +
" listino_base.perc_promo,\n" +
" listino_base.val_promo,\n" +
" listino_base.qta_min_ord,\n" +
" listino_base.data_ult_prezzo,\n" +
" listino_base.gg_approvig,\n" +
" listino_base.flag_forn_pref,\n" +
" listino_base.flag_qta_multipla,\n" +
" listino_base.tipo_azione,\n" +
" listino_base.descr_art_forn,\n" +
" listino_base.cod_barre,\n" +
" listino_base.cod_barre_imb,\n" +
" listino_base.qta_cnf,\n" +
" listino_base.colli_strato,\n" +
" listino_base.colli_pedana,\n" +
" listino_base.cod_aliq,\n" +
" listino_base.note,\n" +
" listino_base.prz_ven_sug,\n" +
" listino_base.famiglia,\n" +
" listino_base.flag_attivo,\n" +
" listino_base.tipo_variazione,\n" +
" listino_base.prz_acq_um,\n" +
" listino_base.data_ins,\n" +
" listino_base.inserito_da,\n" +
" listino_base.modificato_da,\n" +
" listino_base.sconto_cartoni,\n" +
" listino_base.sconto_pedane,\n" +
" listino_base.sconto_stato, \n" +
" listino_base.partita_mag,\n" +
" listino_base.flag_prz_base_lisv,\n" +
" STUFF(( SELECT ',' + atb_promo_depo.cod_mdep AS [text()]\n" +
" FROM atb_promo_depo\n" +
" WHERE atb_promo_depo.cod_alis = promozioni.cod_alis and\n" +
" atb_promo_depo.versione =promozioni.versione\n" +
" FOR XML PATH('')), 1, 1, '' ) as lista_depo, \n" +
" dbo.f_calcPrzNettoAcq( listino_base.cod_alis, \n" +
" listino_base.expression_costo, \n" +
" IsNull(promozioni.perc_1, listino_base.perc_1),\n" +
" IsNull(promozioni.perc_2, listino_base.perc_2),\n" +
" IsNull(promozioni.perc_3, listino_base.perc_3),\n" +
" IsNull(promozioni.perc_4, listino_base.perc_4),\n" +
" IsNull(promozioni.perc_promo_1,0) ,\n" +
" IsNull(promozioni.perc_promo_2,0) ,\n" +
" IsNull(promozioni.perc_promo_3,0) ,\n" +
" IsNull(promozioni.perc_promo_4,0) ,\n" +
" listino_base.perc_promo, \n" +
" listino_base.val_promo, \n" +
" listino_base.perc_oneri,\n" +
" listino_base.val_oneri,\n" +
" IsNull(promozioni.prz_acq, listino_base.prz_acq) ) as prz_acq_netto , \n" +
" dbo.f_calcPrzNettoAcq( listino_base.cod_alis, \n" +
" listino_base.expression_costo, \n" +
" IsNull(promozioni.perc_1, listino_base.perc_1),\n" +
" IsNull(promozioni.perc_2, listino_base.perc_2),\n" +
" IsNull(promozioni.perc_3, listino_base.perc_3),\n" +
" IsNull(promozioni.perc_4, listino_base.perc_4),\n" +
" IsNull(promozioni.perc_promo_1,0) ,\n" +
" IsNull(promozioni.perc_promo_2,0) ,\n" +
" IsNull(promozioni.perc_promo_3,0) ,\n" +
" IsNull(promozioni.perc_promo_4,0) ,\n" +
" listino_base.perc_promo, \n" +
" listino_base.val_promo, \n" +
" listino_base.perc_oneri,\n" +
" listino_base.val_oneri,\n" +
" IsNull(promozioni.prz_acq, listino_base.prz_acq_um) ) as prz_acq_netto_um,\n" +
" case when listino_base.flag_prz_base_lisv = 'C' OR (listino_base.flag_prz_base_lisv = 'P' AND prz_ven_sug = 0 )THEN \n" +
" dbo.f_calcPrzNettoAcq( listino_base.cod_alis, \n" +
" listino_base.expression_costo, \n" +
" IsNull(promozioni.perc_1, listino_base.perc_1),\n" +
" IsNull(promozioni.perc_2, listino_base.perc_2),\n" +
" IsNull(promozioni.perc_3, listino_base.perc_3),\n" +
" IsNull(promozioni.perc_4, listino_base.perc_4),\n" +
" IsNull(promozioni.perc_promo_1,0) ,\n" +
" IsNull(promozioni.perc_promo_2,0) ,\n" +
" IsNull(promozioni.perc_promo_3,0) ,\n" +
" IsNull(promozioni.perc_promo_4,0) ,\n" +
" listino_base.perc_promo, \n" +
" listino_base.val_promo, \n" +
" listino_base.perc_oneri,\n" +
" listino_base.val_oneri,\n" +
" IsNull(promozioni.prz_acq, listino_base.prz_acq) ) else prz_ven_sug end as prz_base_lisv,\n" +
" listino_base.shelf_life,\n" +
" atb_list_data.cod_vage,\n" +
" atb_list_data.cod_vvet,\n" +
" IsNull(promozioni.perc_prov, listino_base.perc_prov) as perc_prov,\n" +
" IsNull(promozioni.val_prov, listino_base.val_prov) as val_prov, \n" +
" IsNull(promozioni.qta_acq_contr, 0) as qta_acq_contr,\n" +
" IsNull(promozioni.costo_trasp, 0) as costo_trasp,\n" +
" listino_base.tipo_calc_prz,\n" +
" listino_base.note_commerciali\n" +
"from (SELECT atb_list.cod_alis,\n" +
" atb_list.descrizione,\n" +
" atb_list.tipo_calc_prz,\n" +
" mtb_lisa_data.versione as versione, \n" +
" atb_list_data.data_iniz as data_iniz, \n" +
" atb_list_data.data_fine as data_fine, \n" +
" atb_list_data.cod_promo as cod_promo, \n" +
" atb_list_data.note as note_listino,\n" +
" atb_list.cod_divi_acq, \n" +
" atb_list.expression_costo, \n" +
" mtb_lisa.cod_mart, \n" +
" mtb_lisa.cod_art_for, \n" +
" mtb_lisa.unt_mis_acq, \n" +
" IsNull(mtb_lisa.rap_conv, 1) as rap_conv, \n" +
" IsNull(mtb_lisa_data.prz_acq, mtb_lisa.prz_acq) as 'prz_acq',\n" +
" IsNull(mtb_lisa_data.perc_1, mtb_lisa.perc_1) as 'perc_1',\n" +
" IsNull(mtb_lisa_data.perc_2, mtb_lisa.perc_2) as 'perc_2',\n" +
" IsNull(mtb_lisa_data.perc_3, mtb_lisa.perc_3) as 'perc_3',\n" +
" IsNull(mtb_lisa_data.perc_4, mtb_lisa.perc_4) as 'perc_4', \n" +
" IsNull(mtb_lisa_data.data_agg_prz, mtb_lisa.data_agg_prz) as 'data_agg_prz', \n" +
" IsNull(mtb_lisa_data.perc_oneri,mtb_lisa.perc_oneri) as 'perc_oneri',\n" +
" IsNull(mtb_lisa_data.val_oneri, mtb_lisa.val_oneri) as 'val_oneri', \n" +
" IsNull(mtb_lisa_data.perc_promo, mtb_lisa.perc_promo) as 'perc_promo',\n" +
" IsNull(mtb_lisa_data.val_promo, mtb_lisa.val_promo) as 'val_promo',\n" +
" mtb_lisa.qta_min_ord,\n" +
" mtb_lisa.data_ult_prezzo, \n" +
" mtb_lisa.gg_approvig, \n" +
" mtb_lisa.flag_forn_pref, \n" +
" mtb_lisa.flag_qta_multipla, \n" +
" mtb_lisa.tipo_azione, \n" +
" mtb_lisa.descr_art_forn, \n" +
" mtb_lisa.cod_barre, \n" +
" mtb_lisa.cod_barre_imb, \n" +
" case when mtb_lisa.qta_cnf is null or (Cast(dbo.getGestSetupWithdefault('MTB_LISA', 'SETUP', 'IGNORE_QTA_CNF_UNO', '1') as int) = 1 AND mtb_lisa.qta_cnf = 1) or mtb_lisa.qta_cnf = 0 then mtb_aart.qta_cnf else mtb_lisa.qta_cnf end as 'qta_cnf', \n" +
" mtb_lisa.colli_strato,\n" +
" mtb_lisa.colli_pedana, \n" +
" mtb_lisa.cod_aliq, \n" +
" mtb_lisa.note, \n" +
" IsNull(mtb_lisa_data.prz_ven_sug, mtb_lisa.prz_ven_sug) as prz_ven_sug, \n" +
" mtb_lisa.famiglia, \n" +
" CASE WHEN atb_list.flag_attivo = 'N' THEN 'N' ELSE mtb_lisa.flag_attivo END flag_attivo, \n" +
" mtb_lisa_data.tipo_variazione as tipo_variazione, \n" +
" Round(IsNull(mtb_lisa_data.prz_acq, mtb_lisa.prz_acq)/mtb_lisa.rap_conv, 5) as prz_acq_um, \n" +
" atb_list_data.data_ins,\n" +
" atb_list_data.inserito_da,\n" +
" mtb_lisa_data.modificato_da,\n" +
" ISNULL(mtb_lisa_data.sconto_cartoni, 0) as sconto_cartoni,\n" +
" ISNULL(mtb_lisa_data.sconto_pedane, 0) as sconto_pedane,\n" +
" ISNULL(mtb_lisa_data.sconto_strato, 0) as sconto_stato ,\n" +
" atb_list_data.FLAG_TIPO_PROMO AS flag_tipo_promo,\n" +
" mtb_lisa_data.partita_mag,\n" +
" atb_list.flag_prz_base_lisv,\n" +
" mtb_lisa.shelf_life,\n" +
" mtb_lisa_data.perc_prov,\n" +
" mtb_lisa_data.val_prov,\n" +
" mtb_lisa_data.qta_acq_contr,\n" +
" mtb_lisa_data.note_commerciali\n" +
"FROM (select \n" +
"atb_list.cod_alis, \n" +
"mtb_lisa.cod_art_for,\n" +
" max((case when atb_list_data.versione is null then null else IsNull(atb_list_data.cod_promo+ '|', '') + Convert(varchar(10), atb_list_data.data_iniz, 111) + ' ' + replicate('0', 5 - len(atb_list_data.versione)) + Convert(varchar(5), atb_list_data.versione) end ) ) as max_lisa\n" +
"from atb_list \n" +
" inner join mtb_lisa on atb_list.cod_alis = mtb_lisa.cod_alis\n" +
" left outer join mtb_lisa_data on mtb_lisa.cod_alis = mtb_lisa_data.cod_alis and mtb_lisa.cod_art_for = mtb_lisa_data.cod_art_for\n" +
" left outer join atb_list_data on atb_list.cod_alis = atb_list_data.cod_alis and \n" +
" mtb_lisa_data.versione = atb_list_data.versione and \n" +
" atb_list_data.cod_promo is null and\n" +
" atb_list_data.data_iniz <= IsNull(@dataValidita, convert(datetime, convert(varchar(10), GetDate(), 121)))\n" +
"where (@codAlis is null or atb_list.cod_alis = @codAlis ) and \n" +
"(@codArtFor is null or mtb_lisa.cod_art_for = @codArtFor ) and\n" +
"(@codMart is null or mtb_lisa.cod_mart = @codMart ) \n" +
"group by atb_list.cod_alis, \n" +
"mtb_lisa.cod_art_for ) tmp_lisa inner join mtb_lisa on tmp_lisa.cod_art_for = mtb_lisa.cod_art_for and\n" +
" tmp_lisa.cod_alis= mtb_lisa.cod_alis \n" +
" inner join atb_list on mtb_lisa.cod_alis = atb_list.cod_alis \n" +
" inner join gtb_divi on atb_list.cod_divi_acq = gtb_divi.cod_divi \n" +
"left outer join mtb_lisa_data on tmp_lisa.cod_alis = mtb_lisa_data.cod_alis and \n" +
"tmp_lisa.cod_art_for = mtb_lisa_data.cod_art_for and \n" +
"Convert(int, right( tmp_lisa.max_lisa, 5)) = mtb_lisa_data.versione \n" +
"left outer join atb_list_data on mtb_lisa_data.cod_alis = atb_list_data.cod_alis and \n" +
"mtb_lisa_data.versione = atb_list_data.versione \n" +
"left outer join mtb_aart on mtb_lisa.cod_mart = mtb_aart.cod_mart) listino_base \n" +
" left outer join ( select atb_list_data.cod_alis, \n" +
" mtb_lisa_data.cod_art_for,\n" +
" Min(atb_list_data.data_iniz) as data_iniz,\n" +
" Min(atb_list_data.data_fine) as data_fine,\n" +
" Min(atb_list_data.versione ) as versione,\n" +
" Min(atb_list_data.cod_promo) as cod_promo,\n" +
" case when atb_list_data.flag_tipo_promo is null then atb_list_data.note else null end as note_listino,\n" +
" Min(atb_list_data.flag_tipo_promo) as flag_tipo_promo,\n" +
" max(case when atb_list_data.flag_tipo_promo is null or atb_list_data.flag_tipo_promo = 'T' THEN mtb_lisa_data.prz_acq else null end) as prz_acq,\n" +
" max(case when atb_list_data.flag_tipo_promo is null or atb_list_data.flag_tipo_promo = 'T' THEN Round(mtb_lisa_data.prz_acq /mtb_lisa.rap_conv, 5) else null end ) as prz_acq_um,\n" +
" max(case when atb_list_data.flag_tipo_promo is null or atb_list_data.flag_tipo_promo = 'C' THEN mtb_lisa_data.perc_1 else null end) as perc_1,\n" +
" max(case when atb_list_data.flag_tipo_promo is null or atb_list_data.flag_tipo_promo = 'C' THEN mtb_lisa_data.perc_2 else null end) as perc_2,\n" +
" max(case when atb_list_data.flag_tipo_promo is null or atb_list_data.flag_tipo_promo = 'C' THEN mtb_lisa_data.perc_3 else null end) as perc_3,\n" +
" max(case when atb_list_data.flag_tipo_promo is null or atb_list_data.flag_tipo_promo = 'C' THEN mtb_lisa_data.perc_4 else null end) as perc_4,\n" +
" max(case when atb_list_data.flag_tipo_promo is null or atb_list_data.flag_tipo_promo = 'E' THEN mtb_lisa_promo.perc_promo_1 else null end) as perc_promo_1,\n" +
" max(case when atb_list_data.flag_tipo_promo is null or atb_list_data.flag_tipo_promo = 'E' THEN mtb_lisa_promo.perc_promo_2 else null end) as perc_promo_2,\n" +
" max(case when atb_list_data.flag_tipo_promo is null or atb_list_data.flag_tipo_promo = 'E' THEN mtb_lisa_promo.perc_promo_3 else null end) as perc_promo_3,\n" +
" max(case when atb_list_data.flag_tipo_promo is null or atb_list_data.flag_tipo_promo = 'E' THEN mtb_lisa_promo.perc_promo_4 else null end) as perc_promo_4,\n" +
" max(case when atb_list_data.flag_tipo_promo is null or atb_list_data.flag_tipo_promo = 'C' THEN mtb_lisa_data.perc_prov ELSE null End ) as perc_prov,\n" +
" max(case when atb_list_data.flag_tipo_promo is null or atb_list_data.flag_tipo_promo = 'C' THEN mtb_lisa_data.val_prov ELSE null End ) as val_prov, \n" +
" max(case when atb_list_data.flag_tipo_promo is null or atb_list_data.flag_tipo_promo = 'C' THEN mtb_lisa_data.qta_acq_contr ELSE null End ) as qta_acq_contr,\n" +
" Max(atb_list_data.costo_trasp) as costo_trasp\n" +
" from atb_list_data inner join atb_promo_depo on atb_list_data.cod_alis = atb_promo_depo.cod_alis and\n" +
" atb_list_data.versione = atb_promo_depo.versione \n" +
" inner join mtb_lisa_data on atb_list_data.cod_alis = mtb_lisa_data.cod_alis and atb_list_data.versione = mtb_lisa_data.versione\n" +
" inner join mtb_lisa on mtb_lisa_data.cod_alis = mtb_lisa.cod_alis and mtb_lisa_data.cod_art_for = mtb_lisa.cod_art_for\n" +
" inner join mtb_lisa_promo on atb_list_data.cod_alis = mtb_lisa_promo.cod_alis and atb_list_data.versione = mtb_lisa_promo.versione and mtb_lisa.cod_art_for = mtb_lisa_promo.cod_art_for\n" +
" where atb_list_data.cod_promo is not null and\n" +
" atb_list_data.data_iniz <= IsNull(@dataValidita, convert(datetime, convert(varchar(10), GetDate(), 121))) \n" +
" and atb_list_data.data_fine >= IsNull(@dataValidita, convert(datetime, convert(varchar(10), GetDate(), 121))) \n" +
" and (@codMdep is null or atb_promo_depo.cod_mdep = @codMdep) \n" +
" and (@codAlis is null or atb_list_data.cod_alis = @codalis ) \n" +
" and (@codArtFor is null or mtb_lisa_data.cod_art_for = @codArtFor )\n" +
" and (@codMart is null or mtb_lisa.cod_mart = @codMart ) \n" +
" and @viewPromo = 'S'\n" +
" group by atb_list_data.cod_alis, \n" +
" mtb_lisa_data.cod_art_for,\n" +
" case when atb_list_data.flag_tipo_promo is null then atb_list_data.note else null end ) promozioni on listino_base.cod_alis = promozioni.cod_alis and \n" +
" listino_base.cod_art_for = promozioni.cod_art_for \n" +
" left outer join atb_list_data on atb_list_data.cod_alis = listino_base.cod_alis and isnull(promozioni.versione, listino_base.versione) = atb_list_data.versione");
}
@Override
public void down() throws Exception {
}
}