CREATE procedure [C6StagingPeriodico].[RP_ST_ProgettiPiramideModello_pre_selective] as
begin 
	-- Log esecuzione
	INSERT INTO LOG_ESECUZIONE
		(Nome, Inizio, Nota)
	VALUES (
		'RP_ST_ProgettiPiramideModello_pre_selective',
		GETDATE(),
		'Elaborazione Trimestrale'
	)
	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 C6StagingPeriodico.RP_ProgettiPiramideModello
	truncate table C6StagingPeriodico.RP_ProgettiPiramideModello
	insert into C6StagingPeriodico.RP_ProgettiPiramideModello
select  
	   prog.chiaveProgettoMod
      ,pian.chiaveClientePB
      ,am.area
      ,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 C6StagingPeriodico.RP_ProgettiPiramideModello set nomeProgetto = null where tipoprogetto = 0
	-- Log esecuzione
	UPDATE
		LOG_ESECUZIONE
	SET
		Fine = GETDATE(),
		Tipo = 'INSERT',
		Righe = @@ROWCOUNT
	WHERE
		Nome = 'RP_ST_ProgettiPiramideModello_pre_selective' AND
		Inizio = (
			SELECT
				MAX(Inizio)
			FROM
				LOG_ESECUZIONE
			WHERE
				Nome = 'RP_ST_ProgettiPiramideModello_pre_selective'
		)
end