PDC_REPORT_CreazioneDB/sql/storedCollaudo/C6MartPeriodicoImmobiliare_RP_DM_CONTRATTOSEI.sql
2025-06-09 17:09:11 +02:00

117 lines
3.4 KiB
SQL

-----------------------------------------------------------------------------
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