--select * from #temp_email
CREATE procedure [C6Mart].[GESTIONE_SELECT_EMAIL_DA_INVIARE_EN_20170925]
AS
BEGIN
execute [C6Mart].[RP_DM_CheckEmail]
--recupero la percentuale limite di risorse non associate
DECLARE @RNA varchar(3)
select @RNA= dbo.getParametro('PERCMAXRISORSENA') + '%'
DECLARE @Ambiente varchar(20)
select @Ambiente= dbo.getParametro('Ambiente')
DECLARE @DestinatarioEmail varchar(255)
select @DestinatarioEmail= dbo.getParametro('DestinatarioEmail')
TRUNCATE TABLE c6mart.test_Quality_Email
INSERT INTO c6mart.test_Quality_Email
SELECT
data_perf, 
dateadd(
	day,(
		(CAST(dbo.getParametro('MaxInvioSoll') as smallint)-1) * 
		 CAST(dbo.getParametro('NUMGIORNIDASOLLECITO') as smallint)+
		 CAST(dbo.getParametro('NUMGIORNIDALPERF') as smallint)),
	 	 data_perf) as DATA_PERF_REV
		,CONTRATTOSEI.rete
		,CONTRATTOSEI.cod_agente
		,CM.numSolleciti
		,GESTIONE_EMAIL.TIPO
		,GESTIONE_EMAIL.[Email_Id]
		,CONTRATTOSEI.Cod_Fiscale
      	,[dbo].[Replace_From_Email](GESTIONE_EMAIL.[Rete],ISNULL(TIPO_EMAIL.[E_From],'')) E_From
		, case 
			when 
			@Ambiente = 'Produzione' 
			then 
				dbo.Replace_To_Email(TIPO_EMAIL.[E_To],ANAG_PROMOTORI.E_MAIL,'','')
			else
				@DestinatarioEmail
		 end as [E_To]
		,
		case
			when 
				GESTIONE_EMAIL.Tipo <> 'PERF' 
			then
				dbo.getParametro('Destinatario_Bcc')
			else
				''
		end as E_Ccn
		, case 
			when 
				@Ambiente = 'Produzione' 
			then 
				dbo.Cc_Email(CONTRATTOSEI.rete,CONTRATTOSEI.cod_agente,CM.numSolleciti,GESTIONE_EMAIL.TIPO)
			else
				''
		 end as E_Cc
       , case 
			when 
				@Ambiente = 'Produzione' 
			then 
			-------------------------en 2061025 -  parameter chenged for functions Replace_Subject_Email Replace_Testo_Email*/
			----	dbo.Replace_Subject_Email(TIPO_EMAIL.[E_Subject],ANAG_CLIENTI.NOME,ANAG_CLIENTI.COGNOME,ANAG_PROMOTORI.NOME,ANAG_PROMOTORI.COGNOME,ANAG_PROMOTORI.ID_PROMOTORE)
			----else
			----	dbo.Replace_Subject_Email(TIPO_EMAIL.[E_Subject],ANAG_CLIENTI.NOME,ANAG_CLIENTI.COGNOME,ANAG_PROMOTORI.NOME,ANAG_PROMOTORI.COGNOME,ANAG_PROMOTORI.ID_PROMOTORE) + '--- TO:' +  dbo.Replace_To_Email(TIPO_EMAIL.[E_To],ANAG_PROMOTORI.E_MAIL,'','') + '--- CC:' + dbo.Cc_Email(CONTRATTOSEI.rete,CONTRATTOSEI.cod_agente,CM.numSolleciti,GESTIONE_EMAIL.TIPO) + '---'
		 ----end as E_Subject
   ----    , case
			----when
			----	len(ltrim(rtrim(GESTIONE_EMAIL.[Cod_Fiscale]))) = 11
			----then
			----	--persone giuridiche
			----	dbo.Replace_Testo_Email(CONTRATTOSEI.CodiceContratto,GESTIONE_EMAIL.[Cod_Fiscale],isnull(ANAG_CLIENTI.Nome,' '),isnull(ANAG_CLIENTI.Cognome,'/$COGNOME NON PRESENTE$/'),ANAG_PROMOTORI.ID_PROMOTORE,ANAG_PROMOTORI.Cognome,ANAG_PROMOTORI.Nome,CONTRATTOSEI.Data_Perf,CONTRATTOSEI.Freq_Diagnosi,CONTRATTOSEI.Freq_Monitoraggio,@RNA,TIPO_EMAIL.[Testo])
			----else
			----	--persone fisiche
			----	dbo.Replace_Testo_Email(CONTRATTOSEI.CodiceContratto,GESTIONE_EMAIL.[Cod_Fiscale],isnull(ANAG_CLIENTI.Cognome,'/$COGNOME NON PRESENTE$/'),isnull(ANAG_CLIENTI.Nome,' '),ANAG_PROMOTORI.ID_PROMOTORE,ANAG_PROMOTORI.Cognome,ANAG_PROMOTORI.Nome,CONTRATTOSEI.Data_Perf,CONTRATTOSEI.Freq_Diagnosi,CONTRATTOSEI.Freq_Monitoraggio,@RNA,TIPO_EMAIL.[Testo])
				dbo.Replace_Subject_Email_test(TIPO_EMAIL.[E_Subject],ANAG_CLIENTI.NOME,ANAG_CLIENTI.COGNOME,ANAG_PROMOTORI.NOME,ANAG_PROMOTORI.COGNOME,ANAG_PROMOTORI.ID_PROMOTORE, CONTRATTOSEI.tip_contratto)
			else
				dbo.Replace_Subject_Email_test(TIPO_EMAIL.[E_Subject],ANAG_CLIENTI.NOME,ANAG_CLIENTI.COGNOME,ANAG_PROMOTORI.NOME,ANAG_PROMOTORI.COGNOME,ANAG_PROMOTORI.ID_PROMOTORE, CONTRATTOSEI.tip_contratto) + '--- TO:' + dbo.Replace_To_Email(TIPO_EMAIL.[E_To],ANAG_PROMOTORI.E_MAIL,'','') + '--- CC:' + dbo.Cc_Email(CONTRATTOSEI.rete,CONTRATTOSEI.cod_agente,CM.numSolleciti,GESTIONE_EMAIL.TIPO) + '---'
		 end as E_Subject
    , case
			when
				len(ltrim(rtrim(GESTIONE_EMAIL.[Cod_Fiscale]))) = 11
			then
				--persone giuridiche
				dbo.Replace_Testo_Email_test(CONTRATTOSEI.CodiceContratto,GESTIONE_EMAIL.[Cod_Fiscale],isnull(ANAG_CLIENTI.Nome,' '),isnull(ANAG_CLIENTI.Cognome,'/$COGNOME NON PRESENTE$/'),ANAG_PROMOTORI.ID_PROMOTORE,ANAG_PROMOTORI.Cognome,ANAG_PROMOTORI.Nome,CONTRATTOSEI.Data_Perf,CONTRATTOSEI.Freq_Diagnosi,CONTRATTOSEI.Freq_Monitoraggio,@RNA, CONTRATTOSEI.tip_contratto,CONTRATTOSEI.DATA_FINEAVANZATO, CONTRATTOSEI.DATA_INZIOAVANZATO,CONTRATTOSEI.RETE,TIPO_EMAIL.[Testo])
			else
				--persone fisiche
				dbo.Replace_Testo_Email_test(CONTRATTOSEI.CodiceContratto,GESTIONE_EMAIL.[Cod_Fiscale],isnull(ANAG_CLIENTI.Cognome,'/$COGNOME NON PRESENTE$/'),isnull(ANAG_CLIENTI.Nome,' '),ANAG_PROMOTORI.ID_PROMOTORE,ANAG_PROMOTORI.Cognome,ANAG_PROMOTORI.Nome,CONTRATTOSEI.Data_Perf,CONTRATTOSEI.Freq_Diagnosi,CONTRATTOSEI.Freq_Monitoraggio,@RNA, CONTRATTOSEI.tip_contratto,CONTRATTOSEI.DATA_FINEAVANZATO, CONTRATTOSEI.DATA_INZIOAVANZATO,CONTRATTOSEI.RETE,TIPO_EMAIL.[Testo])
--------------------------------------------en 2061025
		 end as Testo
--into c6mart.test_Quality_Email
FROM [C6Mart].[GESTIONE_EMAIL] GESTIONE_EMAIL
  INNER JOIN [C6Mart].[TIPO_EMAIL] TIPO_EMAIL
  ON GESTIONE_EMAIL.Tipo = TIPO_EMAIL.Tipo
  INNER JOIN [C6Mart].[VCONTRATTI] CONTRATTOSEI
  ON CONTRATTOSEI.Rete = GESTIONE_EMAIL.[Rete]
  AND CONTRATTOSEI.Cod_Fiscale = GESTIONE_EMAIL.Cod_Fiscale
  AND CONTRATTOSEI.data_fineavanzato > getDate()
  INNER JOIN [C6Mart].[CONTRATTOSEI_METADATI] CM
  ON CONTRATTOSEI.Rete = GESTIONE_EMAIL.[Rete]
  AND CONTRATTOSEI.CHIAVECLIENTEPB = CM.CHIAVECLIENTEPB
  LEFT JOIN [C6Mart].[ANAG_CLIENTI] ANAG_CLIENTI
  ON ANAG_CLIENTI.Rete = GESTIONE_EMAIL.[Rete]
  AND ANAG_CLIENTI.Cod_Fiscale = GESTIONE_EMAIL.Cod_Fiscale
  --V Per non inviare mail a pb terminati
  inner JOIN [C6Mart].ANAG_PROMOTORI ANAG_PROMOTORI
  ON ANAG_PROMOTORI.Rete = GESTIONE_EMAIL.[Rete]
  AND ANAG_PROMOTORI.ID_PROMOTORE = CONTRATTOSEI.Cod_Agente
  WHERE isnull(GESTIONE_EMAIL.Inviata,'N')='N'
AND ANAG_CLIENTI.COGNOME IS NOT NULL
and
dateadd(
	day,(
		(CAST(dbo.getParametro('MaxInvioSoll') as smallint)-1) * 
		 CAST(dbo.getParametro('NUMGIORNIDASOLLECITO') as smallint)+
		 CAST(dbo.getParametro('NUMGIORNIDALPERF') as smallint)),
	 	 data_perf) < getdate()
--and GESTIONE_EMAIL.Tipo in ('S_SOLL_NOMIG', '3_SOLL_NOMIG')
 --and GESTIONE_EMAIL.Tipo in ('S_SOLL_NOMIG', '3_SOLL_NOMIG','S_SOLL_NOASS','3_SOLL_NOASS','S_SOLL_NOPRO','3_SOLL_NOPRO')
 and GESTIONE_EMAIL.Tipo in ('PERF','REVOCA_NOPRO','1_SOLL_NOPRO','2_SOLL_NOPRO',   'S_SOLL_NOMIG', '3_SOLL_NOMIG','S_SOLL_NOASS','3_SOLL_NOASS', 'S_SOLL_NOPRO','3_SOLL_NOPRO')
----------------------------------------------------------------------------
SELECT  
--data_generazione,
		CONTRATTOSEI.rete
		,CONTRATTOSEI.cod_agente
		,CM.numSolleciti
		,GESTIONE_EMAIL.TIPO
		,GESTIONE_EMAIL.[Email_Id]
		,CONTRATTOSEI.Cod_Fiscale
      	,[dbo].[Replace_From_Email](GESTIONE_EMAIL.[Rete],ISNULL(TIPO_EMAIL.[E_From],'')) E_From
		, case 
			when 
			@Ambiente = 'Produzione' 
			then 
				dbo.Replace_To_Email(TIPO_EMAIL.[E_To],ANAG_PROMOTORI.E_MAIL,'','')
			else
				@DestinatarioEmail
		 end as [E_To]
		,
		case
			when 
				GESTIONE_EMAIL.Tipo <> 'PERF' 
			then
				dbo.getParametro('Destinatario_Bcc')
			else
				''
		end as E_Ccn
		, case 
			when 
				@Ambiente = 'Produzione' 
			then 
				dbo.Cc_Email(CONTRATTOSEI.rete,CONTRATTOSEI.cod_agente,CM.numSolleciti,GESTIONE_EMAIL.TIPO)
			else
				''
		 end as E_Cc
       , case 
			when 
				@Ambiente = 'Produzione' 
			then 
			-------------------------en 2061025 -  parameter chenged for functions Replace_Subject_Email Replace_Testo_Email*/
			--	dbo.Replace_Subject_Email(TIPO_EMAIL.[E_Subject],ANAG_CLIENTI.NOME,ANAG_CLIENTI.COGNOME,ANAG_PROMOTORI.NOME,ANAG_PROMOTORI.COGNOME,ANAG_PROMOTORI.ID_PROMOTORE)
			--else
			--	dbo.Replace_Subject_Email(TIPO_EMAIL.[E_Subject],ANAG_CLIENTI.NOME,ANAG_CLIENTI.COGNOME,ANAG_PROMOTORI.NOME,ANAG_PROMOTORI.COGNOME,ANAG_PROMOTORI.ID_PROMOTORE) + '--- TO:' +  dbo.Replace_To_Email(TIPO_EMAIL.[E_To],ANAG_PROMOTORI.E_MAIL,'','') + '--- CC:' + dbo.Cc_Email(CONTRATTOSEI.rete,CONTRATTOSEI.cod_agente,CM.numSolleciti,GESTIONE_EMAIL.TIPO) + '---'
		 --end as E_Subject
   --    , case
			--when
			--	len(ltrim(rtrim(GESTIONE_EMAIL.[Cod_Fiscale]))) = 11
			--then
			--	--persone giuridiche
			--	dbo.Replace_Testo_Email(CONTRATTOSEI.CodiceContratto,GESTIONE_EMAIL.[Cod_Fiscale],isnull(ANAG_CLIENTI.Nome,' '),isnull(ANAG_CLIENTI.Cognome,'/$COGNOME NON PRESENTE$/'),ANAG_PROMOTORI.ID_PROMOTORE,ANAG_PROMOTORI.Cognome,ANAG_PROMOTORI.Nome,CONTRATTOSEI.Data_Perf,CONTRATTOSEI.Freq_Diagnosi,CONTRATTOSEI.Freq_Monitoraggio,@RNA,TIPO_EMAIL.[Testo])
			--else
			--	--persone fisiche
			--	dbo.Replace_Testo_Email(CONTRATTOSEI.CodiceContratto,GESTIONE_EMAIL.[Cod_Fiscale],isnull(ANAG_CLIENTI.Cognome,'/$COGNOME NON PRESENTE$/'),isnull(ANAG_CLIENTI.Nome,' '),ANAG_PROMOTORI.ID_PROMOTORE,ANAG_PROMOTORI.Cognome,ANAG_PROMOTORI.Nome,CONTRATTOSEI.Data_Perf,CONTRATTOSEI.Freq_Diagnosi,CONTRATTOSEI.Freq_Monitoraggio,@RNA,TIPO_EMAIL.[Testo])
				dbo.Replace_Subject_Email_test(TIPO_EMAIL.[E_Subject],ANAG_CLIENTI.NOME,ANAG_CLIENTI.COGNOME,ANAG_PROMOTORI.NOME,ANAG_PROMOTORI.COGNOME,ANAG_PROMOTORI.ID_PROMOTORE, CONTRATTOSEI.tip_contratto)
			else
				dbo.Replace_Subject_Email_test(TIPO_EMAIL.[E_Subject],ANAG_CLIENTI.NOME,ANAG_CLIENTI.COGNOME,ANAG_PROMOTORI.NOME,ANAG_PROMOTORI.COGNOME,ANAG_PROMOTORI.ID_PROMOTORE, CONTRATTOSEI.tip_contratto) + '--- TO:' + dbo.Replace_To_Email(TIPO_EMAIL.[E_To],ANAG_PROMOTORI.E_MAIL,'','') + '--- CC:' + dbo.Cc_Email(CONTRATTOSEI.rete,CONTRATTOSEI.cod_agente,CM.numSolleciti,GESTIONE_EMAIL.TIPO) + '---'
		 end as E_Subject
    , case
			when
				len(ltrim(rtrim(GESTIONE_EMAIL.[Cod_Fiscale]))) = 11
			then
				--persone giuridiche
				dbo.Replace_Testo_Email_test(CONTRATTOSEI.CodiceContratto,GESTIONE_EMAIL.[Cod_Fiscale],isnull(ANAG_CLIENTI.Nome,' '),isnull(ANAG_CLIENTI.Cognome,'/$COGNOME NON PRESENTE$/'),ANAG_PROMOTORI.ID_PROMOTORE,ANAG_PROMOTORI.Cognome,ANAG_PROMOTORI.Nome,CONTRATTOSEI.Data_Perf,CONTRATTOSEI.Freq_Diagnosi,CONTRATTOSEI.Freq_Monitoraggio,@RNA, CONTRATTOSEI.tip_contratto,CONTRATTOSEI.DATA_FINEAVANZATO, CONTRATTOSEI.DATA_INZIOAVANZATO,CONTRATTOSEI.RETE,TIPO_EMAIL.[Testo])
			else
				--persone fisiche
				dbo.Replace_Testo_Email_test(CONTRATTOSEI.CodiceContratto,GESTIONE_EMAIL.[Cod_Fiscale],isnull(ANAG_CLIENTI.Cognome,'/$COGNOME NON PRESENTE$/'),isnull(ANAG_CLIENTI.Nome,' '),ANAG_PROMOTORI.ID_PROMOTORE,ANAG_PROMOTORI.Cognome,ANAG_PROMOTORI.Nome,CONTRATTOSEI.Data_Perf,CONTRATTOSEI.Freq_Diagnosi,CONTRATTOSEI.Freq_Monitoraggio,@RNA, CONTRATTOSEI.tip_contratto,CONTRATTOSEI.DATA_FINEAVANZATO, CONTRATTOSEI.DATA_INZIOAVANZATO,CONTRATTOSEI.RETE,TIPO_EMAIL.[Testo])
--------------------------------------------en 2061025
		 end as Testo
--into temp_email_gior
FROM [C6Mart].[GESTIONE_EMAIL] GESTIONE_EMAIL
  INNER JOIN [C6Mart].[TIPO_EMAIL] TIPO_EMAIL
  ON GESTIONE_EMAIL.Tipo = TIPO_EMAIL.Tipo
  INNER JOIN [C6Mart].[VCONTRATTI] CONTRATTOSEI
  ON CONTRATTOSEI.Rete = GESTIONE_EMAIL.[Rete]
  AND CONTRATTOSEI.Cod_Fiscale = GESTIONE_EMAIL.Cod_Fiscale
  AND CONTRATTOSEI.data_fineavanzato > getDate()
  INNER JOIN [C6Mart].[CONTRATTOSEI_METADATI] CM
  ON CONTRATTOSEI.Rete = GESTIONE_EMAIL.[Rete]
  AND CONTRATTOSEI.CHIAVECLIENTEPB = CM.CHIAVECLIENTEPB
  LEFT JOIN [C6Mart].[ANAG_CLIENTI] ANAG_CLIENTI
  ON ANAG_CLIENTI.Rete = GESTIONE_EMAIL.[Rete]
  AND ANAG_CLIENTI.Cod_Fiscale = GESTIONE_EMAIL.Cod_Fiscale
  --V Per non inviare mail a pb terminati
  inner JOIN [C6Mart].ANAG_PROMOTORI ANAG_PROMOTORI
  ON ANAG_PROMOTORI.Rete = GESTIONE_EMAIL.[Rete]
  AND ANAG_PROMOTORI.ID_PROMOTORE = CONTRATTOSEI.Cod_Agente
  WHERE isnull(GESTIONE_EMAIL.Inviata,'N')='N' 
	-- tringali colaianni cortecci AND ANAG_CLIENTI.NOME IS NOT NULL 
    AND ANAG_CLIENTI.COGNOME IS NOT NULL
   -- AND CONTRATTOSEI.Cod_Agente = '015312'--Cod_Agente di prova
--and dbo.Replace_To_Email(TIPO_EMAIL.[E_To],ANAG_PROMOTORI.E_MAIL,'','') is not null
--togliere 
	--AND CONTRATTOSEI.Cod_fiscale <> 'SLRRFL33S09E044D'
--AND CONTRATTOSEI.Cod_fiscale <> 'PDRPLA61M07H264H'
--AND CONTRATTOSEI.Cod_Agente not in ('009202','014908','008172')
--    AND CONTRATTOSEI.Cod_Agente not in ('003064', '015091','015126','006167','015115','015117','015125','006154','005772','001860','011188','014553','015182','011663')
    AND GESTIONE_EMAIL.COD_FISCALE + GESTIONE_EMAIL.RETE NOT IN (select cod_fiscale + RETE from c6mart.test_Quality)
    AND GESTIONE_EMAIL.COD_FISCALE + GESTIONE_EMAIL.RETE NOT IN (select cod_fiscale + RETE from c6mart.test_Quality_Email)
	-----------------------------------------------------
	--- en 20161025 the only email types specified in CR
	AND   
	GESTIONE_EMAIL.TIPO in
	(
	'3_SOLL_NOPRO',
	'2_SOLL_NOPRO',
	'1_SOLL_NOPRO',
	'PERF',
	'REVOCA_NOPRO',
	'S_SOLL_NOPRO'
	)
	--- en 20161025
	-----------------------------------------------------
AND CONTRATTOSEI.Cod_fiscale <> '01484040488' --FiderevEuropa S.p.A. (PB 015693)
-- Esclusione Temporanea per errata valorizzazione PB
-- 08052014 
and  GESTIONE_EMAIL.COD_FISCALE + GESTIONE_EMAIL.RETE NOT IN  ('NTNRNZ38C69C302AS','CRVGBR51S08C638JF','BLLMNL77H69L736QF')
--	AND 1=2
END