-----------------------------------------------------------------------------
CREATE procedure [C6MartPeriodicoImmobiliare].[RP_DM_CONTRATTOSEI]  
AS  
-- Log esecuzione  
 INSERT INTO LOG_ESECUZIONE_PERIODICO_IMMOBILIARE  
  (Nome, Inizio, Nota)  
 VALUES (  
  'RP_DM_CONTRATTOSEI',  
  GETDATE(),  
  'Elaborazione trimestrale Immobiliare'  
 )  
TRUNCATE TABLE C6MartPeriodicoImmobiliare.CONTRATTOSEI  
INSERT INTO C6MartPeriodicoImmobiliare.CONTRATTOSEI  
SELECT       
 [Rete],  
 [Cod_Fiscale],  
 [PIva_Fiduciaria],  
 [DATA_INZIOAVANZATO] as [Data_Sott],  
 [CodiceContratto],  
 [Cod_Agente],  
 [Data_Perf_Base],  
 [Data_Perf],  
 null as [Fascia_CPP],  
 null as [Email],  
 [Indirizzo],  
 [CAP],  
 [Citta],  
 [Provincia],  
 [Nazione],  
 [Presso],  
 null as[Data_Inizio],  
 [Freq_Diagnosi],  
 [FREQ_MONITORAGGIO],  
 null as [Freq_DiagnosiPrec],  
 null as [Freq_MonitorPrec],  
 null as [Data_InizioConsInv],  
 [Data_InizioBase],  
 [Data_FineBase],  
 [DATA_INZIOAVANZATO],  
 [Data_FineAvanzato],  
 null as [ProgressivoInvio],  
 'N',  
 'N',  
 null as [DataUltimoInvio],  
 [ClienteMigrato],  
 [RisorseNA],  
 null as [PartViaDisinv],  
 [NumSolleciti],  
 [Data_UltimoSollecito],  
 [NumRevoche],  
 [Data_UltimaRevoca],  
 null as [Note],  
 null as [Data_Invio_Diagnosi_Trimestrale],  
 null as [Data_Invio_Monitoraggio_Trimestrale],  
 [ProfiloAttivo],  
 null as [Rol],  
 [TIP_CONTRATTO],  
 [TIP_RIATTIVAZIONE]  
FROM   
    [C6MartPeriodicoImmobiliare].[RP_vContrattiPerGenerazioneReport]  
 -- Log esecuzione  
 UPDATE  
  LOG_ESECUZIONE_PERIODICO_IMMOBILIARE  
 SET  
  Fine = GETDATE(),  
  Tipo = 'INSERT',  
  Righe = @@ROWCOUNT  
 WHERE  
  Nome = 'RP_DM_CONTRATTOSEI' AND  
  Inizio = (  
   SELECT  
    MAX(Inizio)  
   FROM  
    LOG_ESECUZIONE_PERIODICO_IMMOBILIARE  
   WHERE  
    Nome = 'RP_DM_CONTRATTOSEI'  
  )  
UPDATE C6MartPeriodicoImmobiliare.contrattosei  
 set    
   indirizzo        = a.indirizzo  
  ,cap         = a.cap   
  ,citta         = a.citta  
  ,prov         = a.Provincia  
  ,nazione        = a.Nazione  
  ,presso         = a.Presso  
  ,Cod_Agente        = a.Cod_Agente  
  ,Freq_Diagnosi     = a.Freq_Diagnosi  
     ,FREQ_MONITOR      = a.FREQ_MONITORAGGIO  
from c6mart.vcontratti a  
inner join C6MartPeriodicoImmobiliare.contrattosei b  
on a.codicecontratto = b.codicecontratto  
UPDATE contr
 set    
   indirizzo        = a.indirizzo  
  ,cap         = a.cap   
  ,citta         = a.citta  
  ,provincia        = a.Prov  
  ,nazione        = a.Nazione  
  ,presso         = a.Presso  
  ,Cod_Agente        = a.Cod_Agente  
  ,Freq_Diagnosi     = a.Freq_Diagnosi  
     ,FREQ_MONITORAGGIO = a.FREQ_MONITOR  
from C6MartPeriodicoImmobiliare.contrattosei a  
inner join [C6StagingPeriodico].[APPO_CONTRATTI] contr on a.codicecontratto = contr.codicecontratto  
left join  [C6StagingPeriodicoImmobiliare].[APPO_CONTRATTI_LIMITER] lim on lim.COD_FISCALE = contr.COD_FISCALE and lim.rete = contr.rete
where lim.cod_fiscale is not null or 0 = (select count(*) from  [C6StagingPeriodicoImmobiliare].[APPO_CONTRATTI_LIMITER] with (nolock))
-- Allineamento Flag Rol su contratto sei  
Update C6MartPeriodicoImmobiliare.ContrattoSei  
Set Rol = Case D.statorol  
    When 'S' then D.statorol  
    Else 'N'  
    End,  
    EmAil = Case d.alertrol  
    When 'S' then D.Email  
    End        
from  C6MartPeriodicoImmobiliare.ContrattoSei C inner join  C6StagingPeriodico.datiRol2 D  
on d.codContratto = c.codiceContratto