-- =============================================
-- 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>
-- =============================================
--[C6MartPeriodico].[DM_CAPPROT]
CREATE procedure [C6MartPeriodico].[DM_CAPPROT_BKP]
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
		(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]
	)
	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,
	'Quota e controvalore protetti'  AS DES_PROT,
	PREZZOPROT AS QUOTA_PROT,
--	CTRVIMPPROT/ PREZZOPROT AS NUMEROQUOTE_PROT,
	QUOTE AS NUMEROQUOTE_PROT, 
	CTRVIMPPROT AS CONTROVALORE_PROT
	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,
	'Quota e controvalore protetti'  AS DES_PROT,
	PREZZOPROT AS QUOTA_PROT,
--	CTRVIMPPROT/ PREZZOPROT AS NUMEROQUOTE_PROT, 
	QUOTE AS NUMEROQUOTE_PROT, 
	CTRVIMPPROT AS CONTROVALORE_PROT
	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,
	'Quota e controvalore protetti'  AS DES_PROT,
	PREZZOPROT AS QUOTA_PROT,
--	CTRVIMPPROT/ PREZZOPROT AS NUMEROQUOTE_PROT,
	QUOTE AS NUMEROQUOTE_PROT, 	 
	CTRVIMPPROT AS CONTROVALORE_PROT
	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,
	'Quota e controvalore protetti'  AS DES_PROT,
	PREZZOPROT AS QUOTA_PROT,
--	CTRVIMPPROT/ PREZZOPROT AS NUMEROQUOTE_PROT, 
	QUOTE AS NUMEROQUOTE_PROT, 
	CTRVIMPPROT AS CONTROVALORE_PROT
	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
	SET
		Fine = GETDATE(),
		Tipo = 'INSERT',
		Righe = @@ROWCOUNT
	WHERE
		Nome = 'DM_CAPPROT' AND
		Inizio = (
			SELECT
				MAX(Inizio)
			FROM
				LOG_ESECUZIONE
			WHERE
				Nome = 'DM_CAPPROT'
		)
END