--select ordinamento_progetto,id_area,*
--FROM 
--			C6MARTPERIODICO.PATRIMONIO_BF
--			WHERE 
--			1=1
--			AND ID_AREA  not in ('Na', 'Cc')
--			and ctv >0
--			and cod_fiscale = 'GNGFRZ63H17D810C'
--			and id_area like 'pre%'
--
--select * from c6martperiodico.cons_attivaggiornata
--where cod_fiscale = 'GNGFRZ63H17D810C'
-- =============================================
-- Author:		ALESSANDRO TRINGALI
-- Create date: < 26/09/2009>
-- Description:	<Consulenza Aggiornata>
-- =============================================
--[C6MartPeriodico]. [CONS_ATTIVAGGIORNATA] 
CREATE procedure [C6MartPeriodico].[DM_CONS_ATTIVAGGIORNATA_pre_selective]
	-- Add the parameters for the stored procedure here
	-- Add the parameters for the stored procedure here
AS
BEGIN
	-- riportare le logiche nelle rispettive sp di PL
	SET NOCOUNT ON;
	DECLARE @ID_ELAB INT
	DECLARE @TIPO_ELAB VARCHAR(1)
	SET @ID_ELAB = C6MartPeriodico.GETIDELAB()
	SET @TIPO_ELAB = C6MartPeriodico.GETTIPOELAB()
	-- Log esecuzione
	INSERT INTO LOG_ESECUZIONE
		(Nome, Inizio, Nota)
	VALUES (
		'DM_CONS_ATTIVAGGIORNATA_pre_selective',
		GETDATE(),
		'Elaborazione trimestrale'
	)
	TRUNCATE TABLE [C6MartPeriodico]. [CONS_ATTIVAGGIORNATA]
 INSERT INTO [C6MartPeriodico]. [CONS_ATTIVAGGIORNATA]
   (        [RETE]
           ,[COD_FISCALE]
           ,[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]
           ,[ORDINAMENTO_PROGETTO])
			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]
           ,(MAX(ISNULL(CTV_AREA,0))/MAX(ISNULL(CTV_TOTALE,0)))*100 AS PERC_AREA
           , MAX(CTV_PROGETTO) AS CTV_PROGETTO
			,MAX(CTV_AREA) AS CTV_aREA
            ,max([ORIZZ_TEMP_NUM])
            ,max([ORIZZ_TEMP])
			,MAX(CTV_TOTALE) AS CTV_TOTALE
			,MAX([STATO_CONSULENZA]) AS STATO_CONSULENZA
			,MAX([DATA_STATO_CONS]) AS DATA_sTATO_CONS
            ,max([DATA_MIGR_CONS]) as DATA_MIGR_CONS
		    ,MAX(DATA_PIANIF) AS DATA_PIANIF
			,[ID_CONTRATTO]
           ,[ORDINAMENTO_PROGETTO]
			FROM
			(
			SELECT
			COD_FISCALE,
			RETE,
			ID_AREA,
			NOME_PROGETTO,
			CTV, 
            0 AS ID_CONTRATTO,
            [ORDINAMENTO_PROGETTO],
            [tipo_progetto],
			SUM(C6MARTPERIODICO.PATRIMONIO_BF.CTV) OVER (PARTITION BY COD_FISCALE, SUBSTRING(ID_AREA,1,3), NOME_PROGETTO) CTV_PROGETTO,
			SUM(C6MARTPERIODICO.PATRIMONIO_BF.CTV) OVER (PARTITION BY COD_FISCALE, RETE,SUBSTRING(ID_AREA,1,3)) CTV_AREA,
			MAX([ORIZZ_TEMP_NUM])OVER (PARTITION BY COD_FISCALE, RETE, SUBSTRING(ID_AREA,1,3), ORDINAMENTO_PROGETTO) AS [ORIZZ_TEMP_NUM],
			MAX([ORIZZ_TEMP])OVER (PARTITION BY COD_FISCALE, RETE, SUBSTRING(ID_AREA,1,3), ORDINAMENTO_PROGETTO) [ORIZZ_TEMP],
			SUM([CTV])OVER (PARTITION BY COD_FISCALE) AS CTV_TOTALE,
			MAX([STATO_CONSULENZA])OVER (PARTITION BY COD_FISCALE, RETE) AS [STATO_CONSULENZA],
			MAX([DATA_STATO_CONS])OVER (PARTITION BY COD_FISCALE, RETE) AS [DATA_STATO_CONS] ,
			MAX([DATA_MIGR_CONS])OVER (PARTITION BY COD_FISCALE, RETE) AS [DATA_MIGR_CONS] ,
			MAX([DATA_PIANIF])OVER (PARTITION BY COD_FISCALE, RETE ) AS DATA_PIANIF
			FROM 
			C6MARTPERIODICO.PATRIMONIO_BF
			WHERE 
			1=1
			AND ID_AREA  not in ('Na', 'Cc','Pre','Pre1','Pre2')
			and ctv >0
			) K
			 GROUP BY 
			 COD_FISCALE
			,RETE
			,CASE WHEN ID_AREA IN ('Pre','Pre1','Pre2') THEN 'Pre' ELSE ID_AREA END
            ,[NOME_PROGETTO]
            ,[TIPO_PROGETTO]
            ,[ID_CONTRATTO]
            ,[ORDINAMENTO_PROGETTO]
 INSERT INTO [C6MartPeriodico]. [CONS_ATTIVAGGIORNATA]
   (        [RETE]
           ,[COD_FISCALE]
           ,[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]
           ,[ORDINAMENTO_PROGETTO])
			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]
           ,(MAX(ISNULL(CTV_AREA,0))/MAX(ISNULL(CTV_TOTALE,0)))*100 AS PERC_AREA
           , MAX(CTV_PROGETTO) AS CTV_PROGETTO
			,MAX(CTV_AREA) AS CTV_aREA
            ,max([ORIZZ_TEMP_NUM])
            ,max([ORIZZ_TEMP])
			,MAX(CTV_TOTALE) AS CTV_TOTALE
			,MAX([STATO_CONSULENZA]) AS STATO_CONSULENZA
			,MAX([DATA_STATO_CONS]) AS DATA_sTATO_CONS
            ,max([DATA_MIGR_CONS]) as DATA_MIGR_CONS
		    ,MAX(DATA_PIANIF) AS DATA_PIANIF
			,[ID_CONTRATTO]
           ,MAX([ORDINAMENTO_PROGETTO])
			FROM
			(
			SELECT
			COD_FISCALE,
			RETE,
			ID_AREA,
			NOME_PROGETTO,
			CTV, 
            0 AS ID_CONTRATTO,
            [ORDINAMENTO_PROGETTO],
            case 
				when extranac = 1
				then 'Default' 
				else tipo_progetto
			end as tipo_progetto,
			SUM(C6MARTPERIODICO.PATRIMONIO_BF.CTV) OVER (PARTITION BY COD_FISCALE, SUBSTRING(ID_AREA,1,3), NOME_PROGETTO) CTV_PROGETTO,
			SUM(C6MARTPERIODICO.PATRIMONIO_BF.CTV) OVER (PARTITION BY COD_FISCALE, RETE,SUBSTRING(ID_AREA,1,3)) CTV_AREA,
			MAX([ORIZZ_TEMP_NUM])OVER (PARTITION BY COD_FISCALE, RETE, SUBSTRING(ID_AREA,1,3), ORDINAMENTO_PROGETTO) AS [ORIZZ_TEMP_NUM],
			MAX([ORIZZ_TEMP])OVER (PARTITION BY COD_FISCALE, RETE, SUBSTRING(ID_AREA,1,3), ORDINAMENTO_PROGETTO) [ORIZZ_TEMP],
			SUM([CTV])OVER (PARTITION BY COD_FISCALE) AS CTV_TOTALE,
			MAX([STATO_CONSULENZA])OVER (PARTITION BY COD_FISCALE, RETE) AS [STATO_CONSULENZA],
			MAX([DATA_STATO_CONS])OVER (PARTITION BY COD_FISCALE, RETE) AS [DATA_STATO_CONS] ,
			MAX([DATA_MIGR_CONS])OVER (PARTITION BY COD_FISCALE, RETE) AS [DATA_MIGR_CONS] ,
			MAX([DATA_PIANIF])OVER (PARTITION BY COD_FISCALE, RETE ) AS DATA_PIANIF
			FROM 
			C6MARTPERIODICO.PATRIMONIO_BF
			WHERE 
			1=1
			AND ID_AREA   in ('Pre','Pre1','Pre2')
			and ctv >0
			) K
			 GROUP BY 
			 COD_FISCALE
			,RETE
			,CASE WHEN ID_AREA IN ('Pre','Pre1','Pre2') THEN 'Pre' ELSE ID_AREA END
            ,[NOME_PROGETTO]
            ,[TIPO_PROGETTO]
            ,[ID_CONTRATTO]
            --,[ORDINAMENTO_PROGETTO]
-- Log esecuzione
	UPDATE
		LOG_ESECUZIONE
	SET
		Fine = GETDATE(),
		Tipo = 'INSERT',
		Righe = @@ROWCOUNT
	WHERE
		Nome = 'DM_CONS_ATTIVAGGIORNATA_pre_selective' AND
		Inizio = (
			SELECT
				MAX(Inizio)
			FROM
				LOG_ESECUZIONE
			WHERE
				Nome = 'DM_CONS_ATTIVAGGIORNATA_pre_selective'
		)
END