-- Schema: C6MartPeriodico
-- Stored Procedure: RP_DM_ANAG_CLIENTI_PER_GENERAZIONE_MAIL_20190612






-- =============================================
-- Author:		Paolo Giovanetti  / TRINGALI PER FIDUCIARIE
-- Create date: <Create Date,,>
-- Description:	<Description,,>
-- =============================================
CREATE procedure [C6MartPeriodico].[RP_DM_ANAG_CLIENTI_PER_GENERAZIONE_MAIL_20190612]
AS
BEGIN

	SET NOCOUNT ON;

	DECLARE @ID_ELAB INT
	DECLARE @TIPO_ELAB VARCHAR(1)

	SET @ID_ELAB = C6MartPeriodico.GETIDELAB()
	SET @TIPO_ELAB = C6MartPeriodico.GETTIPOELAB()

	-- Log esecuzione
	INSERT INTO LOG_ESECUZIONE_PERIODICO
		(Nome, Inizio, Nota)
	VALUES (
		'RP_DM_ANAG_CLIENTI_PER_GENERAZIONE_MAIL',
		GETDATE(),
		'Elaborazione trimestrale'
	)

	TRUNCATE TABLE C6MartPeriodico.ANAG_CLIENTI 

	INSERT INTO C6MartPeriodico.[ANAG_CLIENTI]
	(
		[RETE]
		,[COD_FISCALE]
		,[NOME]
		,[COGNOME]
		,[DATA_NASCITA]
		,[STATO_CIVILE]
		,[NUM_COMPONENTI]
		,[NUM_FIGLI]
		,[ETA]
		,[PARTITA_IVA]
		,[CITTADINANZA]
		,[PERSONA_FIS_GIUR]
		,[INDIRIZZO]
		,[LOCALITA]
		,[PROVINCIA]
		,[CAP]
		,[NAZIONE]
		,[PRESSO]
		,[TEL_RECAPITO]
		,[TEL_CELL]
		,[E_MAIL]
		,[DATA_INIZIO]
		,[DATA_FINE]
		,[STATO]
		,[RAG_SOC]
		,[SESSO]
		,[ID_PROMOTORE]
		,[ID_ELAB]
		,[TIPO_ELAB])
	SELECT
		distinct
--		tabNucleo.chiaveCliente,
--		tabNucleo.clienteConParentela AS chiaveClientePB,
		VCONTRATTI.RETE AS RETE,
		VCONTRATTI.COD_FISCALE AS COD_FISCALE,
		ISNULL(SPB_CLIENTI.NOME,CLI.nome) AS NOME,
		ISNULL(SPB_CLIENTI.COGNOME,CLI.cognome) AS COGNOME,
		ISNULL(tabNucleo.dtNascita,SPB_CLIENTI.DATADINASCITA) AS DATA_NASCITA,
		--CASE
 	--		WHEN SUBSTRING(ALL_CF_PB.CODICE_FISCALE,10,2) < '40' 
		--		AND ALL_CF_PB.MARITALSTATUS = 'Married' THEN 'Coniugato'
 	--		WHEN SUBSTRING(ALL_CF_PB.CODICE_FISCALE,10,2) < '40' 
		--		AND ALL_CF_PB.MARITALSTATUS = 'Divorced' THEN 'Divorziato'
 	--		WHEN SUBSTRING(ALL_CF_PB.CODICE_FISCALE,10,2) < '40' 
		--		AND ALL_CF_PB.MARITALSTATUS = 'Single' THEN 'Libero'
 	--		WHEN SUBSTRING(ALL_CF_PB.CODICE_FISCALE,10,2) > '40' 
		--		AND ALL_CF_PB.MARITALSTATUS = 'Married' THEN 'Coniugata'
 	--		WHEN SUBSTRING(ALL_CF_PB.CODICE_FISCALE,10,2) > '40' 
		--		AND ALL_CF_PB.MARITALSTATUS = 'Divorced' THEN 'Divorziata'
 	--		WHEN SUBSTRING(ALL_CF_PB.CODICE_FISCALE,10,2) > '40' 
		--		AND ALL_CF_PB.MARITALSTATUS = 'Single' THEN 'Libera'
 	--		ELSE NULL
		--END AS STATO_CIVILE,
		NULL  AS STATO_CIVILE,
		tabNucleo.componentiNucleo AS NUM_COMPONENTI,
		tabFigli.numFigli AS NUM_FIGLI,
		FLOOR(DateDiff(Day, ISNULL(tabNucleo.dtNascita,SPB_CLIENTI.DATADINASCITA), GetDate()) / 365.25) AS ETA,
		NULL AS PARTITA_IVA,
		SPB_CLIENTI.CITTADINANZA AS CITTADINANZA,
		NULL AS PERSONA_FIS_GIUR,
		ISNULL(SPB_INDIRIZZI.INDIRIZZO, '') AS INDIRIZZO,
		ISNULL(SPB_INDIRIZZI.CITTA, '') AS LOCALITA,
		ISNULL(SPB_INDIRIZZI.PROVINCIA, '') AS PROVINCIA,
		ISNULL(SPB_INDIRIZZI.CAP, '') AS CAP,
		ISNULL(SPB_INDIRIZZI.NAZIONE, '') AS NAZIONE,
		'' AS PRESSO,
		NULL AS TEL_RECAPITO,
		NULL AS TEL_CELL,
		VCONTRATTI.EMAIL AS E_MAIL,
		SPB_CLIENTI.DATAATTIVAZIONECLIENTE AS DATA_INIZIO,
		NULL AS DATA_FINE,
		NULL AS STATO,
		NULL AS RAG_SOC,
		CASE
 			WHEN SUBSTRING(VCONTRATTI.COD_FISCALE,10,2) < '40' THEN 'M'
			ELSE 'F'
		END AS SESSO,
		VCONTRATTI.COD_AGENTE AS ID_PROMOTORE,
		@ID_ELAB AS ID_ELAB,
		@TIPO_ELAB AS TIPO_ELAB
	--INTO [C6MartPeriodico].[RP_ANAG_CLIENTI]
	FROM 
		C6Martperiodico.rp_VCONTRATTIpergenerazionereport VCONTRATTI
	LEFT JOIN 
		(select 
		COUNT(*) as componentiNucleo,
		chiaveClientePB1 as clienteConParentela,
		cl.chiaveCliente,
		cl.nome,
		cl.cognome,
		cl.dtNascita
		from 
		C6staging.RP_Parentela p
		inner join C6staging.RP_GradoParentela g
		on p.idparentela = g.idparentela
		inner join C6Staging.RP_ClientePB c
		on c.chiaveClientePB = p.chiaveClientePB1
		inner join C6Staging.RP_Cliente cl
		on c.chiaveCliente = cl.chiaveCliente
		group by 
		chiaveClientePB1, cl.chiaveCliente, cl.nome, cl.cognome, cl.dtNa
