-- Schema: C6MartPeriodico
-- Stored Procedure: PL_S86PatrimonioFinanziarioMAssetClass


--select *
--from c6martperiodico.patrimonio_bf
--where cod_fiscale = 'GNGFRZ63H17D810C'
--and id_area = 'Liq'
--
--begin tran commit
--update 
--c6martperiodico.patrimonio_bf
--set ordinamento_progetto = 527950
--where cod_fiscale = 'GNGFRZ63H17D810C'
--and id_area = 'Liq'
--and ordinamento_progetto is null


-- Stored procedure

-- =============================================
-- Author:		Paolo Giovanetti -- Alessandro Tringali
-- Create date: 15 gennaio 2009  -- 19/09/2009
-- Description:	riporta il valore complessivo dei prodotti attualmente destinati all'area 
--				di bisogno progetto (controvalore attuale) ed il relativo valore di rischio (VaR attuale)
-- =============================================
-- [C6MartPeriodico].[PL_S86PatrimonioFinanziarioMAssetClass] 'S','GNGFRZ63H17D810C'
CREATE procedure [C6MartPeriodico].[PL_S86PatrimonioFinanziarioMAssetClass]
	-- 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;

SELECT
		VALORIASSET.ID_AREA AS Need_Area,
		VALORIASSET.NOME_PROGETTO,
		VALORIASSET.ord_progetto,
		VALORIASSET.ID_ASSETCLASS AS AssetClassId,
		ASSETCLASS.DESCRIZIONE AS AssetClassName,
		--ROUND(VALORIASSET.CONTROVALORE, 2) AS Controvalore,
		CAST(VALORIASSET.CONTROVALORE AS DECIMAL(15,2)) AS Controvalore,
		ROUND(VALORIASSET.CONTROVALORE / SUM(VALORIASSET.CONTROVALORE) OVER (PARTITION BY VALORIASSET.ID_AREA, VALORIASSET.NOME_PROGETTO) * 100, 2) AS Percentuale
	FROM (
          
          SELECT 
          VAL.RETE,
          VAL.COD_FISCALE,
          VAL.ID_AREA,
          VAL.NOME_PROGETTO,
		  val.ord_progetto,
          SUM(CONTROVALORE) AS CONTROVALORE,
          ID_ASSETCLASS
          FROM
          (--V Escludo gli ASU2 che essendo skandia vanno gestiti in modo particolare
					SELECT
						PATR_BF.RETE,
						PATR_BF.COD_FISCALE,
						CASE
							WHEN PATR_BF.ID_AREA IN ('Pre1', 'Pre2') THEN 'Pre'
							ELSE PATR_BF.ID_AREA
						END AS ID_AREA,
						ltrim(rtrim(PATR_BF.NOME_PROGETTO)) NOME_PROGETTO ,
						patr_bf.ordinamento_progetto ord_progetto,
						(PATR_BF.CTV * ISNULL(ASSETPERC.PERC, 1)) AS CONTROVALORE,
						ISNULL(ASSETPERC.ID_ASSETCLASS, 'AL') AS ID_ASSETCLASS
					FROM C6MartPeriodico.PATRIMONIO_BF AS PATR_BF
						INNER JOIN C6MartPeriodico.ASSET_PERC AS ASSETPERC
							ON PATR_BF.COD_PRODOTTO = ASSETPERC.COD_PRODOTTO
					WHERE
						PATR_BF.ID_AREA NOT IN ('Cc', 'Na','Pre1','Pre2','Pre')
						AND ASSETPERC.LIVELLO = 1
						--AND PATR_BF.TIPO_PRODOTTO NOT IN ('ASUL','CC')
						AND PATR_BF.TIPO_PRODOTTO NOT IN ('ASUL','ASU2')
						AND PATR_BF.COD_FISCALE=@CodiceFiscale
                        AND PATR_BF.RETE= @Rete
--			  
				UNION ALL
				---DETTAGLIO ASUL SENZA  GLI SKANDIA
				SELECT      PATR_BF.RETE,
							PATR_BF.COD_FISCALE,
						CASE
							WHEN PATR_BF.ID_AREA IN ('Pre1', 'Pre2') THEN 'Pre'
							ELSE PATR_BF.ID_AREA
						END AS ID_AREA,
							PATR_BF.NOME_PROGETTO,
							patr_bf.ordinamento_progetto ord_progetto,
                            ASUL.CTV*ASSETPERC.PERC as Controvalore,
							ASSETPERC.ID_ASSETCLASS
					FROM C6MartPeriodico.DETTAGLIO_ASUL ASUL
					INNER JOIN C6MartPeriodico.ASSET_PERC ASSETPERC
						ON ASSETPERC.COD_PRODOTTO = rtrim(ASUL.COD_PRODOTTO)
						AND ASUL.COD_ISIN_SOTT = ''
						AND ASSETPERC.LIVELLO = 1
					INNER JOIN C6MartPeriodico.PATRIMONIO_BF PATR_BF
						ON ASUL.COD_FISCALE=PATR_BF.COD_fISCALE
						AND ASUL.RETE=PATR_BF.RETE
						AND ASUL.id_contratto=PATR_BF.ID_CONTRATTO
					WHERE
					ASUL.RETE = @Rete
					AND ASUL.COD_FISCALE = @CodiceFiscale
					AND PATR_BF.ID_AREA NOT IN ('Pre1','Pre2','Pre')
				 UNION ALL
				 --DETTAGLIO ASUL  SKANDIA
				 SELECT     ASUL.RETE,
							ASUL.COD_FISCALE,
						CASE
							WHEN ASUL.ID_AREA IN ('Pre1', 'Pre2
