-- Schema: C6Mart
-- Stored Procedure: DM_EMAIL_PB













-- =============================================
-- Author:		Paolo Giovanetti
-- Create date: 26 gennaio 2009
-- Description:	Recupera PB, RM, DM, AM le cui email non sono ancora valorizzate.
-- =============================================
CREATE procedure [C6Mart].[DM_EMAIL_PB]
AS
BEGIN
	-- SET NOCOUNT ON added to prevent extra result sets from
	-- interfering with SELECT statements.
	SET NOCOUNT ON;

	-- Log esecuzione
	INSERT INTO LOG_ESECUZIONE
		(Nome, Inizio, Nota)
	VALUES (
		'DM_EMAIL_PB',
		GETDATE(),
		'Elaborazione giornaliera'
	)

	SELECT DISTINCT
		CODICI_PB.RETE AS RETE, 
		CODICI_PB.CODICE AS CODICE,
		(CASE CODICI_PB.RETE WHEN 'F' THEN 'R' ELSE 'P' END) AS PREFISSO,
		(CASE CODICI_PB.RETE WHEN 'F' THEN 'R' ELSE 'P' END) + CODICI_PB.CODICE AS FIRMA
--,
--		CODICI_PB.LIVELLO AS LIVELLO,
--		CODICI_PB.LIV_ORD AS LIV_ORD
	FROM
	(	
		SELECT STRUTTURA.RETE, STRUTTURA.PB CODICE--, 'PB' as LIVELLO, 1 AS LIV_ORD
		FROM C6MART.CONTRATTOSEI PB
		INNER JOIN C6MART.STRUTTURA_RETE STRUTTURA
			ON PB.RETE = STRUTTURA.RETE
			AND PB.COD_AGENTE = STRUTTURA.PB

		UNION

		SELECT STRUTTURA.RETE, STRUTTURA.RM CODICE--, 'RM' as LIVELLO, 2 AS LIV_ORD
		FROM C6MART.CONTRATTOSEI PB
		INNER JOIN C6MART.STRUTTURA_RETE STRUTTURA
			ON PB.RETE = STRUTTURA.RETE
			AND PB.COD_AGENTE = STRUTTURA.PB

		UNION

		SELECT STRUTTURA.RETE, STRUTTURA.DM CODICE--, 'DM' as LIVELLO, 3 AS LIV_ORD
		FROM C6MART.CONTRATTOSEI PB
		INNER JOIN C6MART.STRUTTURA_RETE STRUTTURA
			ON PB.RETE = STRUTTURA.RETE
			AND PB.COD_AGENTE = STRUTTURA.PB

		UNION

		SELECT STRUTTURA.RETE, STRUTTURA.AM CODICE--, 'AM' as LIVELLO, 4 AS LIV_ORD
		FROM C6MART.CONTRATTOSEI PB
		INNER JOIN C6MART.STRUTTURA_RETE STRUTTURA
			ON PB.RETE = STRUTTURA.RETE
			AND PB.COD_AGENTE = STRUTTURA.PB

	) CODICI_PB
	LEFT JOIN C6MART.EMAIL_PB EMAIL_PB_ESISTENTI
		ON EMAIL_PB_ESISTENTI.RETE = CODICI_PB.RETE
		AND EMAIL_PB_ESISTENTI.CODICE = CODICI_PB.CODICE
	LEFT JOIN C6MART.CODICI_PROMOTORI_FITTIZI PF
		ON (CODICI_PB.CODICE BETWEEN PF.CODICEDA AND PF.CODICEA)
		AND CODICI_PB.RETE = PF.RETE
	WHERE EMAIL_PB_ESISTENTI.EMAIL IS NULL 
		AND PF.RETE IS NULL
--togliere
	--and CODICI_PB.CODICE not in ('010712','015115','015117','015091','015182','006167','015125','015126','015185','006154','006200') 
and CODICI_PB.CODICE not in ('015185') 
---eliminato il filtro '010712'
---eliminato il filtro su '015089'--,'015163', 12/08
	--ORDER BY CODICI_PB.LIV_ORD

	-- Log esecuzione
	UPDATE
		LOG_ESECUZIONE
	SET
		Fine = GETDATE(),
		Tipo = 'SELECT',
		Righe = @@ROWCOUNT
	WHERE
		Nome = 'DM_EMAIL_PB' AND
		Inizio = (
			SELECT
				MAX(Inizio)
			FROM
				LOG_ESECUZIONE
			WHERE
				Nome = 'DM_EMAIL_PB'
		)
END















