-- =============================================  
-- Author:  <Author,,Name>  
-- Create date: <Create Date,,>  
-- Description: <Description,,>  
-- =============================================  
CREATE procedure [C6MartPeriodico].[DM_ANAG_PROMOTORI]  
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  
  (Nome, Inizio, Nota)  
 VALUES (  
  'DM_ANAG_PROMOTORI',  
  GETDATE(),  
  'Elaborazione trimestrale'  
 )  
 TRUNCATE TABLE C6MartPeriodico.ANAG_PROMOTORI  
 INSERT INTO C6MartPeriodico.[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  
  ADS4WS_PROMOTORI.RETE AS RETE,  
  ADS4WS_PROMOTORI.CODICE AS ID_PROMOTORE,  
  'PB' AS LIVELLO, -- TODO: DA RIMUOVERE UNA VOLTA IMPORTATI I DATI DAL SIMPB  
  NULL AS COD_FISCALE,  
  NULL AS PARTITA_IVA,  
  rtrim(ltrim(ADS4WS_PROMOTORI.COGNOME)) AS COGNOME,  
  rtrim(ltrim(ADS4WS_PROMOTORI.NOME)) AS NOME,  
  NULL AS RAG_SOC,  
  CASE WHEN ADS4WS_PROMOTORI.DataInizioCollaborazione=0 THEN  NULL ELSE  
  CAST(CAST(ADS4WS_PROMOTORI.DataInizioCollaborazione AS VARCHAR(8)) AS DATETIME) END AS DATA_INIZIO,  
  CASE WHEN ADS4WS_PROMOTORI.DataFineCollaborazione=0 THEN  NULL ELSE  
  CAST(CAST(ADS4WS_PROMOTORI.DataFineCollaborazione AS VARCHAR(8)) AS DATETIME) END AS DATA_FINE,    
  rtrim(ltrim(ADS4WS_PROMOTORI.INDIRIZZO)) AS INDIRIZZO,  
  rtrim(ltrim(ADS4WS_PROMOTORI.CITTA)) AS LOCALITA,  
  rtrim(ltrim(ADS4WS_PROMOTORI.PROVINCIA)) AS PROVINCIA,  
  rtrim(ltrim(ADS4WS_PROMOTORI.CAP)) AS CAP,  
  NULL AS NAZIONE,  
  rtrim(ltrim(ADS4WS_PROMOTORI.prefissotelefono + ADS4WS_PROMOTORI.TelefonoAgenzia1)) 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 SPB_NAC.CODICEAGENTE IS NULL THEN 'TERMINATO'   
--   ELSE   
    CASE   
     WHEN PF.RETE IS NULL THEN 'ATTIVO'  
     ELSE 'FITTIZIO'  
    END  
--  END  
   AS STATO  
,  
  @ID_ELAB AS ID_ELAB,  
  @TIPO_ELAB AS TIPO_ELAB  
 FROM C6STAGINGPERIODICO.ADS4WS_PROMOTORI ADS4WS_PROMOTORI  
 LEFT JOIN C6MARTPERIODICO.EMAIL_PB EMAIL_PB  
  ON ADS4WS_PROMOTORI.RETE = EMAIL_PB.RETE  
  AND ADS4WS_PROMOTORI.CODICE = EMAIL_PB.CODICE  
 LEFT JOIN C6MART.CODICI_PROMOTORI_FITTIZI PF  
  ON (ADS4WS_PROMOTORI.CODICE  BETWEEN PF.CODICEDA AND PF.CODICEA)  
  AND ADS4WS_PROMOTORI.RETE = PF.RETE  
 WHERE ADS4WS_PROMOTORI.STATO = 'A'  
 -- Log esecuzione  
 UPDATE  
  LOG_ESECUZIONE  
 SET  
  Fine = GETDATE(),  
  Tipo = 'INSERT',  
  Righe = @@ROWCOUNT  
 WHERE  
  Nome = 'DM_ANAG_PROMOTORI' AND  
  Inizio = (  
   SELECT  
    MAX(Inizio)  
   FROM  
    LOG_ESECUZIONE  
   WHERE  
    Nome = 'DM_ANAG_PROMOTORI'  
  )  
END