-- 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