-- =============================================
-- Author:		<Author,,Name>
-- Create date: <Create Date,,>
-- Description:	<Description,,>
-- =============================================
CREATE procedure [C6Mart].[RP_DM_ANAG_PROMOTORI]
AS
BEGIN
	SET NOCOUNT ON;
	DECLARE @ID_ELAB INT
	DECLARE @TIPO_ELAB VARCHAR(1)
	SET @ID_ELAB = C6MART.GETIDELAB()
	SET @TIPO_ELAB = C6MART.GETTIPOELAB()
	-- Log esecuzione
	INSERT INTO LOG_ESECUZIONE
		(Nome, Inizio, Nota)
	VALUES (
		'RP_DM_ANAG_PROMOTORI',
		GETDATE(),
		'Elaborazione giornaliera'
	)
	TRUNCATE TABLE C6MART.ANAG_PROMOTORI
	INSERT INTO [C6Mart].[ANAG_PROMOTORI]
		   ([RETE]
		   ,[ID_PROMOTORE]
		   ,[LIVELLO]
		   ,[COD_FISCALE]
		   ,[PARTITA_IVA]
		   ,[COGNOME]
		   ,[NOME]
		   ,[RAG_SOC]
		   ,[DATA_INIZIO]
		   ,[DATA_FINE]
		   ,[INDIRIZZO]
		   ,[LOCALITA]
		   ,[PROVINCIA]
		   ,[CAP]
		   ,[NAZIONE]
		   ,[TEL_RECAPITO]
		   ,[TEL_CELL]
		   ,[E_MAIL]
		   ,[COD_ABI]
		   ,[COD_CAB]
		   ,[COD_CIN]
		   ,[COD_CC]
		   ,[STATO]
		   ,[ID_ELAB]
		   ,[TIPO_ELAB])
	SELECT DISTINCT
		PB.RETE AS RETE,
		PB.codage AS ID_PROMOTORE,
		SPB_NAC.LIVELLONELLAGERARCHIA AS LIVELLO,
		NULL AS COD_FISCALE,
		NULL AS PARTITA_IVA,
		rtrim(ltrim(PB.COGNOME)) AS COGNOME,
		rtrim(ltrim(PB.NOME)) AS NOME,
		NULL AS RAG_SOC,
		NULL AS DATA_INIZIO,
		NULL AS DATA_FINE,
		rtrim(ltrim(PB.INDIRIZZO)) AS INDIRIZZO,
		rtrim(ltrim(PB.CITTA)) AS LOCALITA,
		rtrim(ltrim(PB.PROVINCIA)) AS PROVINCIA,
		rtrim(ltrim(PB.CAP)) AS CAP,
		NULL AS NAZIONE,
		rtrim(ltrim(PB.PREFISSO + PB.TELEFONO1)) AS TEL_RECAPITO,
		NULL AS TEL_CELL,
		rtrim(ltrim(EMAIL_PB.EMAIL)) AS E_MAIL,
		NULL AS COD_ABI,
		NULL AS COD_CAB,
		NULL AS COD_CIN,
		NULL AS COD_CC,
		CASE WHEN PF.RETE IS NULL THEN 'ATTIVO' ELSE 'FITTIZIO' END
		AS STATO,
		@ID_ELAB AS ID_ELAB,
		@TIPO_ELAB AS TIPO_ELAB
	--INTO C6MART.ANAG_PROMOTORI
	FROM C6Staging.RP_anagrafica_promotori PB
	--LEFT JOIN C6MART.EMAIL_PB EMAIL_PB
	--	ON PB.RETE = EMAIL_PB.RETE
	--	AND PB.codage = EMAIL_PB.CODICE
	 OUTER APPLY	(SELECT TOP 1 * FROM C6MART.EMAIL_PB EMAIL_PB1      --MODIFICA INSERITA IN SEGUITO A UN ERRORE PER DUPLICAZINOE DI CHIAVE NELLA TABELLA DI DESTINAZIONE
					WHERE PB.RETE = EMAIL_PB1.RETE					  	--LA DUPLICAZIONE SCATURIVA DALLA JOIN CON LA EMAIL_PB SU CUI, PER UNO STESSO AGENTE ERANO PRESENTI 
					AND PB.codage = EMAIL_PB1.CODICE					--UNA MAIL VUOTA E UNA CORRETTAMENTE VALORIZZATA
					ORDER BY EMAIL DESC ) EMAIL_PB
	LEFT JOIN C6STAGING.SPB_NAC SPB_NAC
		ON PB.RETE = SPB_NAC.CODICERETE
		AND PB.codage = SPB_NAC.CODICEAGENTE
	LEFT JOIN C6MART.CODICI_PROMOTORI_FITTIZI PF
		ON (PB.codage  BETWEEN PF.CODICEDA AND PF.CODICEA)
		AND PB.RETE = PF.RETE
WHERE
    PB.stato = 'A'
	--Aggiunta Valerio non inserisco in anagrafica pb terminati in quanto non hanno il livello 
	and SPB_NAC.CODICEAGENTE is not null
	-- Log esecuzione
	UPDATE
		LOG_ESECUZIONE
	SET
		Fine = GETDATE(),
		Tipo = 'INSERT',
		Righe = @@ROWCOUNT
	WHERE
		Nome = 'RP_DM_ANAG_PROMOTORI' AND
		Inizio = (
			SELECT
				MAX(Inizio)
			FROM
				LOG_ESECUZIONE
			WHERE
				Nome = 'RP_DM_ANAG_PROMOTORI'
		)
END