-- =============================================
-- Author:		Rino Le Boffe
-- Create date: 09/08/2008
-- Description:	
-- =============================================
CREATE procedure [C6MartPeriodico].[RP_DM_PIRAMIDE_VERT]
AS
BEGIN
	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 (
		'RP_DM_PIRAMIDE_VERT',
		GETDATE(),
		'Elaborazione trimestrale'
	)
	TRUNCATE TABLE [C6MartPeriodico].[PIRAMIDE_VERT]
	INSERT INTO [C6MartPeriodico].[PIRAMIDE_VERT]
           ([RETE]
           ,[COD_FISCALE]
           ,[ID_AREA]
           ,[CTV_AREA]
           ,[ID_ELAB]
           ,[TIPO_ELAB])
	SELECT DISTINCT
		V.rete AS RETE,
		ISNULL(V.COD_FISCALE, '') AS COD_FISCALE,
		CASE WHEN A.AREA IS NULL THEN M_A.AREA ELSE A.AREA END AS ID_AREA,
		CASE WHEN A.ctvArea IS NULL THEN M_A.ctvArea ELSE A.ctvArea END AS CTV_AREA,
		@ID_ELAB AS ID_ELAB,
		@TIPO_ELAB AS TIPO_ELAB
	FROM 
       [C6MartPeriodico].[RP_vContrattiPerGenerazioneReport] V Left Join 
       (C6StagingPeriodico.RP_Pianificazione P
        INNER JOIN C6StagingPeriodico.RP_Area A
        ON P.CHIAVECONSULENZA = A.CHIAVECONSULENZA) 
       ON V.CHIAVECLIENTEPB = P.CHIAVECLIENTEPB
                                   Left Join   
       (C6StagingPeriodico.RP_Migraz_Pianificazione M
        INNER JOIN C6StagingPeriodico.RP_Migraz_Area M_A
        ON M.CHIAVECONSULENZA = M_A.CHIAVECONSULENZA) 
       ON V.CHIAVECLIENTEPB = M.CHIAVECLIENTEPB
	-- Log esecuzione
	UPDATE
		LOG_ESECUZIONE
	SET
		Fine = GETDATE(),
		Tipo = 'INSERT',
		Righe = @@ROWCOUNT
	WHERE
		Nome = 'DM_PIRAMIDE_VERT' AND
		Inizio = (
			SELECT
				MAX(Inizio)
			FROM
				LOG_ESECUZIONE
			WHERE
				Nome = 'DM_PIRAMIDE_VERT'
		)
END