PDC_REPORT_CreazioneDB/sql/storedCollaudo/C6MartPeriodico_PL_S80BisEvoluzioneRischio_BkUpParall.sql
2025-06-06 19:02:52 +02:00

167 lines
3.8 KiB
Transact-SQL

-- Schema: C6MartPeriodico
-- Stored Procedure: PL_S80BisEvoluzioneRischio_BkUpParall
-- =============================================
-- Author: <Author,,Name>
-- Create date: <Create Date,,>
-- Description: <Description,,>
-- =============================================
--[C6MartPeriodico].[PL_S80BisEvoluzioneRischio]'F','02392500605S'
--DROP PROCEDURE [C6MartPeriodico].[PL_S80EvoluzioneControvalore]
CREATE procedure [C6MartPeriodico].[PL_S80BisEvoluzioneRischio_BkUpParall]
-- Add the parameters for the stored procedure here
@Rete char(1),
@CodiceFiscale varchar(16)
AS
BEGIN
-- SET NOCOUNT ON added to prevent extra result sets from
-- interfering with SELECT statements.
SET NOCOUNT ON;
-- Recupero data congelamento SEI
DECLARE @MONIT_INIT INT
DECLARE @DataCongelamento DATETIME
DECLARE @MONIT_ATTIV INT
--V VAriabile usata per verificare la presenza di righe nella rischio_aggregato, se non ho righe non
--faccio uscire la sezione
DECLARE @AGGR INT
SET @DataCongelamento = C6MartPeriodico.getDataCongelamento()
SET @MONIT_ATTIV=0
SET @MONIT_INIT = 0
declare @contaCC as int
select @contaCC = count(*)
from c6martperiodico.patrimonio_Bf
where tipo_prodotto = 'CC' and cod_fiscale = @codiceFiscale and rete = @rete
declare @contaPOS as int
select @contaPOS = count(*)
from c6martperiodico.patrimonio_Bf
where cod_fiscale = @codiceFiscale and rete = @rete
-- INSERIMENTO BLOCCO PER MONITORAGGIO CHIUSO O NON ESISTENTE
SELECT @MONIT_INIT = COUNT(*)
FROM
C6MARTPERIODICO.MONITORAGGIO_INIZIALE
WHERE
RETE = @Rete AND
COD_FISCALE = @CodiceFiscale
SELECT @MONIT_ATTIV=COUNT(*)
FROM
C6MARTPERIODICO.MONITORAGGIO_ATTUALE
WHERE
RETE = @Rete AND
COD_FISCALE = @CodiceFiscale
SELECT @AGGR=COUNT(*)
FROM
C6MARTPERIODICO.RISCHIO_AGGREGATO
WHERE
RETE = @Rete AND
COD_FISCALE = @CodiceFiscale
IF (@MONIT_ATTIV > 0 AND @AGGR > 0 AND @MONIT_INIT > 0)
BEGIN
-- Attivazione monitoraggio
-- nuova versione da testare
SELECT
1 AS Fase,
INI.DATA_FOTO AS DataFase,
INI.VAR_MAX_PROFILO AS VarMassimoProfiloFinanziario,
--V
CASE
WHEN INI.VAR_COMPLESSIVO IS NULL THEN INI.VAR_COMPLESSIVO
ELSE ROUND(INI.VAR_COMPLESSIVO,2)
END AS VarComplessivo,
INI.VAR_COPERTURA AS Copertura,
INI.RISKCLASS,
INI.RISKCLASSMAX,
case
when INI.RISKCLASS is null then 'n.d.'
when INI.RISKCLASS = 0 then 'n.a.'
else null
end as RiskClassString,
case
when INI.RISKCLASSMAX is null then 'n.d.'
when INI.RISKCLASSMAX = 0 then 'n.a.'
else null
end as RiskClassMaxString
FROM
C6MartPeriodico.MONITORAGGIO_INIZIALE INI
LEFT OUTER join
C6MartPeriodico.MONITORAGGIO_REPORT rep
on
REP.RETE=INI.RETE
AND
REP.COD_FISCALE=INI.COD_FISCALE
WHERE
INI.RETE = @Rete AND
INI.COD_FISCALE = @CodiceFiscale
-- SELECT
-- 1 AS Fase,
-- INI.DATA_FOTO AS DataFase,
-- INI.VAR_MAX_PROFILO AS VarMassimoProfiloFinanziario,
-- --V
-- CASE
-- WHEN INI.VAR_COMPLESSIVO IS NULL THEN INI.VAR_COMPLESSIVO
-- ELSE ROUND(INI.VAR_COMPLESSIVO,2)
-- END AS VarComplessivo,
-- INI.VAR_COPERTURA AS Copertura
-- FROM
-- C6MartPeriodico.MONITORAGGIO_INIZIALE INI
--
-- WHERE
-- INI.RETE = @Rete AND
-- INI.COD_FISCALE = @CodiceFiscale
UNION ALL
-- Precedente invio report
SELECT
2 AS Fase,
rep.DATA_INVIO AS DataFase,
rep.VAR_MAX_PROFILO AS VarMassimoProfiloFinanziario,
--V
CASE
WHEN rep.VAR_COMPLESSIVO IS NULL THEN rep.VAR_COMPLESSIVO
ELSE ROUND(rep.VAR_COMPLESSIVO,2)
END AS VarComplessivo,
rep.VAR_COPERTURA AS Copertura,
rep.RISKCLASS,
rep.RISKCLASSMAX,
case when rep.RISKCLASS is null then 'n.a.'
else null
end as RiskClassString,
case when rep.RISKCLASSMAX is null then 'n.a.'
else null
end as RiskClassMaxString
FROM