--[C6martPeriodico].[Popola_S148DistribuzioneAssetClass] 'F','LRNRMR33D51C166I'  
CREATE procedure [C6MartPeriodico].[Popola_S148DistribuzioneAssetClass]  
 -- Add the parameters for the stored procedure here  
-- @Rete char(1),   
-- @CodiceFiscale varchar(16)  
AS  
BEGIN   
truncate table c6martperiodico.TB_S148DistribuzioneAssetClass  
INSERT INTO c6martperiodico.TB_S148DistribuzioneAssetClass  
--SELECT  @Rete as Rete, @CodiceFiscale as CodiceFiscale,  
--  CASE @Rete  
--   WHEN 'S' THEN 'Sanpaolo Invest'  
--   ELSE 'Banca Fideuram'   
--  END AS Banca,  
  select       rete,  
        cod_fiscale,  
        CASE rete  
   WHEN 'S' THEN 'Sanpaolo Invest'  
   WHEN 'F' THEN 'Fideuram'  
   ELSE 'IW Private Investments'
  END AS Banca,  
  ORDINAMENTO,  
  AssetClassId,  
  AssetClassName,  
  SUM(Controvalore) As Controvalore,  
        --SUM(CONTROVALORE) / Totale As Percentuale,  
        SUM(CONTROVALORE) / Totale * 100 As Percentuale,  
        Totale  
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  
 FROM (  
          SELECT   
          VAL.RETE,  
          VAL.COD_FISCALE,  
          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,  
      (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  
--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.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  
     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  
     WHERE  
     --ASUL.RETE = @Rete  
     --AND ASUL.COD_FISCALE = @CodiceFiscale  
      PATR_BF.ID_AREA NOT IN ('Pre1','Pre2','Pre')  
     UNION ALL  
     --DETTAGLIO ASUL  SKANDIA  
     SELECT     ASUL.RETE,  
       ASUL.COD_FISCALE,  
       ASUL.CTV*ASSETPERC.PERC as Controvalore,  
       ASSETPERC.ID_ASSETCLASS  
     FROM C6MartPeriodico.PATRIMONIO_BF ASUL  
     INNER JOIN C6MartPeriodico.ASSET_PERC ASSETPERC  
      ON ASSETPERC.COD_ISIN = rtrim(ASUL.ISIN)  
      AND ASSETPERC.COD_MAF = rtrim(ASUL.COD_MAF)  
      AND ASSETPERC.COD_INTERNO = rtrim(ASUL.COD_INTERNO)  
      AND rtrim(ASSETPERC.COD_SOTTOPRODOTTO) = ASUL.COD_SOTTOPRODOTTO  
      AND rtrim(ASSETPERC.COD_PRODOTTO) = ASUL.COD_PRODOTTO  
      AND ASSETPERC.LIVELLO = 2  
     WHERE  
      --ASUL.RETE =@Rete  
      --AND ASUL.COD_FISCALE = @CodiceFiscale  
      --V gli SKANDIA sono a livello di patrimonio_bf con tipo prod ASU2  
       ASUL.tipo_Prodotto = 'ASU2'  
      AND ASUL.ID_AREA NOT IN ('Pre1','Pre2','Pre')  
    ) val  
           where Controvalore >0  
   GROUP BY   
   VAL.RETE,  
   val.COD_FISCALE,  
   VAL.ID_ASSETCLASS  
 UNION ALL  
 /* nuovo */  
  SELECT   
          VAL.RETE,  
          VAL.COD_FISCALE,  
          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,  
      (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  IN ('Pre1','Pre2','Pre')  
      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.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  
     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  
     WHERE  
     --ASUL.RETE = @Rete  
     --AND ASUL.COD_FISCALE = @CodiceFiscale  
      PATR_BF.ID_AREA IN ('Pre1','Pre2','Pre')  
     UNION ALL  
     --DETTAGLIO ASUL  SKANDIA  
     SELECT     ASUL.RETE,  
       ASUL.COD_FISCALE,  
       ASUL.CTV*ASSETPERC.PERC as Controvalore,  
       ASSETPERC.ID_ASSETCLASS  
     FROM C6MartPeriodico.PATRIMONIO_BF ASUL  
     INNER JOIN C6MartPeriodico.ASSET_PERC ASSETPERC  
      ON ASSETPERC.COD_ISIN = rtrim(ASUL.ISIN)  
      AND ASSETPERC.COD_MAF = rtrim(ASUL.COD_MAF)  
      AND ASSETPERC.COD_INTERNO = rtrim(ASUL.COD_INTERNO)  
      AND rtrim(ASSETPERC.COD_SOTTOPRODOTTO) = ASUL.COD_SOTTOPRODOTTO  
      AND rtrim(ASSETPERC.COD_PRODOTTO) = ASUL.COD_PRODOTTO  
      AND ASSETPERC.LIVELLO = 2  
     WHERE  
 --     ASUL.RETE =@Rete  
 --     AND ASUL.COD_FISCALE = @CodiceFiscale  
      --V gli SKANDIA sono a livello di patrimonio_bf con tipo prod ASU2  
       ASUL.tipo_Prodotto = 'ASU2'  
      AND ASUL.ID_AREA  IN ('Pre1','Pre2','Pre')  
    ) val  
           where Controvalore >0  
   GROUP BY   
   VAL.RETE,  
   val.COD_FISCALE,  
   VAL.ID_ASSETCLASS  
    )  
 VALORIASSET  
 INNER JOIN C6MartPeriodico.ASSETCLASS AS ASSETCLASS  
  ON ASSETCLASS.ID_ASSETCLASS = VALORIASSET.ID_ASSETCLASS  
-- WHERE  
--  VALORIASSET.RETE =@Rete  
--  AND VALORIASSET.COD_FISCALE = @CodiceFiscale  
) a  
Group By rete,cod_fiscale,ORDINAMENTO, AssetClassId, AssetClassName, Totale  
 ORDER BY ORDINAMENTO  
END  
--USE [C6StampeCentralizzate]
--GO
--/****** Object:  StoredProcedure [C6MartPeriodico].[Popola_S148DistribuzioneAssetClass]    Script Date: 10/02/2022 16:42:22 ******/
--SET ANSI_NULLS ON
--GO
--SET QUOTED_IDENTIFIER ON
--GO
----[C6martPeriodico].[Popola_S148DistribuzioneAssetClass] 'F','LRNRMR33D51C166I'  
--ALTER procedure [C6MartPeriodico].[Popola_S148DistribuzioneAssetClass]  
-- -- Add the parameters for the stored procedure here  
---- @Rete char(1),   
---- @CodiceFiscale varchar(16)  
--AS  
--BEGIN   
--truncate table c6martperiodico.TB_S148DistribuzioneAssetClass  
--INSERT INTO c6martperiodico.TB_S148DistribuzioneAssetClass  
----SELECT  @Rete as Rete, @CodiceFiscale as CodiceFiscale,  
----  CASE @Rete  
----   WHEN 'S' THEN 'Sanpaolo Invest'  
----   ELSE 'Banca Fideuram'   
----  END AS Banca,  
--  select       rete,  
--        cod_fiscale,  
--        CASE rete  
--   WHEN 'S' THEN 'Sanpaolo Invest'  
--   ELSE 'Fideuram'   
--  END AS Banca,  
--  ORDINAMENTO,  
--  AssetClassId,  
--  AssetClassName,  
--  SUM(Controvalore) As Controvalore,  
--        --SUM(CONTROVALORE) / Totale As Percentuale,  
--        SUM(CONTROVALORE) / Totale * 100 As Percentuale,  
--        Totale  
--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  
-- FROM (  
--          SELECT   
--          VAL.RETE,  
--          VAL.COD_FISCALE,  
--          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,  
--      (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  
----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.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  
--     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  
--     WHERE  
--     --ASUL.RETE = @Rete  
--     --AND ASUL.COD_FISCALE = @CodiceFiscale  
--      PATR_BF.ID_AREA NOT IN ('Pre1','Pre2','Pre')  
--     UNION ALL  
--     --DETTAGLIO ASUL  SKANDIA  
--     SELECT     ASUL.RETE,  
--       ASUL.COD_FISCALE,  
--       ASUL.CTV*ASSETPERC.PERC as Controvalore,  
--       ASSETPERC.ID_ASSETCLASS  
--     FROM C6MartPeriodico.PATRIMONIO_BF ASUL  
--     INNER JOIN C6MartPeriodico.ASSET_PERC ASSETPERC  
--      ON ASSETPERC.COD_ISIN = rtrim(ASUL.ISIN)  
--      AND ASSETPERC.COD_MAF = rtrim(ASUL.COD_MAF)  
--      AND ASSETPERC.COD_INTERNO = rtrim(ASUL.COD_INTERNO)  
--      AND rtrim(ASSETPERC.COD_SOTTOPRODOTTO) = ASUL.COD_SOTTOPRODOTTO  
--      AND rtrim(ASSETPERC.COD_PRODOTTO) = ASUL.COD_PRODOTTO  
--      AND ASSETPERC.LIVELLO = 2  
--     WHERE  
--      --ASUL.RETE =@Rete  
--      --AND ASUL.COD_FISCALE = @CodiceFiscale  
--      --V gli SKANDIA sono a livello di patrimonio_bf con tipo prod ASU2  
--       ASUL.tipo_Prodotto = 'ASU2'  
--      AND ASUL.ID_AREA NOT IN ('Pre1','Pre2','Pre')  
--    ) val  
--           where Controvalore >0  
--   GROUP BY   
--   VAL.RETE,  
--   val.COD_FISCALE,  
--   VAL.ID_ASSETCLASS  
-- UNION ALL  
-- /* nuovo */  
--  SELECT   
--          VAL.RETE,  
--          VAL.COD_FISCALE,  
--          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,  
--      (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  IN ('Pre1','Pre2','Pre')  
--      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.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  
--     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  
--     WHERE  
--     --ASUL.RETE = @Rete  
--     --AND ASUL.COD_FISCALE = @CodiceFiscale  
--      PATR_BF.ID_AREA IN ('Pre1','Pre2','Pre')  
--     UNION ALL  
--     --DETTAGLIO ASUL  SKANDIA  
--     SELECT     ASUL.RETE,  
--       ASUL.COD_FISCALE,  
--       ASUL.CTV*ASSETPERC.PERC as Controvalore,  
--       ASSETPERC.ID_ASSETCLASS  
--     FROM C6MartPeriodico.PATRIMONIO_BF ASUL  
--     INNER JOIN C6MartPeriodico.ASSET_PERC ASSETPERC  
--      ON ASSETPERC.COD_ISIN = rtrim(ASUL.ISIN)  
--      AND ASSETPERC.COD_MAF = rtrim(ASUL.COD_MAF)  
--      AND ASSETPERC.COD_INTERNO = rtrim(ASUL.COD_INTERNO)  
--      AND rtrim(ASSETPERC.COD_SOTTOPRODOTTO) = ASUL.COD_SOTTOPRODOTTO  
--      AND rtrim(ASSETPERC.COD_PRODOTTO) = ASUL.COD_PRODOTTO  
--      AND ASSETPERC.LIVELLO = 2  
--     WHERE  
-- --     ASUL.RETE =@Rete  
-- --     AND ASUL.COD_FISCALE = @CodiceFiscale  
--      --V gli SKANDIA sono a livello di patrimonio_bf con tipo prod ASU2  
--       ASUL.tipo_Prodotto = 'ASU2'  
--      AND ASUL.ID_AREA  IN ('Pre1','Pre2','Pre')  
--    ) val  
--           where Controvalore >0  
--   GROUP BY   
--   VAL.RETE,  
--   val.COD_FISCALE,  
--   VAL.ID_ASSETCLASS  
--    )  
-- VALORIASSET  
-- INNER JOIN C6MartPeriodico.ASSETCLASS AS ASSETCLASS  
--  ON ASSETCLASS.ID_ASSETCLASS = VALORIASSET.ID_ASSETCLASS  
---- WHERE  
----  VALORIASSET.RETE =@Rete  
----  AND VALORIASSET.COD_FISCALE = @CodiceFiscale  
--) a  
--Group By rete,cod_fiscale,ORDINAMENTO, AssetClassId, AssetClassName, Totale  
-- ORDER BY ORDINAMENTO  
--END