-- Schema: C6MartPeriodico
-- Stored Procedure: PL_MP_S128ProfiloRischioAdeguatezza









-- =============================================
-- Author:		<DMO>
-- Create date: <Create Date,,>
-- Description:	<Description,,>
-- =============================================
--[C6MartPeriodico].[PL_MP_S128ProfiloRischioAdeguatezza] 'F', 'PVRPGS53C25G388A'
CREATE    procedure [C6MartPeriodico].[PL_MP_S128ProfiloRischioAdeguatezza] --'S','FGGMSM57H28G999D'
	-- 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;

	DECLARE @varBF DECIMAL(12,2)
	DECLARE @coperturaBF DECIMAL(12,2)
	DECLARE @codiceProfilo SMALLINT
	DECLARE @dataProfilo DATETIME
	DECLARE @varProfilo DECIMAL(5,2)
	DECLARE @nomeProfilo VARCHAR(50)
    DECLARE @riskclass VARCHAR(50)
    DECLARE @experience SMALLINT

/************* BF *****************/
	DECLARE @varPatrBF DECIMAL(12,2)
	DECLARE @riskClassBF VARCHAR(50)

	DECLARE @FLAGPROF varchar(16)
	SET @FLAGPROF= (select distinct FLGPROF from C6MartPeriodico.WSEIAN2 where rete=@rete and CODFIS=@CodiceFiscale)

	DECLARE @SCADUTO_PARZIALE varchar(16)
	SET @SCADUTO_PARZIALE= (select distinct FLGPROF from C6MartPeriodico.wseirpf where rete=@rete and CODFIS=@CodiceFiscale)


	SELECT
        @codiceProfilo = M.PROFILO_ASS,
		@dataProfilo = M.DATA_INIZIO_VAL,
		@varProfilo = CR.MAX_VAR,
		@nomeProfilo = ProfiliDiRischio.NOMEPROFILO,
        @riskclass =  m.riskclass,
        @experience = m.experience
	FROM
		C6MartPERIODICO.MIFID AS M
		INNER JOIN C6MartPERIODICO.CODIFICA_RISCHIO AS CR
		ON M.PROFILO_ASS = CR.PROFILO
		INNER JOIN DBO.ProfiliDiRischio AS ProfiliDiRischio
		ON M.PROFILO_ASS = ProfiliDiRischio.CODICEPROFILO
	WHERE
		M.RETE = @Rete AND
		M.COD_FISCALE = @CodiceFiscale


/* RECUPERO Rischio Mercaro e Rischio Credito BAnca Fideuram */

	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


    SELECT 
	@varPatrBF = CASE WHEN (@contaPOS - @contaCC) = 0 THEN 0.00
		ELSE RISK_AGG.VAR_PERC_PTF
	END, 	
    @riskClassBF = RISK_AGG.CREDITRISK
    FROM
    (
    select 
    PATRBF.RETE,
    PATRBF.COD_FISCALE,
    CASE WHEN PATRBF.RETE='F' THEN 'Patrimonio Fideuram' WHEN PATRBF.RETE='S' THEN 'Patrimonio Sanpaolo Invest' ELSE ' Patrimonio IW Private Inv.' END AS INSTITUTENAME,
    SUM(PATRBF.CTV) AS CTV
    from
    c6martperiodico.patrimonio_bf  PATRBF
    where 
    1=1 
    and cod_fiscale = @codiceFiscale
    and rete= @rete
    GROUP BY 
    PATRBF.RETE,
    PATRBF.COD_FISCALE,
    CASE WHEN PATRBF.RETE='F' THEN 'Patrimonio Fideuram' WHEN PATRBF.RETE='S' THEN  'Patrimonio Sanpaolo Invest' ELSE 'Patrimonio IW Private Inv.' END
    ) PATRBF
    LEFT OUTER JOIN 
    c6martperiodico.MIFID AS M
    ON 
    PATRBF.COD_FISCALE=M.COD_FISCALE
    AND PATRBF.RETE=M.RETE
	LEFT OUTER JOIN c6martperiodico.CODIFICA_RISCHIO AS CR
	ON M.PROFILO_ASS = CR.PROFILO
    LEFT OUTER JOIN 
    c6martperiodico.CODIFICA_CREDITRISK  CK
    ON 
    M.riskclass=CK.PROFILO
    LEFT OUTER JOIN 
    c6martperiodico.RISCHIO_AGGREGATO  RISK_AGG
    ON 
    PATRBF.COD_FISCALE=RISK_AGG.COD_FISCALE
    AND PATRBF.RETE=RISK_AGG.RETE
    left outer join C6MartPeriodico.COMPLESSITA cmp
    on 
    CMP.COD_FISCALE=PATRBF.COD_FISCALE
    AND
    CMP.RETE=PATRBF.RETE
   where
    (
      RISK_AGG.COD_AGGREG= 'COMPLESSIVO|BF' 
    ) 

------------------------    MIFID2 - MAGGIO 2018
    select @coperturaBF=copertura
    from C6MartPeriodico.RISCHIO_AGGREGATO
    -- modifica del 17/10/2018 - Va' preso il compleesivoBF come avviene nella d2_s170_RischioDiversificazione
	    --where cod_aggreg='comp
