-- =============================================  
-- Author:  Paolo Giovanetti  / TRINGALI PER FIDUCIARIE  
-- Create date: <Create Date,,>  
-- Description: <Description,,>  
-- =============================================  
CREATE procedure [C6MartPeriodico].[RP_DM_ANAG_CLIENTI]  
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',  
  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  
  AL.RETE AS RETE,  
        [dbo].[FFCODICEFISCALE] (AL.CODFIS,AL.CODMAN,AL.PIVA)AS COD_FISCALE,  
  RTRIM(ISNULL(CL.NOME,AL.NOMECLIENTE)) AS NOME,  
  RTRIM(ISNULL(CL.COGNOME,AL.COGNOMECLIENTE)) AS COGNOME,  
  ISNULL(  
   AL.DTNASCITA,  
   CASE  
    WHEN ISDATE(CL.DTNASCI) = 0 THEN NULL  
    ELSE CAST(CAST(CL.DTNASCI AS VARCHAR(8)) AS DATETIME)  
   END) AS DATA_NASCITA,   
          NULL AS STATO_CIVILE,  
  NULL AS NUM_COMPONENTI,  
  NULL AS NUM_FIGLI,  
  /*DATEDIFF(YY,  
   ISNULL(  
    AL.DATA_NASCITA,  
    CASE  
     WHEN ISDATE(CL.DTNASCI) = 0 THEN NULL  
     ELSE CAST(CAST(CL.DTNASCI AS VARCHAR(8)) AS DATETIME)  
    END),   
   GETDATE()) AS ETA,*/  
  dbo.Eta(ISNULL(  
   AL.DTNASCITA,  
   CASE  
    WHEN ISDATE(CL.DTNASCI) = 0 THEN NULL  
    ELSE CAST(CAST(CL.DTNASCI AS VARCHAR(8)) AS DATETIME)  
   END)  
  ) AS ETA,  
  [dbo].[FFPIVA] (AL.CODMAN, AL.PIVA) AS PARTITA_IVA,  
  NULL AS CITTADINANZA,  
  NULL AS PERSONA_FIS_GIUR,  
  ISNULL(CL.INDIRIZZO, '') AS INDIRIZZO,  
  ISNULL(CL.CITTA, '') AS LOCALITA,  
  ISNULL(CL.PROVINCIA, '') AS PROVINCIA,  
  ISNULL(CL.CAP, '') AS CAP,  
  ISNULL(CL.NAZIONE, '') AS NAZIONE,  
  '' AS PRESSO,  
  NULL AS TEL_RECAPITO,  
  NULL AS TEL_CELL,  
  NULL AS E_MAIL,  
  NULL AS DATA_INIZIO,  
  NULL AS DATA_FINE,  
  NULL AS STATO,  
  NULL AS RAG_SOC,  
  --NULL AS SESSO,  
  CASE  
    WHEN SUBSTRING(AL.CODFIS,10,2) < '40' THEN 'M'  
   ELSE 'F'  
  END AS SESSO,  
  AL.AGENTE AS ID_PROMOTORE,  
  @ID_ELAB AS ID_ELAB,  
  @TIPO_ELAB AS TIPO_ELAB  
 FROM C6STAGINGPERIODICO.RP_InfoCliente AL  
 LEFT JOIN C6STAGINGPERIODICO.WSEIAN2 CL  
  ON CL.RETE = AL.RETE  
  AND ( ltrim(rtrim(CL.CODFIS)) = CASE WHEN ISNULL(AL.CODFIS, '') = '' THEN AL.PIVA ELSE AL.CODFIS END )  
        AND (ISNULL(CL.CODMAN, '') = ISNULL(AL.CODMAN, ''))  
 WHERE CL.DTTRIM = (  
  SELECT MAX(DTTRIM)  
  FROM C6StagingPeriodico.WSEIAN2)  
--and al.codfis not in 
--(  
--'FF@8464',  
--'LBRMRA73H15H501A',  
--'FF@5134'  
--)
-------------------------------
/* 20170409 rete + cf duplicato  
--S	SFRCLD60E12Z110N
--F	TTLVNT44H04L746B
*/
 and AL.AGENTE is not null 
 and AL.chiaveclientePB != 2898828
 -- Log esecuzione  
 UPDATE  
  LOG_ESECUZIONE_PERIODICO  
 SET  
  Fine = GETDATE(),  
  Tipo = 'INSERT',  
  Righe = @@ROWCOUNT  
 WHERE  
  Nome = 'RP_DM_ANAG_CLIENTI' AND  
  Inizio = (  
   SELECT  
    MAX(Inizio)  
   FROM  
    LOG_ESECUZIONE_PERIODICO  
   WHERE  
    Nome = 'RP_DM_ANAG_CLIENTI'  
  )  
END