293 lines
9.2 KiB
Transact-SQL
293 lines
9.2 KiB
Transact-SQL
-- Stored procedure
|
|
-- =============================================
|
|
-- Author: ALESSANDRO TRINGALI
|
|
-- Create date: <Create Date,,>
|
|
-- Description: <Description,,>
|
|
-- Aggiunta GESTIONE EligoTitoli L192 (FCianfa, 26/11/2014)
|
|
-- =============================================
|
|
--[C6MartPeriodico].[PL_AreeMonitorate] 'S','SCLDNC71P13H224R'
|
|
CREATE procedure [C6MartPeriodico].[PL_AreeMonitorate] --'F','BCCMLS56L57F257O'
|
|
-- Add the parameters for the stored procedure here
|
|
-- Add the parameters for the stored procedure here
|
|
@Rete char(1),
|
|
@CodiceFiscale varchar(16)
|
|
AS
|
|
BEGIN
|
|
declare @tip_contratto int
|
|
select @tip_contratto=tip_contratto from wh.Maledetti where rete=@Rete and CodiceFiscale=@CodiceFiscale
|
|
--set @tip_contratto=3 --forzatura per FD
|
|
if(@tip_contratto=3)
|
|
begin
|
|
SELECT
|
|
NEED_AREA,
|
|
NEED_ESTESA,
|
|
--NOME_PROGETTO,
|
|
CASE
|
|
WHEN ROW_NUMBER() OVER (PARTITION BY NOME_PROGETTO ORDER BY MAX(ORDINE), ORDINAMENTO_PROGETTO) > 1
|
|
THEN NOME_PROGETTO + ' (' + CAST(ROW_NUMBER() OVER (PARTITION BY NOME_PROGETTO ORDER BY MAX(ORDINE), ORDINAMENTO_PROGETTO) - 1 AS NVARCHAR(10)) + ')'
|
|
ELSE NOME_PROGETTO
|
|
END AS Nome_Progetto,
|
|
--CONTROLLO NOME PROGETTO DUPLICATO, TOLTO IL MAX, AGGIUNTO NEL GROUP BY
|
|
ORDINAMENTO_PROGETTO,
|
|
--MAX(ORDINAMENTO_PROGETTO) AS ORDINAMENTO_PROGETTO,
|
|
MAX(ORDINE) AS ORDINE,
|
|
--rimettere il min e commentare il ctv=0
|
|
max(AREAPROGETTOSOTTOMONITORAGGIO) AS AREAPROGETTOSOTTOMONITORAGGIO
|
|
into #temp
|
|
FROM
|
|
(
|
|
--1.1 liq sotto monit
|
|
SELECT
|
|
'Inv' AS Need_Area,
|
|
'Investimento' AS Need_Estesa,
|
|
CASE WHEN PIRMOD.NOME_PROGETTO is null and pirmod.id_area='Inv' THEN 'Prodotti non associati a progetti'
|
|
ELSE LTRIM(RTRIM(PIRMOD.NOME_PROGETTO))
|
|
END AS Nome_Progetto,
|
|
PIRMOD.ORDINAMENTO_PROGETTO as ORDINAMENTO_PROGETTO,
|
|
CASE PIRMOD.ID_AREA
|
|
WHEN 'Liq' THEN 1
|
|
WHEN 'Ris' THEN 2
|
|
WHEN 'Pre' THEN 3
|
|
WHEN 'Inv' THEN 4
|
|
WHEN 'Ext' THEN 5
|
|
WHEN 'Na' THEN 6
|
|
END AS ORDINE,
|
|
CASE WHEN MONIT.COD_FISCALE IS NULL THEN 0 ELSE 1 END AS AREAPROGETTOSOTTOMONITORAGGIO
|
|
FROM
|
|
(SELECT
|
|
RETE,
|
|
COD_FISCALE,
|
|
case when ID_AREA in ('Pre','Pre1','Pre2') then 'Pre' else id_area end as Id_area,
|
|
NOME_PROGETTO,
|
|
TIPO_PROGETTO,
|
|
PERC_AREA,
|
|
CTV_PROGETTO,
|
|
CTV_AREA,
|
|
ORIZZ_TEMP_NUM,
|
|
ORIZZ_TEMP,
|
|
CTV_TOTALE,
|
|
STATO_CONSULENZA,
|
|
DATA_STATO_CONS,
|
|
DATA_MIGR_CONS,
|
|
DATA_PIANIF,
|
|
ID_CONTRATTO, ---LEVARE???
|
|
ORDINAMENTO_PROGETTO
|
|
FROM
|
|
C6MartPeriodico.CONS_ATTIVAGGIORNATA
|
|
WHERE
|
|
COD_FISCALE=@CodiceFiscale
|
|
and rete= @Rete
|
|
) PIRMOD
|
|
INNER JOIN C6MartPeriodico.AREA_BISOGNO AS AREA ON
|
|
PIRMOD.ID_AREA = AREA.ID_AREA
|
|
LEFT OUTER JOIN C6MARTPERIODICO.MONITORAGGIO_ATTUALE MONIT
|
|
ON MONIT.COD_FISCALE=PIRMOD.COD_FISCALE
|
|
AND MONIT.RETE=PIRMOD.RETE
|
|
AND MONIT.ID_AREA= PIRMOD.ID_AREA
|
|
AND MONIT.NOME_PROGETTO= ISNULL(PIRMOD.NOME_PROGETTO,'XXX')
|
|
AND MONIT.ORDINAMENTO_PROGETTO=PIRMOD.ORDINAMENTO_PROGETTO
|
|
--inner join C6StagingPeriodico.RP_Progetto_Robo rob ON rob.chiaveProgetto=monit.ORDINAMENTO_PROGETTO
|
|
WHERE
|
|
PIRMOD.RETE= @Rete
|
|
AND PIRMOD.COD_FISCALE = @CodiceFiscale
|
|
AND PIRMOD.CTV_PROGETTO > 0
|
|
------------------------ MIFID2 - MAGGIO 2018
|
|
--AND PIRMOD.ID_AREA NOT IN ('Pre1', 'Pre2', 'Cc')
|
|
AND PIRMOD.ID_AREA NOT IN ('Pre1', 'Pre2', 'Cc', 'LIGHT')
|
|
-- and pirmod.Id_area in ('Inv','Liq') --aggiunta per fideuram Direct
|
|
------------------------- FINE MIFID2 - MAGGIO 2018
|
|
) A
|
|
GROUP BY
|
|
NEED_AREA,
|
|
NEED_ESTESA,
|
|
NOME_PROGETTO,
|
|
ORDINAMENTO_PROGETTO
|
|
ORDER BY
|
|
MAX(ORDINE),
|
|
ORDINAMENTO_PROGETTO
|
|
update #temp
|
|
set ORDINE=4
|
|
where Need_Area='Inv'
|
|
select * from #temp
|
|
end
|
|
else
|
|
begin
|
|
SELECT
|
|
NEED_AREA,
|
|
NEED_ESTESA,
|
|
NOME_PROGETTO,
|
|
--CONTROLLO NOME PROGETTO DUPLICATO, TOLTO IL MAX, AGGIUNTO NEL GROUP BY
|
|
ORDINAMENTO_PROGETTO,
|
|
--MAX(ORDINAMENTO_PROGETTO) AS ORDINAMENTO_PROGETTO,
|
|
MAX(ORDINE) AS ORDINE,
|
|
--rimettere il min e commentare il ctv=0
|
|
max(AREAPROGETTOSOTTOMONITORAGGIO) AS AREAPROGETTOSOTTOMONITORAGGIO
|
|
FROM
|
|
(
|
|
--1.1 liq sotto monit
|
|
SELECT
|
|
PIRMOD.ID_AREA AS Need_Area,
|
|
AREA.NOME_AREA AS Need_Estesa,
|
|
CASE WHEN PIRMOD.NOME_PROGETTO is null and pirmod.id_area='Inv' THEN 'Prodotti non associati a progetti'
|
|
ELSE LTRIM(RTRIM(PIRMOD.NOME_PROGETTO))
|
|
END AS Nome_Progetto,
|
|
PIRMOD.ORDINAMENTO_PROGETTO as ORDINAMENTO_PROGETTO,
|
|
CASE PIRMOD.ID_AREA
|
|
WHEN 'Liq' THEN 1
|
|
WHEN 'Ris' THEN 2
|
|
WHEN 'Pre' THEN 3
|
|
WHEN 'Inv' THEN 4
|
|
WHEN 'Ext' THEN 5
|
|
WHEN 'Na' THEN 6
|
|
END AS ORDINE,
|
|
CASE WHEN MONIT.COD_FISCALE IS NULL THEN 0 ELSE 1 END AS AREAPROGETTOSOTTOMONITORAGGIO
|
|
FROM
|
|
(SELECT
|
|
RETE,
|
|
COD_FISCALE,
|
|
case when ID_AREA in ('Pre','Pre1','Pre2') then 'Pre' else id_area end as Id_area,
|
|
NOME_PROGETTO,
|
|
TIPO_PROGETTO,
|
|
PERC_AREA,
|
|
CTV_PROGETTO,
|
|
CTV_AREA,
|
|
ORIZZ_TEMP_NUM,
|
|
ORIZZ_TEMP,
|
|
CTV_TOTALE,
|
|
STATO_CONSULENZA,
|
|
DATA_STATO_CONS,
|
|
DATA_MIGR_CONS,
|
|
DATA_PIANIF,
|
|
ID_CONTRATTO, ---LEVARE???
|
|
ORDINAMENTO_PROGETTO
|
|
FROM
|
|
C6MartPeriodico.CONS_ATTIVAGGIORNATA
|
|
WHERE
|
|
COD_FISCALE=@CodiceFiscale
|
|
and rete= @Rete
|
|
) PIRMOD
|
|
INNER JOIN C6MartPeriodico.AREA_BISOGNO AS AREA ON
|
|
PIRMOD.ID_AREA = AREA.ID_AREA
|
|
LEFT OUTER JOIN C6MARTPERIODICO.MONITORAGGIO_ATTUALE MONIT
|
|
ON MONIT.COD_FISCALE=PIRMOD.COD_FISCALE
|
|
AND MONIT.RETE=PIRMOD.RETE
|
|
AND MONIT.ID_AREA= PIRMOD.ID_AREA
|
|
AND MONIT.NOME_PROGETTO= ISNULL(PIRMOD.NOME_PROGETTO,'XXX')
|
|
AND MONIT.ORDINAMENTO_PROGETTO=PIRMOD.ORDINAMENTO_PROGETTO
|
|
WHERE
|
|
PIRMOD.RETE= @Rete
|
|
AND PIRMOD.COD_FISCALE = @CodiceFiscale
|
|
AND PIRMOD.CTV_PROGETTO > 0
|
|
------------------------ MIFID2 - MAGGIO 2018
|
|
--AND PIRMOD.ID_AREA NOT IN ('Pre1', 'Pre2', 'Cc')
|
|
AND PIRMOD.ID_AREA NOT IN ('Pre1', 'Pre2', 'Cc', 'LIGHT')
|
|
------------------------- FINE MIFID2 - MAGGIO 2018
|
|
--V ordine cambiato da 5 a 6 inquanto 5 è lo stesso di ext, na è passato a 7
|
|
--Bido Added for 'SN' Saldo Negativo
|
|
UNION
|
|
SELECT DISTINCT
|
|
'Cc' AS Need_Area,
|
|
'Conti correnti a saldo negativo'AS Need_Estesa,
|
|
NULL AS Nome_Progetto,
|
|
--999999 as ORDINAMENTO_PROGETTO,
|
|
ORDINAMENTO_PROGETTO as ORDINAMENTO_PROGETTO,
|
|
6 AS ORDINE,
|
|
0 as AREAPROGETTOSOTTOMONITORAGGIO
|
|
FROM
|
|
C6MARTPERIODICO.PATRIMONIO_BF PATRBF
|
|
WHERE
|
|
PATRBF.RETE= @Rete
|
|
AND PATRBF.COD_FISCALE = @CodiceFiscale
|
|
AND PATRBF.CTV < 0 and id_area = 'CC'
|
|
-- End Of Bido Added for 'SN' Saldo Negativo
|
|
UNION
|
|
SELECT DISTINCT
|
|
'Self' AS Need_Area,
|
|
-- 20181205 AC
|
|
--'Liquidità negativa "Linee GP Eligo"' AS Need_Estesa,
|
|
case
|
|
when cod_interno = 'XY' then 'Liquidità negativa "Linea GP Eligo"'
|
|
when cod_interno = 'FO' then 'Liquidità negativa "Il Mio Foglio"'
|
|
end AS Need_Estesa,
|
|
-- /20181205 AC
|
|
-- 20181205 AC
|
|
--NULL AS Nome_Progetto,
|
|
rtrim(cod_interno) AS Nome_Progetto,
|
|
-- /20181205 AC
|
|
--999999 as ORDINAMENTO_PROGETTO,
|
|
-- 20181205 AC
|
|
ORDINAMENTO_PROGETTO as ORDINAMENTO_PROGETTO,
|
|
--'' as ORDINAMENTO_PROGETTO,
|
|
-- /20181205 AC
|
|
7 AS ORDINE,
|
|
0 as AREAPROGETTOSOTTOMONITORAGGIO
|
|
FROM
|
|
C6MARTPERIODICO.PATRIMONIO_BF PATRBF
|
|
WHERE
|
|
PATRBF.RETE= @Rete
|
|
AND PATRBF.COD_FISCALE = @CodiceFiscale
|
|
AND PATRBF.CTV < 0 and id_area = 'SELF'
|
|
-- End Of Bido Added for 'SN' Saldo Negativo
|
|
UNION
|
|
SELECT DISTINCT
|
|
'Na' AS Need_Area,
|
|
'Non allocato'AS Need_Estesa,
|
|
NULL AS Nome_Progetto,
|
|
--999999 as ORDINAMENTO_PROGETTO,
|
|
ORDINAMENTO_PROGETTO as ORDINAMENTO_PROGETTO,
|
|
8 AS ORDINE,
|
|
0 as AREAPROGETTOSOTTOMONITORAGGIO
|
|
FROM
|
|
C6MARTPERIODICO.PATRIMONIO_BF PATRBF
|
|
WHERE
|
|
PATRBF.RETE= @Rete
|
|
AND PATRBF.COD_FISCALE = @CodiceFiscale
|
|
AND PATRBF.CTV > 0
|
|
AND PATRBF.ID_AREA IN ('Na')
|
|
UNION
|
|
SELECT DISTINCT
|
|
case when PATRBF.ID_AREA in ('Pre','Pre1','Pre2') then 'Pre' else PATRBF.ID_AREA end AS Need_Area,
|
|
case when PATRBF.ID_AREA in ('Pre','Pre1','Pre2') then 'Previdenza' else AREA.NOME_AREA end as NEED_ESTESA ,
|
|
CASE WHEN PATRBF.NOME_PROGETTO is null and PATRBF.id_area='Inv' THEN 'Prodotti non associati a progetti'
|
|
ELSE PATRBF.NOME_PROGETTO end AS Nome_Progetto,
|
|
--case when PATRBF.ID_AREA in ('Pre','Pre1','Pre2') then 1 else PATRBF.ORDINAMENTO_PROGETTO end as ORDINAMENTO_PROGETTO,
|
|
PATRBF.ORDINAMENTO_PROGETTO as ORDINAMENTO_PROGETTO,
|
|
CASE PATRBF.ID_AREA
|
|
WHEN 'Liq' THEN 1
|
|
WHEN 'Ris' THEN 2
|
|
WHEN 'Pre' THEN 3
|
|
WHEN 'Pre1' THEN 3
|
|
WHEN 'Pre2' THEN 3
|
|
WHEN 'Inv' THEN 4
|
|
WHEN 'Ext' THEN 5
|
|
WHEN 'Na' THEN 7
|
|
END AS ORDINE,
|
|
CASE WHEN MONIT.COD_FISCALE IS NULL THEN 0 ELSE 1 END AS AREAPROGETTOSOTTOMONITORAGGIO
|
|
FROM
|
|
C6MARTPERIODICO.PATRIMONIO_BF PATRBF
|
|
INNER JOIN C6MartPeriodico.AREA_BISOGNO AS AREA ON
|
|
PATRBF.ID_AREA = AREA.ID_AREA
|
|
LEFT OUTER JOIN C6MARTPERIODICO.MONITORAGGIO_ATTUALE MONIT
|
|
ON MONIT.COD_FISCALE=PATRBF.COD_FISCALE
|
|
AND MONIT.RETE=PATRBF.RETE
|
|
AND MONIT.ID_AREA= PATRBF.ID_AREA
|
|
AND MONIT.NOME_PROGETTO= ISNULL(PATRBF.NOME_PROGETTO,'XXX')
|
|
AND MONIT.ORDINAMENTO_PROGETTO=PATRBF.ORDINAMENTO_PROGETTO
|
|
WHERE
|
|
1=1
|
|
AND PATRBF.RETE= @Rete
|
|
AND PATRBF.COD_FISCALE = @CodiceFiscale
|
|
AND PATRBF.CTV > 0
|
|
AND PATRBF.EXTRANAC=1
|
|
AND PATRBF.ID_AREA NOT IN ('Na', 'Cc')
|
|
) A
|
|
GROUP BY
|
|
NEED_AREA,
|
|
NEED_ESTESA,
|
|
NOME_PROGETTO,
|
|
ORDINAMENTO_PROGETTO
|
|
ORDER BY
|
|
ORDINE,
|
|
ORDINAMENTO_PROGETTO
|
|
end
|
|
END |