CREATE procedure [C6Staging].[RP_ST_Pianificazione] as
begin
declare @diff_giorni as datetime
declare @data_diff as int
set @diff_giorni = (SELECT MAX(dtInizioValidita) From CONSUNI.ConsulenzaUnica.DBO.Token)
set @data_diff = (SELECT DATEDIFF(day, @diff_giorni,getdate())+1)
	-- Log esecuzione
	INSERT INTO LOG_ESECUZIONE
		(Nome, Inizio, Nota)
	VALUES (
		'RP_ST_Pianificazione',
		GETDATE(),
		'Elaborazione giornaliera'
	)
	truncate table c6staging.RP_Pianificazione
	insert into c6staging.RP_Pianificazione (
		chiaveConsulenza
		,chiaveClientePB
		,dtUltimoAggiornamento
		,risorseFinanziarieBF
		,risorseFinanziarieTerzi
		,contoCorrente
		,rischioCredito
		,rischioMercato
		,diversificazione
		,copertura
		,isAttivoRC
		,partiteViaggianti
		,dtPrimaMigrazione
		,dtPianificazioneOrizzontale
		,dtPianificazioneVerticale
		,token
		,varRisorseAllocate
		,coperturaRisorseAllocate
		,lineaself
		)
select chiaveConsulenza
,pian.chiaveClientePB
,pian.dtAggiornamento as dtUltimoAggiornamento
,Null as risorseFinanziarieBF
,Null as risorseFinanziarieTerzi
,Null as contoCorrente
,null as rischioCredito
,case when (rischioCreditoDecodificatoRisAll like '%n.a.%') or (rischioCreditoDecodificatoRisAll like '%n.c.%')
or (rischioCreditoDecodificatoRisAll like '%classe%') then null else rischioCreditoDecodificatoRisAll end as rischioMercato
--rischioCreditoDecodificatoRFA as rischioCredito
,coperturaRFA as diversificazione
,coperturaRisAll as copertura
,null as isAttivoRC
,partiteViaggianti
,dtPrimaMigrazione
,dtPianificazioneOrizzontale
,dtPianificazioneVerticale
,tok.value as Token
,null as varRisorseAllocate
,coperturaRisorseAllocate
,null AS lineaself
-----------------------> MODIFICA DEL 28/11/2016 SU INDICAZIONE DI ALESSIA PER UNA CORRETTA JOIN
--FROM [CONSUNI].[consulenzaUnica].dbo.Pianificazione pian
--inner join [CONSUNI].[consulenzaUnica].dbo.token tok
--on pian.chiaveToken = tok.chiavetoken
--inner join [CONSUNI].[ConsulenzaUnica].dbo.eventiCliente ev
FROM [CONSUNI].[consulenzaUnica].dbo.Pianificazione pian
inner join [CONSUNI].[consulenzaUnica].dbo.Clientepb clipb
on pian.chiaveclientepb = clipb.chiaveclientepb
inner join [CONSUNI].[consulenzaUnica].dbo.token tok
on clipb.chiaveToken = tok.chiavetoken
inner join [CONSUNI].[ConsulenzaUnica].dbo.eventiCliente ev
on ev.chiaveclientePb = pian.chiaveclientepb
and CONVERT(VARCHAR,DATEADD(d, @data_diff,CONVERT(DATETIME,tok.dtiniziovalidita, 112) ),112)= CONVERT(VARCHAR,DATEADD(d, 1,CONVERT(DATETIME,getdate(), 112) ),112)
/* 6/9/2016 Condizione non più necessaria nella nuova CU: il significato di pianificazione è mutato */
--where ev.flagPianificazione = 1
/*  POPOLO RISORSE FINANZIARIE BF   */
SELECT SUM(dett.ctv) as RisorseFinanziareBF,pian.chiaveclientePB
into #APPO
    from CONSUNI.ConsulenzaUnica.dbo.Pianificazione pian
	inner join CONSUNI.ConsulenzaUnica.dbo.area a
	on a.chiaveconsulenza = pian.chiaveconsulenza
	inner join  CONSUNI.ConsulenzaUnica.dbo.Progetto prog
	on a.chiaveArea = prog.chiavearea
	inner join CONSUNI.ConsulenzaUnica.dbo.ProgettiPiramideModello propirMod
	on propirMod.chiaveprogettomod = prog.chiaveprogettomod
	inner join CONSUNI.ConsulenzaUnica.dbo.PosizioniPortafoglio pospor
	on pospor.chiaveprogetto = prog.chiaveprogetto
	inner join CONSUNI.ConsulenzaUnica.dbo.DettaglioPosizionePortafoglio dett
	on dett.chiaveposizioneptf = pospor.chiaveposizioneptf
	group by pian.chiaveclientePB
	UPDATE  C6StagingPeriodico.RP_Pianificazione
	SET risorseFinanziarieBF = a.RisorseFinanziareBF
    from #APPO a
	inner join C6StagingPeriodico.RP_Pianificazione rpPian
	on rpPian.chiaveclientePB = a.chiaveClientePB
	-- Log esecuzione
	UPDATE
		LOG_ESECUZIONE
	SET
		Fine = GETDATE(),
		Tipo = 'INSERT',
		Righe = @@ROWCOUNT
	WHERE
		Nome = 'RP_ST_Pianificazione' AND
		Inizio = (
			SELECT
				MAX(Inizio)
			FROM
				LOG_ESECUZIONE
			WHERE
				Nome = 'RP_ST_Pianificazione'
		)
end