PDC_REPORT_CreazioneDB/sql/Testbes/procedure/C6Mart_RP_DM_POPOLACONTRATTI.sql
2025-06-10 15:29:40 +02:00

296 lines
14 KiB
Transact-SQL

CREATE procedure [C6Mart].[RP_DM_POPOLACONTRATTI] AS
BEGIN
INSERT INTO LOG_ESECUZIONE
(Nome, Inizio, Nota)
VALUES (
'RP_DM_POPOLACONTRATTI',
GETDATE(),
'Elaborazione giornaliera'
)
-- LOG CAMBIO COD_FISCALE RETE ***************************************************************************************
INSERT INTO c6mart.test_logmd
SELECT 'VARZ CF RETE',GETDATE(),VC.COD_FISCALE,VC.RETE,
NULL AS RIATTIVAZIONE_1,NULL AS TIPOCONTRATTO_1,
NULL AS RIATTIVAZIONE_2,NULL AS TIPOCONTRATTO_2,
NULL AS RIATTIVAZIONE_3,NULL AS TIPOCONTRATTO_3,NULL AS INVIO_3,
'da ' + VC.cod_fiscale +'-'+ VC.RETE + ' a ' + C6.cod_fiscale +'-'+ C6.RETE
FROM C6MART.VCONTRATTI VC
JOIN [C6Mart].[vContrattiC6] C6
ON VC.chiaveClientePB = C6.CHIAVECLIENTEPB
WHERE VC.cod_fiscale <> C6.cod_fiscale OR VC.RETE <> C6.RETE
--********************************************************************************************************************
TRUNCATE TABLE C6MART.VCONTRATTI
--DELETE C6MART.VCONTRATTI
-- WHERE chiaveClientePB in (SELECT chiaveClientePB FROM [C6Mart].[vContrattiC6])
INSERT INTO C6MART.VCONTRATTI
SELECT * FROM [C6Mart].[vContrattiC6]
-- Modifica del 27/11/2018 per la gestione del doppio pb -
-- Nel caso di doppio pb, con pb primario diverso dal precedente (CHIAVECLIENTEPB nuova), dobbiamo evitare di far stampare un nuovo
-- report di benvenuto, creando una occorrenza sulla CONTRATTOSEI_METADATI CON INVIOBENVENUTO = 'S'
INSERT INTO [C6Mart].[CONTRATTOSEI_METADATI]
([CHIAVECLIENTEPB]
,[ClienteMIGRATO]
,[RISORSENA]
,[PROFILOATTIVO]
,[NumSolleciti]
,[NumRevoche]
,[Data_ultimoSollecito]
,[Data_ultimaRevoca]
,[InvioBenvenuto]
,[Tip_riattivazione]
,[Tip_contratto])
SELECT
A.CHIAVECLIENTEPB,
'S',
'N',
1,
0,
0,
NULL,
NULL,
'S',
A.Riattivazione,
A.Tip_Contratto
FROM C6MART.VCONTRATTI A
inner joiN [C6mart].[GESTIONE_PDF_FTP] B
ON A.RETE= B.RETE AND A.COD_FISCALE = B.CODICEFISCALE
AND A.CODICECONTRATTO = LEFT(B.NOMEFILE,LEN(A.CODICECONTRATTO))
LEFT JOIN [C6Mart].[CONTRATTOSEI_METADATI] c
ON A.chiaveClientePB = C.CHIAVECLIENTEPB
WHERE C.CHIAVECLIENTEPB IS NULL
-- Fine Modifica del 27/11/2018 per la gestione del doppio pb -
INSERT INTO [C6Mart].[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 C6MART.VCONTRATTI A
LEFT JOIN [C6Mart].[CONTRATTOSEI_METADATI] B
ON A.chiaveClientePB = B.CHIAVECLIENTEPB
WHERE B.CHIAVECLIENTEPB IS NULL
---- FCianfa: INIZIO FORZATURA per errore giornaliero del 31/07/2015, il cliente non è censito in C6Mart.ANAG_CLIENTI
--DELETE from C6MART.VCONTRATTI
--where rete+cod_fiscale = 'FFF@9700'
---- EN20160315: INIZIO FORZATURA per errore giornaliero del 15/03/2016, il cliente è in C6Mart.ANAG_CLIENTI incompleto e non presente su SIMPB
---- where rete+cod_fiscale = 'FBRBMRA51H53G089M'
----FINE FORZATURA
---- LL: INIZIO FORZATURA per errore giornaliero del 25/03/2016 ----------------------------------------------
--DELETE from C6MART.VCONTRATTI
--where rete+cod_fiscale = 'SFROFMN88T49H501H'
---- LL: INIZIO FORZATURA per Ticket T-1410414-M4B3 (08/04/2016)
-- Il contratto ha subito un cambio di cf e per errore è stata generata una nuova email di perfez.;
-- per evitare anche l'eventuale generazione della lettera di benvenuto lo escludiamo
--DELETE from C6MART.VCONTRATTI
--where rete+cod_fiscale = 'FGRMLGU42L14A662R'
----FINE FORZATURA---------------------------------------------------------------------------------------------
---- EN20161230: INIZIO FORZATURA per errore giornaliero del 30/12/2016 ----------------------------------------------
----DELETE from C6MART.VCONTRATTI
----where rete+cod_fiscale = 'FMRTRND45C07F930Z'
----DELETE from C6MART.VCONTRATTI
----where rete+cod_fiscale = 'FVNARRT65S64Z326I'
------per rimediare errore nel giornaliero il 21/03/2017
DELETE from C6MART.VCONTRATTI
where rete+cod_fiscale = 'F04904530633'
------per rimediare errore nel giornaliero il 24/05/2017
DELETE from C6MART.VCONTRATTI
where rete+cod_fiscale = 'F02588590402'
------per errore del giornaliero il 06/06/2017
-- DELETE from C6MART.VCONTRATTI
-- where rete+cod_fiscale in (
--'FSCNLRT54T04E613J',
--'FBRRMNL69S45C957K',
--'FTBRDAA34M63B455T',
--'FSNTRNO50C55I342U',
--'FLMLGNN75D58F918C',
--'SSTCRRT86H30E058Z'
-- )
--Clienti professionali esclusi dal giornaliero 13/06/2017
--DELETE from C6MART.VCONTRATTI
--where rete+cod_fiscale in (
--'FMGNGPP55B25G224T',
--'FFF@5844'
--)
------per rimediare errore nel giornaliero il 27/07/2017
DELETE from C6MART.VCONTRATTI
where rete+cod_fiscale in ('F00624130431')
------T-2271865-L0H7 del 26/10/2017 --scommentato il 2/1/2018, richiesto via mail di sollecito l'invio lettera
----DELETE from C6MART.VCONTRATTI
----where rete+cod_fiscale in (
----'FTSTLCN48R14H501A'
----)
------ cliente con prodotti multiramo da sistemare 13/11/2017
------ intervanto aggregazione s+m completato e testato il 20171116
--DELETE from C6MART.VCONTRATTI
--where rete+cod_fiscale in (
--'FDFRNTN54C12E625S'
--)
------per rimediare l'errore VarAdeguatezza il 05/12/2017
DELETE from C6MART.VCONTRATTI
where rete+cod_fiscale in ('F01248331215')
------per rimediare l'errore VarAdeguatezza il 22/12/2017; 03/01/2018 riprovato con errorr
DELETE from C6MART.VCONTRATTI
where rete+cod_fiscale in ('FRYNCRL63E11L219J')
------per rimediare l'errore VarAdeguatezza il 04/01/2018
DELETE from C6MART.VCONTRATTI
where rete+cod_fiscale in ('S02312260710')
----FINE FORZATURA---------------------------------------------------------------------------------------------
-- CASO NUOVO CONTRATTO ***************************************************************************************
INSERT INTO c6mart.test_logmd
SELECT 'NUOVO CONTRATTO',GETDATE(),VC.COD_FISCALE,VC.RETE,
VC.riattivazione AS RIATTIVAZIONE_1,VC.tip_contratto AS TIPOCONTRATTO_1,
MD.tip_riattivazione AS RIATTIVAZIONE_2,MD.tip_Contratto AS TIPOCONTRATTO_2,
VC.Riattivazione AS RIATTIVAZIONE_3,VC.Tip_Contratto AS TIPOCONTRATTO_3,'N' AS INVIO_3,''
FROM [C6Mart].[CONTRATTOSEI_METADATI] MD inner join
(select VC1.cod_fiscale,VC1.rete,VC1.chiaveClientePB,VC1.Riattivazione,VC1.Tip_Contratto
FROM C6MART.VCONTRATTI VC1
JOIN [C6Mart].[CONTRATTOSEI_METADATI] MC1
ON VC1.chiaveClientePB = MC1.CHIAVECLIENTEPB
LEFT JOIN c6mart.gestione_pdf_ftp PDF1
ON SUBSTRING(PDF1.NomeFile, 1, 11) = VC1.CODICECONTRATTO
WHERE MC1.INVIOBENVENUTO = 'S' AND PDF1.CODICEFISCALE IS NULL) VC
ON VC.chiaveClientePB = MD.chiaveClientePB
UPDATE [C6Mart].[CONTRATTOSEI_METADATI] SET
--SELECT
TIP_RIATTIVAZIONE =VC.Riattivazione, TIP_CONTRATTO=VC.Tip_Contratto
,NumSolleciti=0,NumRevoche=0,Data_ultimoSollecito=null,Data_ultimaRevoca=null,InvioBenvenuto='N'
FROM [C6Mart].[CONTRATTOSEI_METADATI] MD inner join
(select VC1.chiaveClientePB,VC1.Riattivazione,VC1.Tip_Contratto
FROM C6MART.VCONTRATTI VC1
JOIN [C6Mart].[CONTRATTOSEI_METADATI] MC1
ON VC1.chiaveClientePB = MC1.CHIAVECLIENTEPB
LEFT JOIN c6mart.gestione_pdf_ftp PDF1
ON SUBSTRING(PDF1.NomeFile, 1, 11) = VC1.CODICECONTRATTO
WHERE MC1.INVIOBENVENUTO = 'S' AND PDF1.CODICEFISCALE IS NULL) VC
ON VC.chiaveClientePB = MD.chiaveClientePB
-- CASO RIATTIVAZIONE ***************************************************************************************
INSERT INTO c6mart.test_logmd
SELECT 'RIATTIVAZIONE',GETDATE(),VC.COD_FISCALE,VC.RETE,
VC.riattivazione AS RIATTIVAZIONE_1,VC.tip_contratto AS TIPOCONTRATTO_1,
MD.Tip_riattivazione AS RIATTIVAZIONE_2,MD.tip_Contratto AS TIPOCONTRATTO_2,
1 AS RIATTIVAZIONE_3,VC.TIP_CONTRATTO AS TIPOCONTRATTO_3,'N' AS INVIO_3,''
FROM C6MART.VCONTRATTI VC JOIN [C6Mart].[CONTRATTOSEI_METADATI] MD
ON VC.chiaveClientePB = MD.CHIAVECLIENTEPB
AND VC.riattivazione = 1 AND VC.DATA_FINEAVANZATO > GETDATE() AND MD.Tip_riattivazione = 0
UPDATE [C6Mart].[CONTRATTOSEI_METADATI] SET
--SELECT
TIP_RIATTIVAZIONE = 1, TIP_CONTRATTO=VC.TIP_CONTRATTO
,NumSolleciti=0,NumRevoche=0,Data_ultimoSollecito=null,Data_ultimaRevoca=null,InvioBenvenuto='N'
FROM C6MART.VCONTRATTI VC JOIN [C6Mart].[CONTRATTOSEI_METADATI] MC ON VC.chiaveClientePB = MC.CHIAVECLIENTEPB
AND VC.riattivazione = 1 AND VC.DATA_FINEAVANZATO > GETDATE() AND MC.Tip_riattivazione = 0
-- CASO FINE RIATTIVAZIONE ***************************************************************************************
INSERT INTO c6mart.test_logmd
SELECT 'FINE RIATTIVAZIONE',GETDATE(),VC.COD_FISCALE,VC.RETE,
VC.riattivazione AS RIATTIVAZIONE_1,VC.tip_contratto AS TIPOCONTRATTO_1,
MD.Tip_riattivazione AS RIATTIVAZIONE_2,MD.tip_Contratto AS TIPOCONTRATTO_2,
0 AS RIATTIVAZIONE_3,null AS TIPOCONTRATTO_3,null AS INVIO_3,''
FROM C6MART.VCONTRATTI VC JOIN [C6Mart].[CONTRATTOSEI_METADATI] MD
ON VC.chiaveClientePB = MD.CHIAVECLIENTEPB
AND VC.riattivazione = 0 AND VC.DATA_FINEAVANZATO <= GETDATE() AND MD.Tip_riattivazione <> 0
UPDATE [C6Mart].[CONTRATTOSEI_METADATI] SET
-- SELECT
TIP_RIATTIVAZIONE = 0
FROM C6MART.VCONTRATTI VC JOIN [C6Mart].[CONTRATTOSEI_METADATI] MD ON VC.chiaveClientePB = MD.CHIAVECLIENTEPB
AND VC.riattivazione = 0 AND VC.DATA_FINEAVANZATO <= GETDATE() AND MD.Tip_riattivazione <> 0
-- CASO UPGRADE ***************************************************************************************
INSERT INTO c6mart.test_logmd
SELECT 'UPGRADE',GETDATE(),COD_FISCALE,RETE,
VC.riattivazione AS RIATTIVAZIONE_1,VC.tip_contratto AS TIPOCONTRATTO_1,
MD.Tip_riattivazione AS RIATTIVAZIONE_2,MD.tip_Contratto AS TIPOCONTRATTO_2,
2 AS RIATTIVAZIONE_3,2 AS TIPOCONTRATTO_3,'N' AS INVIO_3,''
FROM C6MART.VCONTRATTI VC JOIN [C6Mart].[CONTRATTOSEI_METADATI] MD
ON VC.chiaveClientePB = MD.CHIAVECLIENTEPB
AND VC.tip_contratto = 2 AND VC.DATA_FINEAVANZATO > GETDATE() AND MD.tip_Contratto = 1
INSERT INTO C6Mart.GESTIONE_EMAIL (Rete,Cod_Fiscale,Tipo,Data_Generazione,ID_ELAB)
SELECT rete,cod_fiscale,'PERF' as TipoEmail,GETDATE() AS DataGenerazione ,999
FROM C6MART.VCONTRATTI VC JOIN [C6Mart].[CONTRATTOSEI_METADATI] MD
ON VC.chiaveClientePB = MD.CHIAVECLIENTEPB
AND VC.tip_contratto = 2 AND VC.DATA_FINEAVANZATO > GETDATE() AND MD.tip_Contratto = 1
UPDATE [C6Mart].[CONTRATTOSEI_METADATI] SET
--SELECT
TIP_RIATTIVAZIONE =2, TIP_CONTRATTO=2
,NumSolleciti=0,NumRevoche=0,Data_ultimoSollecito=null,Data_ultimaRevoca=null,InvioBenvenuto='N'
FROM C6MART.VCONTRATTI VC JOIN [C6Mart].[CONTRATTOSEI_METADATI] MD
ON VC.chiaveClientePB = MD.CHIAVECLIENTEPB
AND VC.tip_contratto = 2 AND VC.DATA_FINEAVANZATO > GETDATE() AND MD.tip_Contratto = 1
-- CASO DOWNGRADE ***************************************************************************************
INSERT INTO c6mart.test_logmd
SELECT 'DOWNGRADE',GETDATE(),COD_FISCALE,RETE,
VC.riattivazione AS RIATTIVAZIONE_1,VC.tip_contratto AS TIPOCONTRATTO_1,
MD.Tip_riattivazione AS RIATTIVAZIONE_2,MD.tip_Contratto AS TIPOCONTRATTO_2,
VC.riattivazione AS RIATTIVAZIONE_3,1 AS TIPOCONTRATTO_3,null AS INVIO_3,''
FROM C6MART.VCONTRATTI VC JOIN [C6Mart].[CONTRATTOSEI_METADATI] MD
ON VC.chiaveClientePB = MD.CHIAVECLIENTEPB
AND VC.tip_contratto = 1 AND VC.DATA_FINEAVANZATO > GETDATE() AND MD.tip_Contratto = 2
UPDATE [C6Mart].[CONTRATTOSEI_METADATI] SET
--SELECT
TIP_RIATTIVAZIONE =VC.riattivazione, TIP_CONTRATTO=1
FROM C6MART.VCONTRATTI VC JOIN [C6Mart].[CONTRATTOSEI_METADATI] MD
ON VC.chiaveClientePB = MD.CHIAVECLIENTEPB
AND VC.tip_contratto = 1 AND VC.DATA_FINEAVANZATO > GETDATE() AND MD.tip_Contratto = 2
--CASO 4
INSERT INTO c6mart.test_logmd
SELECT 'OLD >> AFF',GETDATE(),VC.COD_FISCALE,VC.RETE,
VC.riattivazione AS RIATTIVAZIONE_1,VC.tip_contratto AS TIPOCONTRATTO_1,
MD.Tip_riattivazione AS RIATTIVAZIONE_2,MD.tip_Contratto AS TIPOCONTRATTO_2,
NULL AS RIATTIVAZIONE_3,NULL AS TIPOCONTRATTO_3,NULL AS INVIO_3,''
FROM C6MART.VCONTRATTI VC JOIN [C6Mart].[CONTRATTOSEI_METADATI] MD
ON VC.chiaveClientePB = MD.CHIAVECLIENTEPB
AND VC.tip_contratto = 1 AND VC.DATA_FINEAVANZATO > GETDATE() AND MD.tip_Contratto = 0
--CASO 5
INSERT INTO c6mart.test_logmd
SELECT 'OLD >> PRI',GETDATE(),VC.COD_FISCALE,VC.RETE,
VC.riattivazione AS RIATTIVAZIONE_1,VC.tip_contratto AS TIPOCONTRATTO_1,
MD.Tip_riattivazione AS RIATTIVAZIONE_2,MD.tip_Contratto AS TIPOCONTRATTO_2,
NULL AS RIATTIVAZIONE_3,NULL AS TIPOCONTRATTO_3,NULL AS INVIO_3,''
FROM C6MART.VCONTRATTI VC JOIN [C6Mart].[CONTRATTOSEI_METADATI] MD
ON VC.chiaveClientePB = MD.CHIAVECLIENTEPB
AND VC.tip_contratto = 2 AND VC.DATA_FINEAVANZATO > GETDATE() AND MD.tip_Contratto = 0
--------------------------------------------------------------------------------------------------------------------
-- Modifica del 03/10/2018 per gestire i casi in cui il campo InvioBenvenuto è una data
begin try
INSERT INTO C6MART.TEST_QUALITY
SELECT DISTINCT VC.RETE,VC.COD_FISCALE,'CONTRATTOSEI_METADATI NON AGG.1' FROM [C6Mart].[vContrattiSei] VC
LEFT JOIN c6mart.gestione_pdf_ftp PDF
ON SUBSTRING(PDF.NomeFile, 1, 11) = VC.CODICECONTRATTO
WHERE VC.INVIOBENVENUTO = 'S' AND PDF.CODICEFISCALE IS NULL
end try
begin catch
end catch
-- Fine Modifica del 03/10/2018
-- 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