-- Schema: C6Mart
-- Stored Procedure: RP_DM_CheckEmail

 
CREATE procedure [C6Mart].[RP_DM_CheckEmail] 
AS
BEGIN
 
DECLARE @NUMGIORNIDALPERF SMALLINT
DECLARE @NUMGIORNIDASOLLECITO SMALLINT
DECLARE @ID_ELAB INT
DECLARE @MaxInvioSoll as SMALLINT

SET @MaxInvioSoll = CAST(dbo.getParametro('MaxInvioSoll') as smallint)
SET @ID_ELAB = C6MART.GETIDELAB()
SET @NUMGIORNIDALPERF = CAST(dbo.getParametro('NUMGIORNIDALPERF') as smallint) --7
SET @NUMGIORNIDASOLLECITO = CAST(dbo.getParametro('NUMGIORNIDASOLLECITO') as smallint) --7
		 
-- Log esecuzione
INSERT INTO LOG_ESECUZIONE(Nome, Inizio, Nota) 
	VALUES ('RP_DM_CheckEmail',GETDATE(),'Elaborazione giornaliera')
	
 
SELECT E.Email_Id,E.Tipo,E.Data_Generazione,E.Inviata,E.Data_Invio,E.Data_Comunicazione_Host,E.ID_ELAB,C.* 
INTO #EMAILCK
FROM C6MART.GESTIONE_EMAIL E INNER JOIN C6MART.VCONTRATTISEI C 
ON E.COD_FISCALE=C.COD_FISCALE AND E.RETE=C.RETE
WHERE  ISNULL(E.Inviata,'N') <> 'S'

DELETE c6mart.test_logmd  WHERE CMD = 'GENERATO GIORNO PRECEDENTE'
INSERT INTO c6mart.test_logmd (CMD,dtinsert,COD_FISCALE,RETE,NOTE) 
SELECT 'GENERATO GIORNO PRECEDENTE',GETDATE(),COD_FISCALE,RETE,'EMAIL_ID '+CONVERT(VARCHAR,EMAIL_ID) FROM #EMAILCK WHERE 
Data_Generazione <   convert(varchar, GetDate(), 101)

INSERT INTO c6mart.test_logmd (CMD,dtinsert,COD_FISCALE,RETE,NOTE) 
SELECT 'EMAIL NOMIG NON CONGRUENTE',GETDATE(),COD_FISCALE,RETE,'EMAIL_ID '+CONVERT(VARCHAR,EMAIL_ID) FROM #EMAILCK WHERE 
Data_Generazione >=   convert(varchar, GetDate(), 101)
AND SUBSTRING(TIPO,2,11) = '_SOLL_NOMIG' AND CLIENTEMIGRATO = 'S'

INSERT INTO c6mart.test_logmd (CMD,dtinsert,COD_FISCALE,RETE,NOTE) 
SELECT 'EMAIL NOASS NON CONGRUENTE',GETDATE(),COD_FISCALE,RETE,'EMAIL_ID '+CONVERT(VARCHAR,EMAIL_ID) FROM #EMAILCK WHERE 
Data_Generazione >=   convert(varchar, GetDate(), 101)
AND SUBSTRING(TIPO,2,11) = '_SOLL_NOASS' AND RISORSENA = 'N'

INSERT INTO c6mart.test_logmd (CMD,dtinsert,COD_FISCALE,RETE,NOTE) 
SELECT 'EMAIL NOPRO NON CONGRUENTE',GETDATE(),COD_FISCALE,RETE,'EMAIL_ID '+CONVERT(VARCHAR,EMAIL_ID) FROM #EMAILCK WHERE 
Data_Generazione >=   convert(varchar, GetDate(), 101)
AND SUBSTRING(TIPO,2,11) = '_SOLL_NOPRO' AND PROFILOATTIVO = 1

INSERT INTO c6mart.test_logmd (CMD,dtinsert,COD_FISCALE,RETE,NOTE) 
SELECT 'SUPERATO PERIODO DI PERF',GETDATE(),COD_FISCALE,RETE,'EMAIL_ID '+CONVERT(VARCHAR,EMAIL_ID) FROM #EMAILCK WHERE 
Data_Generazione >=   convert(varchar, GetDate(), 101)
AND SUBSTRING(TIPO,2,11) IN ('_SOLL_NOMIG','_SOLL_NOASS','_SOLL_NOPRO')
AND DATEDIFF(d,DATA_PERF, GETDATE()) > (CAST(dbo.getParametro('MaxInvioSoll') as smallint)-1) * 
										CAST(dbo.getParametro('NUMGIORNIDASOLLECITO') as smallint)+
										CAST(dbo.getParametro('NUMGIORNIDALPERF') as smallint)

INSERT INTO c6mart.test_logmd (CMD,dtinsert,COD_FISCALE,RETE,NOTE) 
SELECT 'BLOCCATO CF 01484040488',GETDATE(),COD_FISCALE,RETE,'EMAIL_ID '+CONVERT(VARCHAR,EMAIL_ID) FROM #EMAILCK WHERE 
Data_Generazione >=   convert(varchar, GetDate(), 101)
AND COD_FISCALE = '01484040488' 
		

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

END