PDC_REPORT_CreazioneDB/sql/storedProduzione/C6MartPeriodico_RP_DM_CONTRATTOSEI.sql
2025-06-06 19:02:52 +02:00

119 lines
3.4 KiB
SQL

-----------------------------------------------------------------------------
CREATE procedure [C6MartPeriodico].[RP_DM_CONTRATTOSEI]
AS
-- Log esecuzione
INSERT INTO LOG_ESECUZIONE_PERIODICO
(Nome, Inizio, Nota)
VALUES (
'RP_DM_CONTRATTOSEI',
GETDATE(),
'Elaborazione trimestrale'
)
TRUNCATE TABLE C6MartPERIODICO.CONTRATTOSEI
INSERT INTO C6MartPERIODICO.CONTRATTOSEI
SELECT
r.[Rete],
r.[Cod_Fiscale],
r.[PIva_Fiduciaria],
r.[DATA_INZIOAVANZATO] as [Data_Sott],
r.[CodiceContratto],
r.[Cod_Agente],
r.[Data_Perf_Base],
r.[Data_Perf],
null as [Fascia_CPP],
null as [Email],
r.[Indirizzo],
r.[CAP],
r.[Citta],
r.[Provincia],
r.[Nazione],
r.[Presso],
null as[Data_Inizio],
r.[Freq_Diagnosi],
r.[FREQ_MONITORAGGIO],
null as [Freq_DiagnosiPrec],
null as [Freq_MonitorPrec],
null as [Data_InizioConsInv],
r.[Data_InizioBase],
r.[Data_FineBase],
r.[DATA_INZIOAVANZATO],
r.[Data_FineAvanzato],
null as [ProgressivoInvio],
'N',
'N',
null as [DataUltimoInvio],
r.[ClienteMigrato],
r.[RisorseNA],
null as [PartViaDisinv],
r.[NumSolleciti],
r.[Data_UltimoSollecito],
r.[NumRevoche],
r.[Data_UltimaRevoca],
null as [Note],
null as [Data_Invio_Diagnosi_Trimestrale],
null as [Data_Invio_Monitoraggio_Trimestrale],
r.[ProfiloAttivo],
null as [Rol],
r.[TIP_CONTRATTO],
r.[TIP_RIATTIVAZIONE]
FROM
[C6MartPeriodico].[RP_vContrattiPerGenerazioneReport] r
left join C6MartPeriodico.ANAG_CLIENTI a
on a.RETE=r.rete and a.COD_FISCALE=r.COD_FISCALE
-- Log esecuzione
UPDATE
LOG_ESECUZIONE_PERIODICO
SET
Fine = GETDATE(),
Tipo = 'INSERT',
Righe = @@ROWCOUNT
WHERE
Nome = 'RP_DM_CONTRATTOSEI' AND
Inizio = (
SELECT
MAX(Inizio)
FROM
LOG_ESECUZIONE_PERIODICO
WHERE
Nome = 'RP_DM_CONTRATTOSEI'
)
UPDATE c6martperiodico.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 c6martperiodico.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 c6martperiodico.contrattosei a
inner join [C6StagingPeriodico].[APPO_CONTRATTI] contr on a.codicecontratto = contr.codicecontratto
left join [C6StagingPeriodico].[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 [C6StagingPeriodico].[APPO_CONTRATTI_LIMITER] with (nolock))
-- Allineamento Flag Rol su contratto sei
Update C6MartPeriodico.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 C6MartPeriodico.ContrattoSei C inner join C6StagingPeriodico.datiRol2 D
on d.codContratto = c.codiceContratto