CREATE procedure [C6StagingPeriodicoImmobiliare].[RP_ST_ProgettiPiramideModello] as
begin 
	-- Log esecuzione
	INSERT INTO LOG_ESECUZIONE_PERIODICO_IMMOBILIARE
		(Nome, Inizio, Nota)
	VALUES (
		'RP_ST_ProgettiPiramideModello',
		GETDATE(),
		'Staging IMMOBILIARE'
	)
	--INSERT INTO C6MARTPERIODICO.TEST_QUALITY	
	--SELECT DISTINCT	 
	-- d.rete,	
	--case when(isnull(ltrim(rtrim(codman)),'') <> '') then 'FF@'+codman
	--	 when (isnull(codfis,'') <> '') then codfis 	
	--	 else c.piva
	--end as Cod_fiscale,   
 --   'SCARTO PER PIRAMIDE MODELLO tipoprogetto > 1' AS MOTIVO	 
	--FROM [CONSUNI_PERIODICO].[consulenzaunica].dbo.Contratto a
	--JOIN [CONSUNI_PERIODICO].[consulenzaunica].dbo.ClientePB b 
	--	ON b.chiaveClientePB = a.chiaveClientePB 
	--	AND a.status in ('SEI','AVANZATOBASE','REVOCASEI')
	--JOIN [CONSUNI_PERIODICO].[consulenzaunica].dbo.Cliente c 
	--	ON b.chiaveCliente = c.chiaveCliente 
	--JOIN [CONSUNI_PERIODICO].[consulenzaunica].dbo.PromotoreBancario d 
	--	ON b.chiavePB = d.chiavePB
	--WHERE
	--	A.chiaveclientepb in ( 
	--	select distinct chiaveclientepb 
	--	FROM 
	--	(
	--	--SELECT chiaveclientepb,area,tipoprogetto,COUNT(*) as c FROM   
	--	--[CONSUNI_PERIODICO].[consulenzaEvoluta].dbo.ProgettiPiramideModello
	--	--where tipoprogetto =0 and area <> 'na' and isnull(dtFineValidita,'99991231')>GETDATE()
	--	--group by chiaveclientepb,area,tipoprogetto
	--	--having COUNT(*)<>1 
	--	    SELECT chiaveclientepb,area,COUNT(*) as c 
	--		FROM [CONSUNI_PERIODICO].consulenzaunica.dbo.piramidemodello pirmod
	--		inner join [CONSUNI_PERIODICO].consulenzaunica.dbo.areamodello areamod
	--		on pirmod.chiavePiramideMod = areamod.chiaveAreaMod
	--		inner join [CONSUNI_PERIODICO].[consulenzaunica].dbo.ProgettiPiramideModello progmod
	--		on progmod.chiaveAreaMod = areamod.chiaveAreaMod
	--		where  area <> 'na' 
	--		group by chiaveclientepb,area
	--		having COUNT(*)<>1
	--	) t
	--)  
	--drop table C6StagingPeriodicoImmobiliare.RP_ProgettiPiramideModello
	truncate table C6StagingPeriodicoImmobiliare.RP_ProgettiPiramideModello
	insert into C6StagingPeriodicoImmobiliare.RP_ProgettiPiramideModello
select  
	   prog.chiaveProgettoMod
      ,pian.chiaveClientePB
       -------------------------> modifica del 18/1/2017 per correggere le anomalie dovute al nome area 'pre1'e 'pre2' 
      --,am.area
				,CASE
				WHEN pirMod.nomeProgetto = 'Previdenza Essenziale' and am.area = 'Pre' THEN 'Pre1'
				WHEN pirMod.nomeProgetto = 'Previdenza Secondaria' and am.area = 'Pre' THEN 'Pre2'
				ELSE AM.AREA
				END AS area
      -------------------------> fine modifica del 18/1/2017   
      ,percentualeProgetto
      ,null as tipoProgetto
	  /* 20161215 imposta per area previdenza il nome progetto a Default */
      --,nomeProgetto
	  ,case when am.area = 'Pre' 
	     then 'Default' 
	     else nomeProgetto 
	   end AS nomeProgetto
	   /* 20161215 fine */
      ,[durata]
      ,[note]
      ,'99991231' as dtFineValidita
      ,null as [dtCreazione]
	from [CONSUNI_PERIODICO].[consulenzaUnica].dbo.ProgettiPiramideModello pirmod
		 inner join [CONSUNI_PERIODICO].[consulenzaUnica].dbo.Progetto prog
		 on prog.chiaveprogettoMod = pirmod.chiaveProgettoMod
		 inner join [CONSUNI_PERIODICO].[consulenzaUnica].dbo.AreaModello am
		 on am.chiaveAreaMod = pirmod.ChiaveAreaMod
		 inner join  [CONSUNI_PERIODICO].[consulenzaUnica].dbo.Area a
		 on a.chiaveArea = prog.chiaveArea
		 inner join [CONSUNI_PERIODICO].[consulenzaUnica].dbo.Pianificazione pian 
		 on pian.chiaveconsulenza = a.chiaveconsulenza
    --update C6StagingPeriodicoImmobiliare.RP_ProgettiPiramideModello set nomeProgetto = null where tipoprogetto = 0
	-- Log esecuzione
	UPDATE
		LOG_ESECUZIONE_PERIODICO_IMMOBILIARE
	SET
		Fine = GETDATE(),
		Tipo = 'INSERT',
		Righe = @@ROWCOUNT
	WHERE
		Nome = 'RP_ST_ProgettiPiramideModello' AND
		Inizio = (
			SELECT
				MAX(Inizio)
			FROM
				LOG_ESECUZIONE_PERIODICO_IMMOBILIARE
			WHERE
				Nome = 'RP_ST_ProgettiPiramideModello'
		)
end