-- Schema: C6MartPeriodico
-- Stored Procedure: DM_ASSET_PERC

-- =============================================  
-- Author:  <Author,,Name>  
-- Create date: <Create Date,,>  
-- Description: <Description,,>  
-- =============================================  
CREATE procedure [C6MartPeriodico].[DM_ASSET_PERC]  
AS  
BEGIN  
  
 SET NOCOUNT ON;  
  
 DECLARE @ID_ELAB INT  
 DECLARE @TIPO_ELAB VARCHAR(1)  
  
 SET @ID_ELAB = C6MartPeriodico.GETIDELAB()  
 SET @TIPO_ELAB = C6MartPeriodico.GETTIPOELAB()  
  
 -- Log esecuzione  
 INSERT INTO LOG_ESECUZIONE  
  (Nome, Inizio, Nota)  
 VALUES (  
  'DM_ASSET_PERC',  
  GETDATE(),  
  'Elaborazione trimestrale'  
 )  
  
 TRUNCATE TABLE [C6MartPeriodico].[ASSET_PERC]  
  
 INSERT INTO [C6MartPeriodico].[ASSET_PERC]  
           ([COD_PRODOTTO]  
           ,[ID_ASSETCLASS]  
           ,[COD_ISIN]  
           ,[COD_MAF]  
           ,[COD_INTERNO]  
           ,[COD_SOTTOPRODOTTO]  
           ,[LIVELLO]  
           ,[PERC]  
           ,[ID_ELAB]  
           ,[TIPO_ELAB])  
 SELECT DISTINCT  
  CATITEMREF.CATALOGUEID AS COD_PRODOTTO,  
  LTRIM(RTRIM(ACBDENTRY.F_OID$_PASSE_B8A1E)) AS ID_ASSETCLASS,   
  CATITEMREF.COD_ISIN AS COD_ISIN,  
  CATITEMREF.COD_MAF AS COD_MAF,  
  CATITEMREF.COD_INTERNO AS COD_INTERNO,  
  CATITEMREF.COD_SOTTOPRODOTTO AS COD_SOTTOPRODOTTO,  
  LTRIM(RTRIM(ASSETCLASS.ASSETCLASSLEV)) AS LIVELLO,  
  LTRIM(RTRIM(ACBDENTRY.BDPERCENTAGE)) AS PERC,   
  @ID_ELAB AS ID_ELAB,  
  @TIPO_ELAB AS TIPO_ELAB  
 FROM  
  C6StagingPeriodico.CATITEMREF  
 INNER JOIN   
  C6StagingPeriodico.INSTRBDS  
  ON   
   INSTRBDS.F_OID$_PCATA_5DDA6 = CATITEMREF.OID$  
 INNER JOIN   
  C6StagingPeriodico.ACBDENTRY  
  ON   
   ACBDENTRY.F_PINSTRUMEN_FBCDE = INSTRBDS.OID$  
 INNER JOIN   
  C6StagingPeriodico.ASSETCLASS  
  ON   
   ASSETCLASS.OID$ = ACBDENTRY.F_OID$_PASSE_B8A1E  
  
 -- Log esecuzione  
 UPDATE  
  LOG_ESECUZIONE  
 SET  
  Fine = GETDATE(),  
  Tipo = 'INSERT',  
  Righe = @@ROWCOUNT  
 WHERE  
  Nome = 'DM_ASSET_PERC' AND  
  Inizio = (  
   SELECT  
    MAX(Inizio)  
   FROM  
    LOG_ESECUZIONE  
   WHERE  
    Nome = 'DM_ASSET_PERC'  
  )  
  
END