-- Schema: C6MartPeriodico
-- Stored Procedure: RP_SRV_CHECK_C6_GIORNALIERO



-- =============================================
-- Author:		<Author,,Name>
-- Create date: <Create Date,,>
-- Description:	<Description,,>
-- =============================================
CREATE procedure [C6MartPeriodico].[RP_SRV_CHECK_C6_GIORNALIERO]
AS
BEGIN
	-- SET NOCOUNT ON added to prevent extra result sets from
	-- interfering with SELECT statements.
	SET NOCOUNT ON;

	--V Esegue la procedura di estrazione dei CC
	EXEC [C6MartPeriodico].[RP_SRV_ESTRAZ_GIORNALIERA_CC]

	-- Report generati
	SELECT
		C.Rete,
		C.Cod_Agente,
		case when C.Cod_Fiscale  like '%@%' then c.piva_fiduciaria + '  ' + substring(cod_fiscale,4,6) else C.Cod_Fiscale end as Cod_fiscale,
		C.Data_Perf
	INTO #ReportGenerati
	FROM
		C6MartPeriodico.GESTIONE_PDF_FTP AS GPF
		INNER JOIN [C6MartPeriodico].[RP_vContrattiPerGenerazioneReport] AS C             
			ON GPF.RETE = C.Rete
			AND GPF.CODICEFISCALE = C.Cod_Fiscale
	WHERE
		dbo.toShortDateString(GPF.DataGenerazione) = dbo.toShortDateString(GETDATE())
		AND Data_FineAvanzato > getDate()
	ORDER BY
		C.Rete,
		C.Cod_Agente,
		C.Cod_Fiscale

	-- Report non generati
	SELECT
		Rete,
		Cod_Agente,
		case when Cod_Fiscale  like '%@%' then piva_fiduciaria + '  ' + substring(cod_fiscale,4,6) else Cod_Fiscale end as Cod_fiscale,
		Data_Perf,
		'Ragione:' + CASE
			WHEN ClienteMigrato = 'N' THEN ' Cliente non migrato'
			ELSE ''
		END
		+ CASE
			WHEN RisorseNA = 'S' THEN ' Risorse non associate'
			ELSE ''
		END
		+ CASE
			WHEN RisorseNA = 'N' and ClienteMigrato = 'S' and profiloAttivo = 0 THEN ' Profilo non attivo'
			ELSE ''
		END
		/*+ CASE
			WHEN PartViaDisinv = 'S' THEN ' Partite viaggianti disinvestimento'
			ELSE ''
		END*/ AS Ragione
	INTO #ReportNonGenerati
	FROM
		C6MartPeriodico.vcontratti as CONTRATTOSEI
        INNER JOIN C6MartPeriodico.ContrattoSEI_metadati AS M
            on  CONTRATTOSEI.chiaveclientepb = M.chiaveclientepb
	WHERE
		M.InvioBenvenuto = 'N'
		AND DATEDIFF(d, Data_Perf, GETDATE()) >= CAST(dbo.getParametro('NUMGIORNIDALPERF_REP') AS INT)
		AND (ClienteMigrato = 'N'
		OR RisorseNA = 'S'
		--V Condizione per non generazione a causa di profilo non attivo
		OR ProfiloAttivo = 0
		--
		/*OR PartViaDisinv = 'S'*/)
		AND Data_FineAvanzato > getDate()
	ORDER BY
		Rete,
		Cod_Agente,
		Cod_Fiscale


	

	-- Email
	SELECT
		CASE Tipo
			WHEN 'PERF' THEN 'perfezionamento'
			WHEN '1_SOLL_NOASS' THEN '1° sollecito risorse non associate'
			WHEN '2_SOLL_NOASS' THEN '2° sollecito risorse non associate'
			WHEN '3_SOLL_NOASS' THEN '3° sollecito risorse non associate'
			WHEN 'S_SOLL_NOASS' THEN 'pił di 3 solleciti risorse non associate'
			WHEN 'REVOCA_NOASS' THEN 'revoca per risorse non associate'
			WHEN '1_SOLL_NOMIG' THEN '1° sollecito cliente non migrato'
			WHEN '2_SOLL_NOMIG' THEN '2° sollecito cliente non migrato'
			WHEN '3_SOLL_NOMIG' THEN '3° sollecito cliente non migrato'
			WHEN 'S_SOLL_NOMIG' THEN 'pił di 3 solleciti cliente non migrato'
			WHEN 'REVOCA_NOMIG' THEN 'revoca per cliente non migrato'
			--V aggiunta tipo mail profilo non attivo
			WHEN '1_SOLL_NOPRO' THEN '1° sollecito profilo non attivo'
			WHEN '2_SOLL_NOPRO' THEN '2° sollecito profilo non attivo'
			WHEN '3_SOLL_NOPRO' THEN '3° sollecito profilo non attivo'
			WHEN 'S_SOLL_NOPRO' THEN 'pił di 3 solleciti profilo non attivo'
			WHEN 'REVOCA_NOPRO' THEN 'revoca per profilo non attivo'

		END AS Tipo,
		COUNT(Tipo) AS Totale
	INTO #EmailInviate
	FROM
		C6MartPeriodico.GESTIONE_EMAIL
	WHERE
		Inviata = 'S'
		AND dbo.toShortDateString(Data_Invio) = dbo.toShortDateString(GETDATE())
	GROUP BY
		Tipo
	ORDER BY TIPO
	-- Indirizzi pił lunghi di 36 caratteri
	SELECT
		C.Rete,
		Cod_Agente,
		Cod_Fiscale,
		Indirizzo,
		LEN(Indirizzo) AS LunghezzaIndirizzo
	INTO #IndirizziLunghi
	FROM
		C6MartPeriodico.vcontratti AS C
		INNER JOIN C6MartPeriodico.GESTIONE_PDF_FTP AS GPF
			ON C.Rete = GPF.RETE
			AND
