--select * from C6MartPeriodico.CONTRATTOSEI_METADATI
-- =============================================
-- Author: <Author,,Name>
-- Create date: <Create Date,,>
-- Description: <Description,,>
-- =============================================
CREATE PROCEDURE [C6MartPeriodico].[RP_AggiornaFlagContratto]
AS
BEGIN
-- SET NOCOUNT ON added to prevent extra result sets from
-- interfering with SELECT statements.
-- SET NOCOUNT ON;
	-- Log esecuzione
	INSERT INTO LOG_ESECUZIONE
		(Nome, Inizio, Nota)
	VALUES (
		'RP_AggiornaFlagContratto',
		GETDATE(),
		'Elaborazione giornaliera'
	)
/*
select top 1 *
from C6MartPeriodico.CONTRATTOSEI_METADATI where risorseNa is null
*/
	--AGGIORNAMENTO TABELLA CONTRATTOSEI
	--FLAG RISORSE NON ASSOCIATE
	--SOLO PER I CLIENTI A CUI ANDREBBE INVIATO IL REPORT
	UPDATE C6MartPeriodico.CONTRATTOSEI_METADATI
	SET 
		RisorseNA =
			CASE
				WHEN CLIENTIRISNA.percRisorseNA >= CAST(dbo.GETPARAMETRO('PercMaxRisorseNA') AS DECIMAL(5,2)) THEN 'S'
				ELSE 'N'
			END
	--AGGIUNTA perchè mancava, FABRIZIO E VALERIO per Azzeramento numero solleciti email
		,NumSolleciti =
			CASE
				WHEN (C6.ClienteMigrato = 'S') and (CLIENTIRISNA.percRisorseNA < CAST(dbo.GETPARAMETRO('PercMaxRisorseNA') AS DECIMAL(5,2))) THEN 0
				ELSE NumSolleciti
			END
	FROM C6MartPeriodico.CONTRATTOSEI_METADATI C6
	JOIN
		C6MartPeriodico.VCONTRATTI VCONTR
	ON
		C6.CHIAVECLIENTEPB = VCONTR.CHIAVECLIENTEPB
	LEFT JOIN (
		SELECT 
			NA.RETE, 
			NA.COD_FISCALE,
			CASE
				WHEN TOT.CTVTOTALE = 0 THEN 0
				ELSE 100 * NA.CTVNA / TOT.CTVTOTALE
			END AS percRisorseNA
		FROM (
			SELECT
				ISNULL(SUM(PATRBF.CTV),0) AS CTVNA,
				PATRBF.RETE, PATRBF.COD_FISCALE
			FROM C6MartPeriodico.PATRIMONIO_BF PATRBF
			--INNER JOIN C6MartPeriodico.RP_vTuttiIContratti VCONTRATTIPERSEI
			--	ON PATRBF.RETE = VCONTRATTIPERSEI.RETE
			--	AND PATRBF.COD_FISCALE = VCONTRATTIPERSEI.COD_FISCALE
			WHERE ID_AREA = 'Na'
			GROUP BY
				PATRBF.RETE, PATRBF.COD_FISCALE
		) NA
		INNER JOIN (
			SELECT
				SUM(PATRBF.CTV) AS CTVTOTALE,
				PATRBF.RETE, PATRBF.COD_FISCALE
			FROM C6MartPeriodico.PATRIMONIO_BF PATRBF
			WHERE ID_AREA <> 'Cc'
			GROUP BY
				PATRBF.RETE, PATRBF.COD_FISCALE
		) TOT 
			ON TOT.RETE = NA.RETE AND TOT.COD_FISCALE = NA.COD_FISCALE
	) CLIENTIRISNA
	ON VCONTR.RETE = CLIENTIRISNA.RETE
	AND VCONTR.COD_FISCALE = CLIENTIRISNA.COD_FISCALE
	WHERE C6.InvioBenvenuto = 'N'	
	--V Aggiorna il flag Profilo Attivo per i clienti che non hanno ricevuto il report	
	UPDATE C6MartPeriodico.CONTRATTOSEI_METADATI
	SET profiloAttivo = CASE WHEN (ISNULL(MIFID.SCADUTO,1) = 1) THEN 0 ELSE 1 end
	FROM C6MartPeriodico.CONTRATTOSEI_METADATI
	JOIN C6MartPeriodico.VCONTRATTI
		ON	VCONTRATTI.CHIAVECLIENTEPB = CONTRATTOSEI_METADATI.CHIAVECLIENTEPB
	LEFT JOIN C6MartPeriodico.MIFID
	--ON CONTRATTOSEI_METADATI.chiaveClientePB = MIFID.chiaveClientePB
		ON	MIFID.RETE = VCONTRATTI.RETE
		AND	MIFID.COD_FISCALE = VCONTRATTI.COD_FISCALE
	WHERE InvioBenvenuto = 'N' 
--select * from C6MartPeriodico.VCONTRATTI
	--V Aggiorna i dati di migrazione
	UPDATE C6MartPeriodico.CONTRATTOSEI_METADATI
	SET clienteMigrato =
		case when (C6Staging.RP_Migraz_Pianificazione.chiaveClientePB is null) then 'N'
		else  'S'
		END
	FROM C6MartPeriodico.CONTRATTOSEI_METADATI
	LEFT JOIN C6Staging.RP_Migraz_Pianificazione
	ON CONTRATTOSEI_METADATI.chiaveClientePB =  C6Staging.RP_Migraz_Pianificazione.chiaveClientePb
	WHERE InvioBenvenuto = 'N' 	
	-- Log esecuzione
	UPDATE
		LOG_ESECUZIONE
	SET
		Fine = GETDATE(),
		Tipo = 'UPDATE',
		Righe = @@ROWCOUNT
	WHERE
		Nome = 'RP_AggiornaFlagContratto' AND
		Inizio = (
			SELECT
				MAX(Inizio)
			FROM
				LOG_ESECUZIONE
			WHERE
				Nome = 'RP_AggiornaFlagContratto'
		)
END