﻿-- =============================================  
-- Author:  <Federica Cianfa>  
-- Create date: <18/11/2014, Pomezia>  
-- Description: <La sp legge i dati, rispettivamente, dalle seguenti tb (scaricate da DB2):   
-- C6StagingPeriodico.WSEIGP e C6StagingPeriodico.WSEIUL, e con tali dati popola la tb dbo.C6MartPeriodico.CAPPROT  
--N.B.: Le tb sono in join con la tb c6stagingperiodico.rp_catalogoprodotti, ciò è dettato dalla necessità di reperire il nome del fondo>  
-- =============================================  
-- =============================================  
--   
-- MOd: <26/11/2015, Pomezia>  
-- Description: Aggiunto il campo 'des_prod_tit' per modifiche E-FOI80  
-- =============================================  
--[C6MartPeriodico].[DM_CAPPROT]  
CREATE procedure [C6MartPeriodico].[DM_CAPPROT_20171129]  
AS  
BEGIN  
SET NOCOUNT ON;  
DECLARE @Par_percentuale INT  
SET @Par_percentuale = 80  
DECLARE @DataFineTrim VARCHAR(8)  
SET @DataFineTrim = c6martperiodico.getTrimestre2(getDate(),0)  
 -- Log esecuzione  
 INSERT INTO LOG_ESECUZIONE_PERIODICO  
  (Nome, Inizio, Nota)  
 VALUES (  
  'DM_CAPPROT',  
  GETDATE(),  
  'Elaborazione trimestrale'  
 )  
 TRUNCATE TABLE C6MartPeriodico.CAPPROT  
 INSERT INTO C6MartPeriodico.CAPPROT  
 ([RETE]  
 ,[CODFIS]  
 ,[DES_PROD]  
 ,[COD_CONF]  
 ,[QUOTA]  
 ,[NUMEROQUOTE]  
 ,[CONTROVALORE]  
 ,[DATARIF]  
 ,[DES_MAX]  
 ,[QUOTA_MAX]  
 ,[QUOTA_MAX_PERC]  
 ,[DATARIF_MAX]  
 ,[DES_PROT]  
 ,[QUOTA_PROT]  
 ,[NUMEROQUOTE_PROT]  
 ,[CONTROVALORE_PROT]  
 ,[DES_PROD_TIT]  
 )  
 select --top 10  
 RETE AS RETE,  
    CODFIS AS CODFIS,  
    CAT.NOMEPRODOTTO as DES_PROD,  
 CODCONF AS COD_CONF,  
 PREZZO AS QUOTA,  
-- CTV/ PREZZO AS NUMEROQUOTE,   
 QUOTE AS NUMEROQUOTE,   
 CTV AS CONTROVALORE,  
 @DataFineTrim AS DATARIF,   
 'Quota massima' AS DES_MAX,  
 PREZZOMAX AS QUOTA_MAX,  
 @Par_percentuale AS QUOTA_MAX_PERC,   
 CONVERT(datetime, CONVERT(varchar,CONVERT(int,DTPREZZOMAX)), 0) AS DATARIF_MAX,  
 --  E-FOI80  
 --'Quota e controvalore protetti'  AS DES_PROT,  
 'Quota e controvalore protetti *'  AS DES_PROT,  
 --  fine E-FOI80  
 PREZZOPROT AS QUOTA_PROT,  
-- CTRVIMPPROT/ PREZZOPROT AS NUMEROQUOTE_PROT,  
 QUOTE AS NUMEROQUOTE_PROT,   
 CTRVIMPPROT AS CONTROVALORE_PROT,  
 -- Campo aggiunto per E-FOI80  
 'Interfund Crescita Protetta 80' AS DES_PROD_TIT  
 FROM C6StagingPeriodico.WSEIUL UL  
 LEFT OUTER join c6stagingperiodico.rp_catalogoprodotti CAT  
    on  UL.codint=CAT.codinterno  
    and UL.subprod=CAT.codsottoprodotto  
    and UL.isin=ISNULL(CAT.codisin,'')  
    and CAT.visibilita = 1  
 WHERE UL.DTTRIM = @DataFineTrim  
 and PREZZOMAX <> 0.000   
 AND UL.isin <> ''  
 union  
 select --top 10  
 RETE AS RETE,  
    CODFIS AS CODFIS,  
    CAT.NOMEPRODOTTO as DES_PROD,  
 CODCONF AS COD_CONF,  
 PREZZO AS QUOTA,  
-- CTV/ PREZZO AS NUMEROQUOTE,   
 QUOTE AS NUMEROQUOTE,   
 CTV AS CONTROVALORE,  
 @DataFineTrim AS DATARIF,   
 'Quota massima' AS DES_MAX,  
 PREZZOMAX AS QUOTA_MAX,  
 @Par_percentuale AS QUOTA_MAX_PERC,   
 CONVERT(datetime, CONVERT(varchar,CONVERT(int,DTPREZZOMAX)), 0)  AS DATARIF_MAX,  
 --  E-FOI80  
 --'Quota e controvalore protetti'  AS DES_PROT,  
 'Quota e controvalore protetti *'  AS DES_PROT,  
 --  fine E-FOI80  
 PREZZOPROT AS QUOTA_PROT,  
-- CTRVIMPPROT/ PREZZOPROT AS NUMEROQUOTE_PROT,   
 QUOTE AS NUMEROQUOTE_PROT,   
 CTRVIMPPROT AS CONTROVALORE_PROT,  
 -- Campo aggiunto per E-FOI80  
 'Interfund Crescita Protetta 80' AS DES_PROD_TIT  
 FROM C6StagingPeriodico.WSEIUL UL  
    LEFT OUTER join c6stagingperiodico.rp_catalogoprodotti CAT  
    on  UL.codint=CAT.codinterno  
    and UL.subprod=CAT.codsottoprodotto  
    and UL.isinFIT=ISNULL(CAT.codisin,'')  
    and CAT.visibilita = 1  
 WHERE UL.DTTRIM = @DataFineTrim  
 and PREZZOMAX <> 0.000   
 AND UL.isinFIT <> ''  
 union  
 select --top 10  
 RETE AS RETE,  
    CODFIS AS CODFIS,  
    CAT.NOMEPRODOTTO as DES_PROD,  
 CODCONF AS COD_CONF,  
 PREZZO AS QUOTA,  
-- CTV/ PREZZO AS NUMEROQUOTE,   
 QUOTE AS NUMEROQUOTE,   
 CTV AS CONTROVALORE,  
 @DataFineTrim AS DATARIF,   
 'Quota massima' AS DES_MAX,  
 PREZZOMAX AS QUOTA_MAX,  
 @Par_percentuale AS QUOTA_MAX_PERC,   
 CONVERT(datetime, CONVERT(varchar,CONVERT(int,DTPREZZOMAX)), 0)  AS DATARIF_MAX,  
 --  E-FOI80  
 --'Quota e controvalore protetti'  AS DES_PROT,  
 'Quota e controvalore protetti *'  AS DES_PROT,  
 --  fine E-FOI80  
 PREZZOPROT AS QUOTA_PROT,  
-- CTRVIMPPROT/ PREZZOPROT AS NUMEROQUOTE_PROT,  
 QUOTE AS NUMEROQUOTE_PROT,     
 CTRVIMPPROT AS CONTROVALORE_PROT,  
 -- Campo aggiunto per E-FOI80  
 'Interfund Crescita Protetta 80' AS DES_PROD_TIT  
 FROM C6StagingPeriodico.WSEIUL UL  
    LEFT OUTER join c6stagingperiodico.rp_catalogoprodotti CAT  
    on  UL.codint=CAT.codinterno  
    and UL.subprod=CAT.codsottoprodotto  
    and CAT.visibilita = 1  
 WHERE UL.DTTRIM = @DataFineTrim  
 and PREZZOMAX <> 0.000   
 AND UL.isin = ''  
 AND UL.isinFIT = ''  
 union  
 select --top 10  
 RETE AS RETE,  
    CODFIS AS CODFIS,  
    CAT.NOMEPRODOTTO as DES_PROD,  
 CODCONF AS COD_CONF,  
 PREZZO AS QUOTA,  
-- CTV/ PREZZO AS NUMEROQUOTE,   
 QUOTE AS NUMEROQUOTE,   
 CTV AS CONTROVALORE,  
 @DataFineTrim AS DATARIF,   
 'Quota massima' AS DES_MAX,  
 PREZZOMAX AS QUOTA_MAX,  
 @Par_percentuale AS QUOTA_MAX_PERC,   
 CONVERT(datetime, CONVERT(varchar,CONVERT(int,DTPREZZOMAX)), 0)  AS DATARIF_MAX,  
 --  E-FOI80  
 --'Quota e controvalore protetti'  AS DES_PROT,  
 'Quota e controvalore protetti *'  AS DES_PROT,  
 --  fine E-FOI80  
 PREZZOPROT AS QUOTA_PROT,  
-- CTRVIMPPROT/ PREZZOPROT AS NUMEROQUOTE_PROT,   
 QUOTE AS NUMEROQUOTE_PROT,   
 CTRVIMPPROT AS CONTROVALORE_PROT,  
 -- Campo aggiunto per E-FOI80  
 'Interfund Crescita Protetta 80' AS DES_PROD_TIT  
 FROM C6StagingPeriodico.WSEIGP GP  
    LEFT OUTER join c6stagingperiodico.rp_catalogoprodotti CAT  
    on  GP.isin=ISNULL(CAT.codisin,'')  
    and CAT.tipoprodotto = 'GP'  
    and CAT.visibilita = 1  
  WHERE GP.DTTRIM = @DataFineTrim  
 and PREZZOMAX <> 0.000   
 -- Log esecuzione  
 UPDATE  
  LOG_ESECUZIONE_PERIODICO  
 SET  
  Fine = GETDATE(),  
  Tipo = 'INSERT',  
  Righe = @@ROWCOUNT  
 WHERE  
  Nome = 'DM_CAPPROT' AND  
  Inizio = (  
   SELECT  
    MAX(Inizio)  
   FROM  
    LOG_ESECUZIONE_PERIODICO  
   WHERE  
    Nome = 'DM_CAPPROT'  
  )  
END