-- ============================================= -- Author: -- Create date: -- 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 C6MartPeriodico.MONITORAGGIO_INIZIALE INI left outer join C6MartPeriodico.MONITORAGGIO_REPORT rep on REP.RETE=INI.RETE AND REP.COD_FISCALE=INI.COD_FISCALE WHERE rep.RETE = @Rete AND rep.COD_FISCALE = @CodiceFiscale AND INI.DATA_FOTO < ISNULL(REP.DATA_INVIO,cast('29991231' as datetime)) and ISNULL(DATA_INVIO,cast('29991231' as datetime))<@datacongelamento UNION ALL -- Situazione corrente SELECT 3, CASE WHEN @DataCongelamento IS NULL THEN GETDATE() ELSE @DataCongelamento END AS DataFase, CR.MAX_VAR AS VarMassimoProfiloFinanziario, --V CASE WHEN RA.VAR_PERC_PTF IS NULL THEN 0.00 ELSE ROUND(RA.VAR_PERC_PTF,2) END AS VarComplessivo, CASE WHEN (@contaPOS - @contaCC = 0 ) THEN 100 ELSE isnull(RA.COPERTURA,0) END AS Copertura, -- TRINGALI MODIFICARE ra.creditrisk as RISKCLASS, mifid.riskclass as RISKCLASSMAX, case when ra.creditrisk is null then 'n.a.' else null end as RiskClassString, case when mifid.riskclass is null then 'n.a.' else null end as RiskClassMaxString FROM C6MartPeriodico.vPatrimonioBFAggregato AS BF INNER JOIN C6MartPeriodico.MIFID AS MIFID ON BF.RETE = MIFID.RETE AND BF.COD_FISCALE = MIFID.COD_FISCALE INNER JOIN C6MartPeriodico.CODIFICA_RISCHIO AS CR ON MIFID.PROFILO_ASS = CR.PROFILO LEFT OUTER JOIN C6MartPeriodico.RISCHIO_AGGREGATO AS RA ON RA.RETE = BF.RETE AND RA.COD_FISCALE = BF.COD_FISCALE AND RA.COD_AGGREG = 'COMPLESSIVO|BF' WHERE BF.RETE = @Rete AND BF.COD_FISCALE = @CodiceFiscale END ELSE BEGIN SELECT 2 AS Fase, DATA_INVIO AS DataFase, VAR_MAX_PROFILO AS VarMassimoProfiloFinanziario, --V CASE WHEN VAR_COMPLESSIVO IS NULL THEN VAR_COMPLESSIVO ELSE ROUND(VAR_COMPLESSIVO,2) END AS VarComplessivo, VAR_COPERTURA AS Copertura FROM C6MartPeriodico.MONITORAGGIO_REPORT WHERE 1=2 END END