-- =============================================
-- Author:		<Gentilezza,,Name>
-- Create date: <Create Date,,>
-- Description:	<Description,,>
-- =============================================
-- [C6MartPeriodico].[PL_S50FondiAltriIstituti] 'S', 'MRTRRT57T17E758I'
CREATE procedure [C6MartPeriodico].[PL_S50FondiAltriIstituti]
	-- Add the parameters for the stored procedure here
	@Rete char(1), 
	@CodiceFiscale varchar(16)
AS
BEGIN
	SELECT 
		PATRTERZI.INTERMEDIARIO AS 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.' 
		WHEN RISCHIOAGGR.CREDITRISK IS NULL THEN 'n.a.'
		ELSE NULL 
	END as creditriskstring
	FROM 
		C6MartPeriodico.PATRIMONIO_TERZI AS PATRTERZI
	INNER JOIN 
		C6MartPeriodico.ANAG_PRODOTTI_TERZI AS 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 
		C6MartPeriodico.RISCHIO_AGGREGATO AS 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 
		C6MartPeriodico.RISCHIO_AGGREGATO AS 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