-- Schema: C6Mart -- Stored Procedure: DM_ANAG_CLIENTI -- ============================================= -- Author: Paolo Giovanetti -- Create date: -- Description: -- ============================================= CREATE procedure [C6Mart].[DM_ANAG_CLIENTI] 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 ( 'DM_ANAG_CLIENTI', GETDATE(), 'Elaborazione giornaliera' ) DELETE C6MART.ANAG_CLIENTI FROM C6MART.ANAG_CLIENTI INNER JOIN C6STAGING.ALL_CF_PB ON ANAG_CLIENTI.RETE = ALL_CF_PB.RETE_PB AND ANAG_CLIENTI.COD_FISCALE = ALL_CF_PB.CODICEFISCALE -- Log esecuzione UPDATE LOG_ESECUZIONE SET Fine = GETDATE(), Tipo = 'DELETE', Righe = @@ROWCOUNT WHERE Nome = 'DM_ANAG_CLIENTI' AND Inizio = ( SELECT MAX(Inizio) FROM LOG_ESECUZIONE WHERE Nome = 'DM_ANAG_CLIENTI' ) INSERT INTO LOG_ESECUZIONE (Nome, Inizio, Nota) VALUES ( 'DM_ANAG_CLIENTI', GETDATE(), 'Elaborazione giornaliera' ) INSERT INTO [C6Mart].[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 CONTRATTOSEI.RETE AS RETE, CONTRATTOSEI.COD_FISCALE AS COD_FISCALE, ISNULL(SPB_CLIENTI.NOME,ALL_CF_PB.NOME) AS NOME, ISNULL(SPB_CLIENTI.COGNOME,ALL_CF_PB.COGNOME) AS COGNOME, ISNULL(ALL_CF_PB.DATA_NASCITA,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, S25.NUMEROCOMPONENTI AS NUM_COMPONENTI, S25.NUMEROFIGLI AS NUM_FIGLI, S25.ETA 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, CONTRATTOSEI.EMAIL AS E_MAIL, SPB_CLIENTI.DATAATTIVAZIONECLIENTE AS DATA_INIZIO, NULL AS DATA_FINE, NULL AS STATO, NULL AS RAG_SOC, CASE WHEN SUBSTRING(ALL_CF_PB.CODICE_FISCALE,10,2) < '40' THEN 'M' ELSE 'F' END AS SESSO, ALL_CF_PB.CODICE_PB AS ID_PROMOTORE, @ID_ELAB AS ID_ELAB, @TIPO_ELAB AS TIPO_ELAB FROM C6MART.CONTRATTOSEI INNER JOIN C6STAGING.ALL_CF_PB ON CONTRATTOSEI.RETE = ALL_CF_PB.RETE_PB AND CONTRATTOSEI.COD_FISCALE = ALL_CF_PB.CODICEFISCALE LEFT OUTER JOIN C6STAGING.S25_CLI_CLIENTE S25 ON S25.CODICEFISCALE = CONTRATTOSEI.COD_FISCALE AND S25.RETE = CONTRATTOSEI.RETE LEFT OUTER JOIN C6STAGI