-- Schema: C6MartPeriodico
-- Stored Procedure: Popola_FD200DistribuzioneAssetClass_PTFRibilanciato








  
  
--[C6martPeriodico].[Popola_S148DistribuzioneAssetClass] 'F','LRNRMR33D51C166I'  
CREATE         procedure [C6MartPeriodico].[Popola_FD200DistribuzioneAssetClass_PTFRibilanciato]  
 -- Add the parameters for the stored procedure here  
-- @Rete char(1),   
-- @CodiceFiscale varchar(16)  
AS  
BEGIN   

truncate table c6martperiodico.TB_FD200DistribuzioneAssetClass_PTFRibilanciato  
INSERT INTO c6martperiodico.TB_FD200DistribuzioneAssetClass_PTFRibilanciato
 select       rete,  
        cod_fiscale,  
        CASE rete  
   WHEN 'S' THEN 'Sanpaolo Invest'  
   WHEN 'F' THEN 'Fideuram'  
   ELSE 'IW Private Investments'
  END AS Banca,  
  a.ORDINAMENTO,  
  AssetClassId,  
  AssetClassName, 
  a.chiaveptfmod,
  SUM(Controvalore) As Controvalore,  
        --SUM(CONTROVALORE) / Totale As Percentuale,  
        SUM(CONTROVALORE) / Totale * 100 As Percentuale,  
        Totale,
		isnull(ptf.percentuale ,0.00) as Percentuale_Modello,
		 VAR_PROG
		
FROM  
(  
  
  
SELECT  rete,  
        cod_fiscale,  
  ASSETCLASS.ORDINAMENTO,  
  VALORIASSET.ID_ASSETCLASS AS AssetClassId,  
  ASSETCLASS.DESCRIZIONE AS AssetClassName,  
  CAST(VALORIASSET.CONTROVALORE AS DECIMAL(15,2)) AS Controvalore,  
  --ROUND(VALORIASSET.CONTROVALORE / SUM(VALORIASSET.CONTROVALORE) OVER (PARTITION BY 'Totale') * 100, 2) AS Percentuale,  
  cast(ROUND(SUM(Controvalore) OVER (PARTITION BY 'Totale',rete,cod_fiscale),2)  as decimal(19,5))  AS Totale  ,
  chiaveptfmod,
  VAR_PROG
 FROM (  
          SELECT   
          VAL.RETE,  
          VAL.COD_FISCALE,  
          SUM(CONTROVALORE) AS CONTROVALORE,  
          ID_ASSETCLASS  ,
		   chiaveptfmod,
		    VAR_PROG
          FROM  
          (--V Escludo gli ASU2 che essendo skandia vanno gestiti in modo particolare  
     SELECT  
      PATR_BF.RETE,  
      PATR_BF.COD_FISCALE,  
      (PATR_BF.CTV * ISNULL(ASSETPERC.PERC, 1)) AS CONTROVALORE,  
      ISNULL(ASSETPERC.ID_ASSETCLASS, 'AL') AS ID_ASSETCLASS ,
	    chiaveptfmod,
		   RISCHIO_AGGR_PROG.VAR_PERC_PTF as var_prog
     FROM C6MartPeriodico.PATRIMONIO_BF AS PATR_BF  
      INNER JOIN C6MartPeriodico.ASSET_PERC AS ASSETPERC  
       ON PATR_BF.COD_PRODOTTO = ASSETPERC.COD_PRODOTTO  
	   LEFT JOIN C6MartPeriodico.RISCHIO_AGGREGATO RISCHIO_AGGR_PROG
	ON PATR_BF.RETE= RISCHIO_AGGR_PROG.RETE
	AND PATR_BF.COD_FISCALE= RISCHIO_AGGR_PROG.COD_FISCALE
	AND RISCHIO_AGGR_PROG.COD_AGGREG = 'RISFIN|PIRAMIDE|' + LEFT(PATR_BF.ID_AREA,3) + '|' + PATR_BF.NOME_PROGETTO + '|'
						 + cast (Patr_BF.ordinamento_progetto as varchar)
	--   inner join
	--C6StagingPeriodico.RP_Progetto_Robo robo
	--on robo.chiaveProgetto=PATR_BF.CHIAVE_PROGETTO
     WHERE  
--inizio interventi OMNIA  
--      PATR_BF.ID_AREA NOT IN ('Cc','Pre1','Pre2','Pre')  
      PATR_BF.ID_AREA NOT IN ('SELF','Cc','Pre1','Pre2','Pre')  
--fine interventi OMNIA        
      AND ASSETPERC.LIVELLO = 2  
      --AND PATR_BF.TIPO_PRODOTTO NOT IN ('ASUL','CC')  
      AND PATR_BF.TIPO_PRODOTTO NOT IN ('ASUL','ASU2')  
	  and PATR_BF.NOME_PROGETTO like '%Direct Evo%'
      --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,  
                            ASUL.CTV*ASSETPERC.PERC as Controvalore,  
       ASSETPERC.ID_ASSETCLASS  ,
	    patr_bf.chiaveptfmod,
		 RISCHIO_AGGR_PROG.VAR_PERC_PTF as var_prog
     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 = 2  
     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 
	  LEFT J