-- =============================================
-- Author:		Rino Le Boffe
-- Create date: 16 luglio 2013
-- Description:	
-- =============================================
CREATE procedure [C6MartPeriodico].[RP_DM_MONITORAGGIO_ATTUALE_pre_selective]
AS
BEGIN
	SET NOCOUNT ON;
	DECLARE @ID_ELAB INT
	SET @ID_ELAB = [C6MartPeriodico].GETIDELAB()
	-- Log esecuzione
	INSERT INTO LOG_ESECUZIONE
		(Nome, Inizio, Nota)
	VALUES (
		'RP_DM_MONITORAGGIO_ATTUALE_pre_selective',
		GETDATE(),
		'Elaborazione trimestrale'
	)
	TRUNCATE TABLE [C6MartPeriodico].[MONITORAGGIO_ATTUALE] 
	INSERT INTO [C6MartPeriodico].[MONITORAGGIO_ATTUALE]
           ([RETE]
           ,[COD_FISCALE]
           ,[ID_AREA]
           ,[NOME_PROGETTO]
           ,[DATA_ATTIVAZIONE]
           ,[DATA_CTV]
           ,[CTV_MONITORATO]
           ,[APPORTO_INIZIALE]
           ,[APPORTO_SUCCESSIVO]
           ,[LIQUIDAZIONI]
           ,[CEDOLE_DIVIDENDI]
           ,[MINUS_PLUSVALENZA]
           ,[RISORSE_ASSOCIATE]
           ,[RENDIMENTO_CUMULATO]
           ,[RENDIMENTO_ANNUALIZZATO]
		   ,[ORDINAMENTO_PROGETTO]
           ,[ID_ELAB])
	SELECT
		TANAB.RETE,
		VC.COD_FISCALE,
		   CASE
				WHEN TANAB.CODAREA = 'INV' THEN 'Inv'
				WHEN TANAB.CODAREA = 'RIS' THEN 'Ris'
				WHEN TANAB.CODAREA = 'EXR' THEN 'Ext'
				WHEN TANAB.CODAREA = 'LIQ' THEN 'Liq'
		   END AS ID_AREA,
           ISNULL(CS.nomeProgetto, 'XXX') AS NOME_PROGETTO,
           CASE
				WHEN ISDATE(TANAB.DTRIF) = 0 THEN NULL
				ELSE CAST(CAST(TANAB.DTRIF AS VARCHAR(8)) AS DATETIME)
		   END AS DATA_ATTIVAZIONE,
           --CAST(CAST(TANAB.DTRIF AS VARCHAR(8)) AS DATETIME) AS DATA_ATTIVAZIONE,
           CASE
				WHEN ISDATE(TANAB.DTCTV) = 0 THEN NULL
				ELSE CAST(CAST(TANAB.DTCTV AS VARCHAR(8)) AS DATETIME)
		   END AS DATA_CTV,
           TANAB.CTV AS CTV_MONITORATO,
           TANAB.APP_INI AS APPORTO_INIZIALE,
           TANAB.NTOT_APP AS APPORTO_SUCCESSIVO,
           TANAB.NTOT_LIQ AS LIQUIDAZIONI,
           TANAB.TOT_CED + TANAB.TOT_DIV AS CEDOLE_DIVIDENDI,
           TANAB.CTV - (TANAB.APP_INI + TANAB.NTOT_APP - TANAB.NTOT_LIQ) AS MINUS_PLUSVALENZA,
          -- TANAB.APP_INI + TANAB.NTOT_APP - TANAB.NTOT_LIQ - TANAB.TOT_CED - TANAB.TOT_DIV AS RISORSE_ASSOCIATE,
           TANAB.APP_INI + TANAB.NTOT_APP - TANAB.NTOT_LIQ  AS RISORSE_ASSOCIATE,
           cast(TANAB.RENDATT as decimal(15,2)) AS RENDIMENTO_CUMULATO,
           TANAB.RENDATTANN AS RENDIMENTO_ANNUALIZZATO,
		   CM.ChiaveProgetto AS ORDINAMENTO_PROGETTO,
           @ID_ELAB AS ID_ELAB
	FROM C6StagingPeriodico.TANAB AS TANAB
    INNER JOIN C6StagingPeriodico.RP_ChiaviMonitoraggio CM
        ON TANAB.CODPROG = CM.idmonitoraggio
--    INNER JOIN C6StagingPeriodico.RP_Consulenza CS
--        ON CM.chiaveprogetto = CS.chiaveProgetto
    INNER JOIN C6StagingPeriodico.RP_Progetto PR
        ON CM.chiaveprogetto = PR.chiaveProgetto
    INNER JOIN C6StagingPeriodico.RP_ProgettiPiramideModello CS
        ON PR.chiaveprogettoMod = CS.chiaveProgettoMod
    INNER JOIN [C6MartPeriodico].[RP_vContrattiPerGenerazioneReport] VC
        ON TANAB.CODFIS = CASE WHEN VC.COD_MANDATO IS NULL OR VC.COD_MANDATO = '' 
                              THEN CASE WHEN VC.PIVA_FIDUCIARIA IS NULL OR VC.PIVA_FIDUCIARIA = '' 
                                    THEN VC.COD_FISCALE 
                             ELSE VC.PIVA_FIDUCIARIA END 
                             ELSE VC.COD_MANDATO
                          END
       AND TANAB.RETE = VC.RETE
       --AND VC.DATA_FINEAVANZATO > getDate() 
	WHERE 1 = 1
		AND TANAB.DTFINE = 99991231
-- modifica di Luca per errore Mart simulazione 16/12/2015		
		and TANAB.CODFIS not in ('BRTDIA49E49L219N','GRPGLI71R45L407D','GSTMGS42D51L833Z','MLSRNT54M12B354E','MRTGRL59B60H501T','RMNFNC40R14H501K')
---------------------------------------------------------------------------------------
	-- Log esecuzione
	UPDATE
		LOG_ESECUZIONE
	SET
		Fine = GETDATE(),
		Tipo = 'INSERT',
		Righe = @@ROWCOUNT
	WHERE
		Nome = 'RP_DM_MONITORAGGIO_ATTUALE_pre_selective' AND
		Inizio = (
			SELECT
				MAX(Inizio)
			FROM
				LOG_ESECUZIONE
			WHERE
				Nome = 'RP_DM_MONITORAGGIO_ATTUALE_pre_selective'
		)
END