-- =============================================
-- Author:		<Author,,Name>
-- Create date: <Create Date,,>
-- Description:	<Description,,>
-- =============================================
CREATE procedure [C6Mart].[DM_PIRAMIDE_MOD]
AS
BEGIN
	SET NOCOUNT ON;
	DECLARE @ID_ELAB INT
	DECLARE @TIPO_ELAB VARCHAR(1)
	SET @ID_ELAB = C6MART.GETIDELAB()
	SET @TIPO_ELAB = C6MART.GETTIPOELAB()
	-- Log esecuzione
	INSERT INTO LOG_ESECUZIONE
		(Nome, Inizio, Nota)
	VALUES (
		'DM_PIRAMIDE_MOD',
		GETDATE(),
		'Elaborazione giornaliera'
	)
	TRUNCATE TABLE C6MART.PIRAMIDE_MOD
	INSERT INTO [C6Mart].[PIRAMIDE_MOD]
		   ([RETE]
		   ,[COD_FISCALE]
		   ,[ID_AREA]
		   ,[NOME_PROGETTO]
		   ,[TIPO_PROGETTO]
		   ,[PERC_AREA]
		   ,[CTV_PROGETTO]
		   ,[CTV_AREA]
		   ,[ORIZZ_TEMP]
		   ,[CTV_TOTALE]
		   ,[STATO_CONSULENZA]
		   ,[DATA_STATO_CONS]
		   ,[DATA_MIGR_CONS]
		   ,[ID_CONTRATTO]
		   ,[ID_ELAB]
		   ,[TIPO_ELAB])
	SELECT 
		ALL_CF_PB.RETE_PB AS RETE,
		ALL_CF_PB.CODICE_FISCALE AS COD_FISCALE,
		CONSAREA.C_NEEDAREA_V_46360 AS ID_AREA,
		PRCONSUL.C_PROJECTNAM_11D1A AS NOME_PROGETTO,
		PRCONSUL.TYPE$_PROJEC_14674 AS TIPO_PROGETTO,
		PRCONSUL.C_PERCENTUAL_69019 AS PERC_AREA,
		PRCONSUL.C_PROJECTCTV_39520 AS CTV_PROGETTO,
		CONSAREA.C_CTVNEEDARE_EA4FB AS CTV_AREA,
		C_BO_453FB.C_DESCRIZION_93ABE AS ORIZZ_TEMP,
		NULL AS CTV_TOTALE,
		CONSUL.TYPE$_TIPOCO_1EA7C  AS STATO_CONSULENZA,
		ISNULL(CONVERT(DATETIME, CONSUL.C_DATAINIZIO_35C15),NULL) AS DATA_STATO_CONS, -- STRINGA IN FORMATO ISO
		CONSUL.C_DATAMIGRAZ_BF705  AS DATA_MIGR_CONS,
		NULL AS ID_CONTRATTO,
		@ID_ELAB AS ID_ELAB,
		@TIPO_ELAB AS TIPO_ELAB
	FROM C6STAGING.ALL_CF_PB
	INNER JOIN C6STAGING.CONSUL 
		ON CONSUL.INSTID = ALL_CF_PB.RETE_PB
		AND CONSUL.ADBKID = ALL_CF_PB.CODICEFISCALE
		AND CONSUL.TYPE$_TIPOCO_1EA7C = 'Bozza' --'AttivaAggiornata'
	INNER JOIN C6STAGING.CONSAREA 
		ON CONSAREA.F_PCONSULENZ_7FBE3 = CONSUL.OID$
	INNER JOIN C6STAGING.PRCONSUL 
		ON PRCONSUL.F_PCONSULENZ_B69E4 = CONSAREA.OID$
	LEFT JOIN C6STAGING.C_BO_453FB
		ON C_BO_453FB.PK_PRC = PRCONSUL.OID$
	-- Log esecuzione
	UPDATE
		LOG_ESECUZIONE
	SET
		Fine = GETDATE(),
		Tipo = 'INSERT',
		Righe = @@ROWCOUNT
	WHERE
		Nome = 'DM_PIRAMIDE_MOD' AND
		Inizio = (
			SELECT
				MAX(Inizio)
			FROM
				LOG_ESECUZIONE
			WHERE
				Nome = 'DM_PIRAMIDE_MOD'
		)
END