CREATE procedure [C6StagingPeriodico].[RP_ST_CONSULENZA_pre_selective]
AS
BEGIN
	-- riportare le logiche nelle rispettive sp di PL
	SET NOCOUNT ON;
	DECLARE @ID_ELAB INT
	DECLARE @TIPO_ELAB VARCHAR(1)
	SET @ID_ELAB = C6MartPeriodico.GETIDELAB()
	SET @TIPO_ELAB = C6MartPeriodico.GETTIPOELAB()
	-- Log esecuzione
	INSERT INTO LOG_ESECUZIONE
		(Nome, Inizio, Nota)
	VALUES (
		'RP_ST_CONSULENZA_pre_selective',
		GETDATE(),
		'Elaborazione Trimestrale'
	)
TRUNCATE TABLE C6StagingPeriodico.[RP_CONSULENZA]
SELECT 
	contr.chiaveClientePB --V usata per il join con la contratto_sei metadati per fare il filtro nella consulenza
	,contr.rete
	,contr.cod_fiscale
	,pirmod.nomeProgetto
	,pro.chiaveProgetto
	,pro.area
	,pro.tipoProgetto
	,catprod.azob as StrType
	,catprod.Complessita
	,emit.Descrizione AS DescrizioneEmittente
	,PosPor.conto
	,PosPor.rubricato
	,PosPor.codConf
	,PosPor.numPolizza
	,PosPor.custGar
	,catprod.TipoProdotto
	,catprod.CodSottoprodotto
	,catprod.CodInterno
	,catprod.CodMaf
	,catprod.CodIsin	 
	,POSITION_ID = ''
    ,termId 
	,anno 
	,prog
    ,orizzonteTemporale 
	INTO #ConsulenzaPianificazione
FROM
		C6StagingPeriodico.RP_Pianificazione AS pian
	INNER JOIN C6StagingPeriodico.RP_Progetto AS pro
		ON pian.chiaveConsulenza = pro.chiaveConsulenza
	INNER JOIN C6StagingPeriodico.RP_ProgettiPiramideModello pirmod
		ON pro.chiaveprogettoMod=pirmod.chiaveprogettomod
	INNER JOIN C6StagingPeriodico.RP_PosizioniPortafoglio AS pospor
		ON pro.chiaveProgetto = pospor.chiaveProgetto
	INNER JOIN C6StagingPeriodico.RP_DettaglioPosizionePortafoglio AS dettposport
		ON pospor.chiavePosizionePtf = dettposport.chiavePosizionePtf
	INNER JOIN C6StagingPeriodico.RP_CatalogoProdotti AS catprod
		ON pospor.chiaveProdotto = catprod.ChiaveProdotto
	LEFT JOIN C6StagingPeriodico.RP_AnEmittente emit
         ON catprod.emittente=emit.emittente
    INNER JOIN C6MartPeriodico.RP_vContrattiPerGenerazioneReport contr
		ON pian.chiaveClientePB = contr.chiaveClientePB
	WHERE		 
	pospor.dtFineValidita > getdate()
	AND pro.dtfinevalidita='99991231'
	AND pirmod.dtfinevalidita='99991231'
	--AND INVIOBENVENUTO = 'N'
--ricerco dati da Migrazione
SELECT
	contr.chiaveClientePB --V usata per il join con la contratto_sei metadati per fare il filtro nella consulenza
	,contr.rete
	,contr.cod_fiscale
	,pirmod.nomeProgetto
	--,mig.chiaveClientePB --V usata per il join con la contratto_sei metadati per fare il filtro nella consulenza
	,promig.chiaveProgetto
	,promig.area
	,promig.tipoProgetto
	,catprod.azob as StrType
	,catprod.Complessita
	,emit.Descrizione AS DescrizioneEmittente
	,MigPos.conto
	,MigPos.rubricato
	,MigPos.codConf
	,MigPos.numPolizza
	,MigPos.custGar
	,catprod.TipoProdotto
	,catprod.CodSottoprodotto
	,catprod.CodInterno
	,catprod.CodMaf
	,catprod.CodIsin
	,POSITION_ID = ''  
	,migpos.termId 
	,migpos.anno 
	,migpos.prog 
	,null as orizzonteTemporale
INTO #ConsulenzaMigrazione
FROM
	C6StagingPeriodico.RP_Migraz_Pianificazione AS mig
	INNER JOIN C6StagingPeriodico.RP_Migraz_Progetto AS promig
		ON mig.chiaveconsulenza = promig.chiaveconsulenza
	INNER JOIN C6StagingPeriodico.RP_ProgettiPiramideModello pirmod
		ON promig.chiaveprogettoMod=pirmod.chiaveprogettomod
	INNER JOIN C6StagingPeriodico.RP_Migraz_Posizioni AS migpos
		ON promig.chiaveprogetto = migpos.chiaveprogetto
	INNER JOIN C6StagingPeriodico.RP_CatalogoProdotti AS catprod
		ON migpos.chiaveProdotto = catprod.ChiaveProdotto
	LEFT JOIN C6StagingPeriodico.RP_AnEmittente emit
		ON catprod.emittente=emit.emittente
	INNER JOIN C6MartPeriodico.RP_vContrattiPerGenerazioneReport contr
		ON mig.chiaveClientePB = contr.chiaveClientePB	
	LEFT JOIN #ConsulenzaPianificazione tc
		ON mig.chiaveClientePB = tc.chiaveClientePB
	WHERE
	 pirmod.dtfinevalidita='99991231'
	AND migpos.dtFineValidita > getdate()
	AND tc.chiaveClientePB IS NULL	
	--AND INVIOBENVENUTO = 'N'
INSERT INTO C6StagingPeriodico.RP_Consulenza  
	SELECT * FROM #ConsulenzaPianificazione
	UNION 
	SELECT * FROM #ConsulenzaMigrazione
	UPDATE
		LOG_ESECUZIONE
	SET
		Fine = GETDATE(),
		Tipo = 'INSERT',
		Righe = @@ROWCOUNT
	WHERE
		Nome = 'RP_ST_CONSULENZA_pre_selective' AND
		Inizio = (
			SELECT
				MAX(Inizio)
			FROM
				LOG_ESECUZIONE
			WHERE
				Nome = 'RP_ST_CONSULENZA_pre_selective'
		)
END