-- Schema: C6Mart
-- Stored Procedure: PL_S50FondiAltriIstituti

-- =============================================
-- Author:		<Gentilezza,,Name>
-- Create date: <Create Date,,>
-- Description:	<Description,,>
-- =============================================
-- [C6Mart].[PL_S50FondiAltriIstituti] 'F','BLLDRA53P28C894B'
CREATE procedure [C6Mart].[PL_S50FondiAltriIstituti]
	-- Add the parameters for the stored procedure here
	@Rete char(1), 
	@CodiceFiscale varchar(16)
AS
BEGIN
	
	SELECT 
		PATRTERZI.INTERMEDIARIO,
		ANAGPRODTERZI.NOME_PRODOTTO AS descrizione_prodotto,
		dbo.ToShortDateString(PATRTERZI.DATA_SOTTOSCRIZIONE) AS DATASOTTOSCRIZIONE,
		PATRTERZI.FREQ_RATA as tipo_versamento,
		PATRTERZI.CTV as controvalore,
		PATRTERZI.VERSATO_NETTO as ammontare,
		SUM(PATRTERZI.CTV) OVER (PARTITION BY 'TOTALE') as somma_controval,
		RISCHIOPROD.VAR_PERC_PTF as Var_Prodotto,
		CASE WHEN RISCHIOPROD.VAR_PERC_PTF IS NULL OR ISNULL(RISCHIOPROD.COPERTURA,0.00) = 0.00 THEN 'n.c.' ELSE NULL END as Var_ProdottoString,
		RISCHIOAGGR.VAR_PERC_PTF as Var_Totale,
		CASE WHEN RISCHIOAGGR.VAR_PERC_PTF IS NULL OR ISNULL(RISCHIOAGGR.COPERTURA,0.00) = 0.00 THEN 'n.c.' ELSE NULL END as Var_TotaleString,
		--CASE WHEN (ISNULL(RISCHIOAGGR.COPERTURA,100) < 100) THEN '(*) Grado di copertura: ' + REPLACE(CAST(CAST(RISCHIOAGGR.COPERTURA AS decimal (5,2)) AS varchar),'.',',') + '%'  ELSE '' END AS copertura_totale,	
		CASE 
			WHEN RISCHIOAGGR.COPERTURA > 0 AND RISCHIOAGGR.COPERTURA < 100 
				THEN 'Grado di copertura: ' + REPLACE(CAST(CAST(RISCHIOAGGR.COPERTURA AS decimal (5,2)) AS varchar),'.',',') + '%'  
			ELSE '' -- CASI 0, 100, NULL
		END AS copertura_totale,	
		CASE WHEN RISCHIOAGGR.COPERTURA > 0 AND RISCHIOAGGR.COPERTURA < 100 THEN '*' ELSE '' END as Nota,
		CASE WHEN PATRTERZI.COD_PRODOTTO = 'PRODOTTO NON IN CATALOGO' THEN 1 ELSE 0	END AS ProdNonInCatalogo,
        RISCHIOAGGR.CREDITRISK as creditrisk,
    CASE 
		WHEN ISNULL(RISCHIOAGGR.COPERTURA,0.00) = 0.00 THEN 'n.c.' 
		ELSE NULL 
	END as creditriskstring

	FROM 
		C6Mart.PATRIMONIO_TERZI PATRTERZI
		INNER JOIN 
			C6Mart.ANAG_PRODOTTI_terzi ANAGPRODTERZI
    		ON 
				PATRTERZI.cod_prodotto_terzi=ANAGPRODTERZI.cod_prodotto_terzi
				--AND ANAGPRODTERZI.ALBERO_PRODOTTI = 'Ass.Prev'
				AND ANAGPRODTERZI.DESCR_PRODOTTO='Assets.FinancialAssets.ProdottiPrevidenziali'
		LEFT OUTER JOIN 
			C6Mart.RISCHIO_AGGREGATO RISCHIOPROD
    		ON 
				PATRTERZI.RETE = RISCHIOPROD.RETE
				AND PATRTERZI.COD_FISCALE = RISCHIOPROD.COD_FISCALE
				AND RISCHIOPROD.COD_AGGREG = 'TIPOPRODTERZI|TERZI|' + ISNULL(DESCR_GRUPPO_PRODOTTO,PATRTERZI.TIPO_PRODOTTO) + '|' + PATRTERZI.cod_prodotto_terzi
		LEFT OUTER JOIN 
			C6Mart.RISCHIO_AGGREGATO RISCHIOAGGR
    		ON 
				PATRTERZI.RETE = RISCHIOAGGR.RETE
				AND PATRTERZI.COD_FISCALE = RISCHIOAGGR.COD_FISCALE
				AND RISCHIOAGGR.COD_AGGREG = 'TIPOPRODTERZI|TERZI|' + ISNULL(DESCR_GRUPPO_PRODOTTO,PATRTERZI.TIPO_PRODOTTO)
	WHERE 
	 	PATRTERZI.rete = @Rete
		and PATRTERZI.cod_fiscale = @CodiceFiscale
		--AND  PATRTERZI.TIPO_PRODOTTO = 'Fondi pensione'



END