-- =============================================
-- Author:		<Luca,,C6Mart.DM_GestioneEmail>
-- Create date: <13/11/2008,,>
-- Description:	<Prima fase popolamento tabella email,,>
-- =============================================
CREATE procedure [C6MartPeriodico].[DM_GESTIONE_EMAIL_REPORT_DA_GENERARE] 
AS
BEGIN
--TRUNCATE TABLE C6MartPeriodico.GESTIONE_EMAIl
BEGIN TRANSACTION
--QUESTA SP POPOLA LA TABELLA GESTIONE_EMAIL PER LE CASISTICHE DI:
--	LISTA CLIENTI PER CUI OCCORRE GENERARE I REPORT
DECLARE @ID_ELAB INT
SET @ID_ELAB = C6MARTPERIODICO.GETIDELAB()
DECLARE @GETDATE AS DATETIME
SELECT 	@GETDATE = GETDATE()
-- Log esecuzione
INSERT INTO LOG_ESECUZIONE
	(Nome, Inizio, Nota)
VALUES (
	'DM_GESTIONE_EMAIL_REPORT_DA_GENERARE',
	GETDATE(),
	'Elaborazione trimestrale'
)
 --1. INSERIMENTO MAIL "LISTA CLIENTI PER CUI OCCORRE GENERARE I REPORT"
	-- TUPLE DA PERFEZIONARE SU CONTRATTOSEI
	-- NON PRESENTI SU GESTIONE_EMAIL
DECLARE @TIPOEMAIL AS VARCHAR(50)
SET @TIPOEMAIL = 'LC_REP_DA_GEN'
DECLARE @id_periodiodo as int
	select @id_periodiodo = max(id_periodo) from [10.10.32.84].controllodata.dbo.clientiAdeguatezza_ALL
	INSERT INTO C6MartPeriodico.GESTIONE_EMAIL
		(Rete,CodicePB,Tipo,Data_Generazione, ID_ELAB)
	SELECT 
		DISTINCT
		C6.Rete,
		C6.Cod_Agente as CodicePB,
		@TIPOEMAIL as TipoEmail,
		@GETDATE AS DataGenerazione,
		@ID_ELAB as ID_ELAB
	--FROM C6MartPeriodico.vContrattiPerGenerazioneReport C6 --V cambiata la vista
	FROM 
      (select * from C6MartPeriodico.vContrattiPerGenerazioneReport 
        where rete + cod_agente in 
(
select 
	a.rete+ cod_agente
	from
	c6mart.contrattosei a
	left outer join
	[10.10.32.84].controllodata.dbo.clientiAdeguatezza_ALL b
	on 
	(case 
	 when len("codice mandato") = 0
	 then   b."codice fiscale"
	 else 'FF@'+ "codice mandato"
	end) = a.cod_fiscale 
	and a.rete=b.rete
    and a.cod_agente = substring(b.codagente, 2, len(b.codagente)- 1)
	where 
	b.id_periodo= @id_periodiodo--- chiedi ad antonio il periodo
	and a.data_fineavanzato is null
    and profilo > 0
    and dtprofilo is null
)) C6
--C6MartPeriodico.vContrattiPerGenerazioneReport C6
	LEFT OUTER JOIN C6MartPeriodico.GESTIONE_EMAIL EMAIL
			ON C6.RETE = EMAIL.RETE
			AND C6.COD_Agente = EMAIL.CodicePB
			AND EMAIL.TIPO = @TIPOEMAIL						
			AND YEAR(EMAIL.Data_Generazione) = YEAR(@GETDATE)	
			AND MONTH(EMAIL.Data_Generazione) = MONTH(@GETDATE)	
			AND ISNULL(EMAIL.[Inviata],'N') = 'N'	
	LEFT OUTER JOIN C6MART.CODICI_PROMOTORI_FITTIZI PF	
		ON C6.COD_AGENTE BETWEEN PF.CODICEDA AND PF.CODICEA
		AND C6.RETE = PF.RETE
	WHERE 1 = 1
		AND EMAIL.CodicePB IS NULL
		AND PF.RETE IS NULL
--recupero mail errate
--and c6.rete+c6.cod_agente in (
--	select * from temp_promotori)
-- 
IF @@ERROR<>0 ROLLBACK
-- Log esecuzione
UPDATE
	LOG_ESECUZIONE
SET
	Fine = GETDATE(),
	Tipo = 'INSERT',
	Righe = @@ROWCOUNT
WHERE
	Nome = 'DM_GESTIONE_EMAIL_REPORT_DA_GENERARE' AND
	Inizio = (
		SELECT
			MAX(Inizio)
		FROM
			LOG_ESECUZIONE
		WHERE
			Nome = 'DM_GESTIONE_EMAIL_REPORT_DA_GENERARE'
	)
COMMIT
END