PDC_REPORT_CreazioneDB/sql/storedCollaudo/C6MartPeriodico_PL_AreeMonitorate.sql
2025-06-06 19:02:52 +02:00

151 lines
3.8 KiB
Transact-SQL

-- Schema: C6MartPeriodico
-- Stored Procedure: PL_AreeMonitorate
-- 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_PROGETT