-- Schema: C6MartPeriodico
-- Stored Procedure: DM_ANAG_PRODOTTI

-- =============================================  
-- Author:  <Author,,Name>  
-- Create date: <Create Date,,>  
-- Description: <Description,,>  
-- =============================================  
CREATE procedure [C6MartPeriodico].[DM_ANAG_PRODOTTI]  
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_ANAG_PRODOTTI',  
  GETDATE(),  
  'Elaborazione trimestrale'  
 )  
  
 TRUNCATE TABLE [C6MartPeriodico].ANAG_PRODOTTI  
   
 INSERT INTO [C6MartPeriodico].[ANAG_PRODOTTI]  
           ([COD_PRODOTTO]  
           ,[COD_ISIN]  
           ,[PAESE]  
           ,[ID_AREA]  
           ,[CAT_PRODOTTO]  
           ,[TIPO_PRODOTTO]  
           ,[DESCR_PRODOTTO]  
           ,[DIV_QUOTAZIONE]  
           ,[DIV_REGOLAMENTO]  
           ,[ID_EMITTENTE]  
           ,[MERCATO_CONTRATT]  
           ,[COD_MAF]  
           ,[RATING]  
           ,[COD_ADEGUATEZZA]  
           ,[COD_SOTTOPRODOTTO]  
           ,[COD_INTERNO]  
           ,[ID_ELAB]  
           ,[TIPO_ELAB]  
           ,[DT_SCADENZA]  
           ,[TIPO_TASSO]  
           ,[TIPO_EMITTENTE]   
           ,[FLG_OB]  
           )  
 SELECT   
  CATITEMREF.CATALOGUEID AS COD_PRODOTTO,  
  CATITEMREF.COD_ISIN AS COD_ISIN,  
  CATITEMREF.COUNTRY AS PAESE,  
  '' AS ID_AREA,  
  (SELECT CASE SUBSTRING(CATITEMREF.TYPE$_BCATAL_FC317,64,3)  
   WHEN 'Ges' THEN 'Gestito Finanziario'  
   WHEN 'Amm' THEN 'Amministrato'  
   WHEN 'Ass' THEN 'Assicurativo'  
  END) AS CAT_PRODOTTO,  
  CATITEMREF.TIPOPRODOTTO AS TIPO_PRODOTTO,  
  CATITEMREF.CATALOGUENAME AS DESCR_PRODOTTO,  
  CATITEMREF.PRODUCTCURRENCY AS DIV_QUOTAZIONE,  
  NULL AS DIV_REGOLAMENTO,  
  NULL AS ID_EMITTENTE,  
  CATITEMREF.PIAZZA AS MERCATO_CONTRATT,  
  CATITEMREF.COD_MAF AS COD_MAF,  
  CATITEMREF.RATOBBLIG AS RATING,  
  CATITEMREF.COD_ADEGUATEZZA AS COD_ADEGUATEZZA,  
  CATITEMREF.COD_SOTTOPRODOTTO AS COD_SOTTOPRODOTTO,  
  CATITEMREF.COD_INTERNO AS COD_INTERNO,  
  @ID_ELAB AS ID_ELAB,  
  @TIPO_ELAB AS TIPO_ELAB,  
  CATITEMREF.expirationdate AS DT_SCADENZA,  
        CASE   
   WHEN CATITEMREF.TIP_TASSO = '0 CPN' THEN 'Zero Coupon'  
   ELSE CATITEMREF.TIP_TASSO   
  END AS TIPO_TASSO,  
   CATITEMREF.TIP_EMITTENTE AS TIPO_EMITTENTE,  
  CASE WHEN TYPE$_BCATAL_FC317 like  '%.Titoli.Ob%'  THEN 'S'     
   ELSE 'N'  
  END AS FLG_OB         
 FROM C6STAGINGPERIODICO.CATITEMREF  
 INNER JOIN (  
  SELECT CATITEMREF.CATALOGUEID, MAX(OID$) AS OID  
  FROM C6STAGINGPERIODICO.CATITEMREF  
  GROUP BY CATITEMREF.CATALOGUEID  
 ) DOPPICATITEMREF ON CATITEMREF.OID$ = DOPPICATITEMREF.OID  
  
 -- Log esecuzione  
 UPDATE  
  LOG_ESECUZIONE  
 SET  
  Fine = GETDATE(),  
  Tipo = 'INSERT',  
  Righe = @@ROWCOUNT  
 WHERE  
  Nome = 'DM_ANAG_PRODOTTI' AND  
  Inizio = (  
   SELECT  
    MAX(Inizio)  
   FROM  
    LOG_ESECUZIONE  
   WHERE  
    Nome = 'DM_ANAG_PRODOTTI'  
  )  
  
END  
  

