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

174 lines
5.6 KiB
SQL

--create view as
CREATE PROCEDURE [C6MartPeriodico].[RP_DM_POPOLACONTRATTI] AS
BEGIN
INSERT INTO LOG_ESECUZIONE
(Nome, Inizio, Nota)
VALUES (
'RP_DM_POPOLACONTRATTI',
GETDATE(),
'Elaborazione giornaliera'
)
SELECT a.chiaveclientepb as ChiaveClientePb
INTO #CAMBIOCONTRATTO
FROM
[CONSEVO_PERIODICO].[consulenzaBase].dbo.Contratto a
JOIN [CONSEVO_PERIODICO].[consulenzaBase].dbo.ClientePB b
ON b.chiaveClientePB = a.chiaveClientePB
and a.status in ('SEI','AVANZATOBASE','REVOCASEI')
JOIN [CONSEVO_PERIODICO].[consulenzaBase].dbo.Cliente c
ON b.chiaveCliente = c.chiaveCliente
JOIN [CONSEVO_PERIODICO].[consulenzaBase].dbo.PromotoreBancario d
ON b.chiavePB = d.chiavePB
JOIN [CONSEVO_PERIODICO].[consulenzaBaseFL].dbo.cbs_dbcontrattosei e
ON a.codiceContratto = e.cod_conf
JOIN [CONSEVO_PERIODICO].[consulenzaBaseFL].dbo.cbs_dbcontrattobase f
ON a.codiceContratto = f.cod_conf
JOIN [C6MartPeriodico].[vcontratti] vc
ON b.chiaveClientePB = vc.chiaveClientePB
WHERE a.codicecontratto<>vc.codicecontratto
INSERT INTO [C6MartPeriodico].[CONTRATTOSEI_METADATI_ST]
SELECT * FROM [C6MartPeriodico].[CONTRATTOSEI_METADATI]
WHERE ChiaveClientePb in(SELECT ChiaveClientePb FROM #CAMBIOCONTRATTO)
INSERT INTO [C6MartPeriodico].[VCONTRATTI_ST]
SELECT * FROM [C6MartPeriodico].[VCONTRATTI]
WHERE ChiaveClientePb in(SELECT ChiaveClientePb FROM #CAMBIOCONTRATTO)
DELETE [C6MartPeriodico].[CONTRATTOSEI_METADATI]
WHERE ChiaveClientePb in(SELECT ChiaveClientePb FROM #CAMBIOCONTRATTO)
--DROP TABLE #CAMBIOCONTRATTO
TRUNCATE TABLE C6MartPeriodico.VCONTRATTI
INSERT INTO C6MartPeriodico.VCONTRATTI
SELECT DISTINCT
b.chiaveClientePB,
--FFCODICEFISCALE(codfis,codman,c.piva) as Cod_fiscale
--c.codMan AS COD_MANDATO,
--FFPIVA(codman,c.piva) as PIVA_FIDUCIARIA
case
when(isnull(ltrim(rtrim(codman)),'') <> '')
then 'FF@'+codman
when (isnull(codfis,'') <> '')
then codfis
else
c.piva
end as Cod_fiscale,
c.codMan AS COD_MANDATO,
case
when(isnull(ltrim(rtrim(codman)),'') <> '')
then c.piva
else
''
END AS PIVA_FIDUCIARIA,
f.pb AS COD_AGENTE,
d.rete,
a.codiceContratto,
a.flagRol,
a.address AS INDIRIZZO,
a.cap,
a.city AS CITTA,
a.province AS PROVINCIA,
a.nation AS NAZIONE,
a.presso,
a.email,
a.freqRepDia AS FREQ_DIAGNOSI,
a.freqRepMon AS FREQ_MONITORAGGIO,
a.genReport AS GENERAZIONEREPORT,
a.dtFirmaBase AS DATA_INIZIOBASE,
a.dtEndBase AS DATA_FINEBASE,
a.dtProcBase as DATA_PERF_BASE,
a.dtProcAv as DATA_PERF,
a.dtFirmaSei AS DATA_INZIOAVANZATO,
a.dtEndSei AS DATA_FINEAVANZATO,
CASE e.tipcontratto
WHEN 'A' THEN 1
WHEN 'P' THEN 2
ELSE 0
END AS TIP_CONTRATTO,
CASE
WHEN e.riattivazione is null THEN 0
ELSE 1
END AS RIATTIVAZIONE
FROM
[CONSEVO_PERIODICO].[consulenzaBase].dbo.Contratto a
JOIN
[CONSEVO_PERIODICO].[consulenzaBase].dbo.ClientePB b
ON b.chiaveClientePB = a.chiaveClientePB
and a.status in ('SEI','AVANZATOBASE','REVOCASEI')
JOIN [CONSEVO_PERIODICO].[consulenzaBase].dbo.Cliente c
ON b.chiaveCliente = c.chiaveCliente
JOIN [CONSEVO_PERIODICO].[consulenzaBase].dbo.PromotoreBancario d
ON b.chiavePB = d.chiavePB
JOIN [CONSEVO_PERIODICO].[consulenzaBaseFL].dbo.cbs_dbcontrattosei e
ON a.codiceContratto = e.cod_conf
JOIN [CONSEVO_PERIODICO].[consulenzaBaseFL].dbo.cbs_dbcontrattobase f
ON a.codiceContratto = f.cod_conf
INSERT INTO [C6MartPeriodico].[CONTRATTOSEI_METADATI]
([CHIAVECLIENTEPB]
,[ClienteMIGRATO]
,[RISORSENA]
,[PROFILOATTIVO]
,[NumSolleciti]
,[NumRevoche]
,[Data_ultimoSollecito]
,[Data_ultimaRevoca]
,[InvioBenvenuto]
,[Tip_riattivazione]
,[Tip_contratto])
SELECT
A.CHIAVECLIENTEPB,
NULL,
NULL,
NULL,
0,
0,
NULL,
NULL,
'N',
A.Riattivazione,
A.Tip_Contratto
FROM
C6MartPeriodico.VCONTRATTI A
LEFT JOIN
[C6MartPeriodico].[CONTRATTOSEI_METADATI] B
ON
A.chiaveClientePB = B.CHIAVECLIENTEPB
WHERE
B.CHIAVECLIENTEPB IS NULL
UPDATE [C6MartPeriodico].[CONTRATTOSEI_METADATI] SET tip_riattivazione=0
--SELECT *
FROM C6MartPeriodico.VCONTRATTI VC
JOIN [C6MartPeriodico].[CONTRATTOSEI_METADATI] MC
ON VC.chiaveClientePB = MC.CHIAVECLIENTEPB
AND VC.riattivazione = 1 AND VC.DATA_FINEAVANZATO <> '9999-12-31 00:00:00.000' AND MC.Tip_riattivazione = 1
UPDATE [C6MartPeriodico].[CONTRATTOSEI_METADATI]
SET tip_riattivazione=1
,numRevoche = 0, data_UltimaRevoca = NULL, invioBenvenuto = 'N',numSolleciti = 0, data_UltimoSollecito = NULL
--SELECT *
FROM C6MartPeriodico.VCONTRATTI VC
JOIN [C6MartPeriodico].[CONTRATTOSEI_METADATI] MC
ON VC.chiaveClientePB = MC.CHIAVECLIENTEPB
AND VC.riattivazione = 1 AND VC.DATA_FINEAVANZATO = '9999-12-31 00:00:00.000' AND MC.Tip_riattivazione = 0
UPDATE [C6MartPeriodico].[CONTRATTOSEI_METADATI]
SET tip_riattivazione=2, tip_Contratto = 2
,numRevoche = 0, data_UltimaRevoca = NULL, invioBenvenuto = 'N', numSolleciti = 0, data_UltimoSollecito = NULL
--SELECT *
FROM C6MartPeriodico.VCONTRATTI VC
JOIN [C6MartPeriodico].[CONTRATTOSEI_METADATI] MC
ON VC.chiaveClientePB = MC.CHIAVECLIENTEPB
AND VC.tip_contratto = 2 AND VC.DATA_FINEAVANZATO = '9999-12-31 00:00:00.000' AND MC.tip_Contratto = 1
-- Log esecuzione
UPDATE
LOG_ESECUZIONE
SET
Fine = GETDATE(),
Tipo = 'INSERT',
Righe = @@ROWCOUNT
WHERE
Nome = 'RP_DM_POPOLACONTRATTI' AND
Inizio = (
SELECT
MAX(Inizio)
FROM
LOG_ESECUZIONE
WHERE
Nome = 'RP_DM_POPOLACONTRATTI'
)
END