CREATE procedure C6StagingPeriodico.CheckDisallineati as
begin 
	-- Log esecuzione
	INSERT INTO LOG_ESECUZIONE
		(Nome, Inizio, Nota)
	VALUES (
		'CheckDisallineati',
		GETDATE(),
		'Elaborazione Trimestrale'
	)
	DECLARE @NumRec Int;
    Select @NumRec = count(*) from 
		consevo_periodico.ConsulenzaEvoluta.dbo.Pianificazione pian
	INNER JOIN 
	    consevo_periodico.ConsulenzaEvoluta.dbo.Progetto prg
			ON prg.chiaveConsulenza=pian.chiaveConsulenza
    INNER JOIN 
		consevo_periodico.ConsulenzaEvoluta.dbo.PosizioniPortafoglio ptf
			ON ptf.chiaveProgetto=prg.chiaveProgetto
	LEFT JOIN 
		consevo_periodico.ConsulenzaEvoluta.dbo.PosizioniMonitorate moni
			ON moni.chiaveposizioneptf=ptf.chiaveposizioneptf
	INNER JOIN 
		consevo_periodico.CatalogoProdotti.dbo.CatalogoProdotti cat
			ON cat.ChiaveProdotto=ptf.chiaveProdotto
	WHERE prg.flagAvviatoMonitoraggio=1
		AND ptf.dtFineValidita>GETDATE()
		AND (moni.dtFineValidita>GETDATE() or moni.dtFineValidita is null)
		AND moni.chiaveposizioneptf is null
	 if @NumRec > 0 
	   RAISERROR (N'Errore', -- Message text.
			   10, -- Severity,
			   1, -- State,
			   N'number', -- First argument.
			   5); -- Secon
	-- Log esecuzione
	UPDATE
		LOG_ESECUZIONE
	SET
		Fine = GETDATE(),
		Tipo = 'Check',
		Righe = @@ROWCOUNT
	WHERE
		Nome = 'CheckDisallineati' AND
		Inizio = (
			SELECT
				MAX(Inizio)
			FROM
				LOG_ESECUZIONE
			WHERE
				Nome = 'RP_ST_Proposta'
		)
end