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

119 lines
3.6 KiB
SQL

--select * from C6MartPeriodico.CONTRATTOSEI_METADATI
-- =============================================
-- Author: <Author,,Name>
-- Create date: <Create Date,,>
-- Description: <Description,,>
-- =============================================
CREATE PROCEDURE [C6MartPeriodico].[RP_AggiornaFlagContratto]
AS
BEGIN
-- SET NOCOUNT ON added to prevent extra result sets from
-- interfering with SELECT statements.
-- SET NOCOUNT ON;
-- Log esecuzione
INSERT INTO LOG_ESECUZIONE
(Nome, Inizio, Nota)
VALUES (
'RP_AggiornaFlagContratto',
GETDATE(),
'Elaborazione giornaliera'
)
/*
select top 1 *
from C6MartPeriodico.CONTRATTOSEI_METADATI where risorseNa is null
*/
--AGGIORNAMENTO TABELLA CONTRATTOSEI
--FLAG RISORSE NON ASSOCIATE
--SOLO PER I CLIENTI A CUI ANDREBBE INVIATO IL REPORT
UPDATE C6MartPeriodico.CONTRATTOSEI_METADATI
SET
RisorseNA =
CASE
WHEN CLIENTIRISNA.percRisorseNA >= CAST(dbo.GETPARAMETRO('PercMaxRisorseNA') AS DECIMAL(5,2)) THEN 'S'
ELSE 'N'
END
--AGGIUNTA perchè mancava, FABRIZIO E VALERIO per Azzeramento numero solleciti email
,NumSolleciti =
CASE
WHEN (C6.ClienteMigrato = 'S') and (CLIENTIRISNA.percRisorseNA < CAST(dbo.GETPARAMETRO('PercMaxRisorseNA') AS DECIMAL(5,2))) THEN 0
ELSE NumSolleciti
END
FROM C6MartPeriodico.CONTRATTOSEI_METADATI C6
JOIN
C6MartPeriodico.VCONTRATTI VCONTR
ON
C6.CHIAVECLIENTEPB = VCONTR.CHIAVECLIENTEPB
LEFT JOIN (
SELECT
NA.RETE,
NA.COD_FISCALE,
CASE
WHEN TOT.CTVTOTALE = 0 THEN 0
ELSE 100 * NA.CTVNA / TOT.CTVTOTALE
END AS percRisorseNA
FROM (
SELECT
ISNULL(SUM(PATRBF.CTV),0) AS CTVNA,
PATRBF.RETE, PATRBF.COD_FISCALE
FROM C6MartPeriodico.PATRIMONIO_BF PATRBF
--INNER JOIN C6MartPeriodico.RP_vTuttiIContratti VCONTRATTIPERSEI
-- ON PATRBF.RETE = VCONTRATTIPERSEI.RETE
-- AND PATRBF.COD_FISCALE = VCONTRATTIPERSEI.COD_FISCALE
WHERE ID_AREA = 'Na'
GROUP BY
PATRBF.RETE, PATRBF.COD_FISCALE
) NA
INNER JOIN (
SELECT
SUM(PATRBF.CTV) AS CTVTOTALE,
PATRBF.RETE, PATRBF.COD_FISCALE
FROM C6MartPeriodico.PATRIMONIO_BF PATRBF
WHERE ID_AREA <> 'Cc'
GROUP BY
PATRBF.RETE, PATRBF.COD_FISCALE
) TOT
ON TOT.RETE = NA.RETE AND TOT.COD_FISCALE = NA.COD_FISCALE
) CLIENTIRISNA
ON VCONTR.RETE = CLIENTIRISNA.RETE
AND VCONTR.COD_FISCALE = CLIENTIRISNA.COD_FISCALE
WHERE C6.InvioBenvenuto = 'N'
--V Aggiorna il flag Profilo Attivo per i clienti che non hanno ricevuto il report
UPDATE C6MartPeriodico.CONTRATTOSEI_METADATI
SET profiloAttivo = CASE WHEN (ISNULL(MIFID.SCADUTO,1) = 1) THEN 0 ELSE 1 end
FROM C6MartPeriodico.CONTRATTOSEI_METADATI
JOIN C6MartPeriodico.VCONTRATTI
ON VCONTRATTI.CHIAVECLIENTEPB = CONTRATTOSEI_METADATI.CHIAVECLIENTEPB
LEFT JOIN C6MartPeriodico.MIFID
--ON CONTRATTOSEI_METADATI.chiaveClientePB = MIFID.chiaveClientePB
ON MIFID.RETE = VCONTRATTI.RETE
AND MIFID.COD_FISCALE = VCONTRATTI.COD_FISCALE
WHERE InvioBenvenuto = 'N'
--select * from C6MartPeriodico.VCONTRATTI
--V Aggiorna i dati di migrazione
UPDATE C6MartPeriodico.CONTRATTOSEI_METADATI
SET clienteMigrato =
case when (C6Staging.RP_Migraz_Pianificazione.chiaveClientePB is null) then 'N'
else 'S'
END
FROM C6MartPeriodico.CONTRATTOSEI_METADATI
LEFT JOIN C6Staging.RP_Migraz_Pianificazione
ON CONTRATTOSEI_METADATI.chiaveClientePB = C6Staging.RP_Migraz_Pianificazione.chiaveClientePb
WHERE InvioBenvenuto = 'N'
-- Log esecuzione
UPDATE
LOG_ESECUZIONE
SET
Fine = GETDATE(),
Tipo = 'UPDATE',
Righe = @@ROWCOUNT
WHERE
Nome = 'RP_AggiornaFlagContratto' AND
Inizio = (
SELECT
MAX(Inizio)
FROM
LOG_ESECUZIONE
WHERE
Nome = 'RP_AggiornaFlagContratto'
)
END