CREATE procedure [C6StagingPeriodico].[RP_ST_CatDivPtf]
as
begin 
	-- Log esecuzione
	INSERT INTO LOG_ESECUZIONE_PERIODICO
		(Nome, Inizio, Nota)
	VALUES (
		'RP_ST_CatDivPtf',
		GETDATE(),
		'Elaborazione Trimestrale'
	)
--drop table C6StagingPeriodico.RP_CatDivPtf
	truncate table C6StagingPeriodico.RP_CatDivPtf
INSERT INTO [C6StagingPeriodico].[RP_CatDivPtf]
           ([ChiaveProdotto]
           ,[CodSottoprodotto]
           ,[CodInterno]
           ,[CodMaf]
           ,[CodAdeguatezza]
           ,[CodIsin]
		   ,[Credito]
           ,[TipoVersamento]
           ,[RischioPrSc]
           ,[StatoProdotto]
           ,[TipoPolizza]
           ,[NomeProdotto]
           ,[Visibilita]
           ,[PrezzoInEuro]
           ,[Alberatura]
           ,[DtScadenza]
           ,[Categoria]
           ,[Istituto]
           ,[Piazza]
           ,[PrezzoInValuta]
           ,[PrezzoValuta]
           ,[Codiceadb]
           ,[TipoProdotto]
           ,[RatingObbligazioni]
           ,[RischioMinimo]
           ,[CapRisparmio]
           ,[CapMinimo]
           ,[CapMinimoValuta]
           ,[CapMinSucc]
           ,[CapMinSuccValuta]
           ,[MinRispContr]
           ,[MinRispContrValuta]
           ,[SuccRispContr]
           ,[SuccRispContrValuta]
           ,[MinComm]
           ,[MinCommValuta]
           ,[DelegaGestionale]
           ,[TipologiaPerPick]
           ,[RischioPrezzo]
           ,[RegimeFiscale]
           ,[Quotato]
           ,[ClasseDiPrezzo]
           ,[Lineefinacc]
           ,[DurataContrattuale]
           ,[RiscFinFaseAcc]
           ,[OpzRendVital]
           ,[MetaA]
           ,[MetaB]
           ,[MetaC]
           ,[DtRifPrezzo]
           ,[CodTipoContratto]
           ,[PrezzoNetto]
           ,[PrezzoNettoValuta]
           ,[DtPrezzoNetto]
           ,[CodBloomberg]
           ,[DenomUnitLink]
           ,[DtInizioValidita]
           ,[Negoziabilita]
           ,[TassoTecnico]
           ,[TassoTecnicoValuta]
           ,[CollSkandia]
           ,[CodAssetSatellite]
           ,[Mercato]
           ,[AzOb]
           ,[Complessita]
           ,[Emittente]
           ,[GaranziaDemografica]
           ,[SocietaDiGestione]
           ,[IndPrz]
           ,[Differimento]
           ,[DtPrezzo]
           ,[TipoObbligazione]
           ,[TaglioMinimo]
           ,[IsAttivoRc]
           ,[RischioCredito]
           ,[Copertura]
           ,[VarP]
           ,[Diversificazione]
           ,[FlagCoreSatellite]
           ,[PerimetroCoreSatellite]
           ,[FondoCore]
		   ,[TIP_TASSO]
		   ,[Suitability_Perimeter]
		   )
   	select  [ChiaveProdotto]
           ,[CodSottoprodotto]
           ,[CodInterno]
           ,[CodMaf]
           ,[CodAdeguatezza]
           ,[CodIsin]
		   ,[Credito]
           ,[TipoVersamento]
           ,[RischioPrSc]
           ,[StatoProdotto]
           ,[TipoPolizza]
           ,[NomeProdotto]
           ,[Visibilita]
           ,[PrezzoInEuro]
           ,[Alberatura]
           ,[DtScadenza]
           ,[Categoria]
           ,[Istituto]
           ,[Piazza]
           ,[PrezzoInValuta]
           ,[PrezzoValuta]
           ,[Codiceadb]
-- INIZIO INTERVENTO MIGRAZIONE ASU3
--           ,[TipoProdotto]
		   ,CASE WHEN [TipoProdotto] = 'ASU3' then 'ASU1' else [TipoProdotto] END as TipoProdotto
-- FINE INTERVENTO MIGRAZIONE ASU3		   
           ,[RatingObbligazioni]
           ,[RischioMinimo]
           ,[CapRisparmio]
           ,[CapMinimo]
           ,[CapMinimoValuta]
           ,[CapMinSucc]
           ,[CapMinSuccValuta]
           ,[MinRispContr]
           ,[MinRispContrValuta]
           ,[SuccRispContr]
           ,[SuccRispContrValuta]
           ,[MinComm]
           ,[MinCommValuta]
           ,[DelegaGestionale]
           ,[TipologiaPerPick]
           ,[RischioPrezzo]
           ,[RegimeFiscale]
           ,[Quotato]
           ,[ClasseDiPrezzo]
           ,[Lineefinacc]
           ,[DurataContrattuale]
           ,[RiscFinFaseAcc]
           ,[OpzRendVital]
           ,[MetaA]
           ,[MetaB]
           ,[MetaC]
           ,[DtRifPrezzo]
           ,[CodTipoContratto]
           ,[PrezzoNetto]
           ,[PrezzoNettoValuta]
           ,[DtPrezzoNetto]
           ,[CodBloomberg]
           ,[DenomUnitLink]
           ,[DtInizioValidita]
           ,[Negoziabilita]
           ,[TassoTecnico]
           ,[TassoTecnicoValuta]
           ,[CollSkandia]
           ,[CodAssetSatellite]
           ,[Mercato]
           ,[AzOb]
           ,[Complessita]
           ,[Emittente]
           ,[GaranziaDemografica]
           ,[SocietaDiGestione]
           ,[IndPrz]
           ,[Differimento]
           ,[DtPrezzo]
           ,[TipoObbligazione]
           ,[TaglioMinimo]
           ,[IsAttivoRc]
           ,[RischioCredito]
           ,[Copertura]
           ,[VarP]
           ,[Diversificazione]
           ,[FlagCoreSatellite]
           ,[PerimetroCoreSatellite]
           ,[FondoCore]
		   ,case when codtassoobbligazioni = 1 then 'Fisso'
            when codtassoobbligazioni = 2 then 'Variabile'
			else NULL end
		   ,[Suitability_Perimeter]
	--into [C6StagingPeriodico].[RP_CatDivPtf]
	from CONSUNI.CatalogoProdotti.dbo.VDivPtfConCatalogo
--UPDATE dei codici MAF Valide solo per la trimestrale di gennaio 2014
--utilizzate per martellare un errore sul catalogo in linea
	--UPDATE C6StagingPeriodico.RP_CatDivPtf
	--SET codmaf = '1407435'
	--where codmaf = '1406533'
	--UPDATE C6StagingPeriodico.RP_CatDivPtf
	--SET codmaf = '1308841'
	--where codmaf = '1396234'	
	-- Ricreo il catalogueID come era nel SEI vecchio in quanto mi serve per ricreare il position id
	/*
	Catalogueid =
		decode(codice_isin,null,'############', rpad(codice_isin,12,' ')) || 
		decode(codice_maf,null,'###############', rpad(codice_maf,15,' ')) ||
		decode(codice_interno,null,'###############', rpad(codice_interno,15,' ')) || decode(codice_sottoprodotto,null,'###############', rpad(codice_sottoprodotto,15,' '))
	*/
	UPDATE C6StagingPeriodico.RP_CatDivPtf
	SET CATALOGUEID = 
		CASE WHEN codisin = '$' or codisin is null then '############' else CONVERT(char(12),codisin) END +
		CASE WHEN codmaf = '$' or codmaf is null then '###############' else CONVERT(char(15),codmaf) END  +
		CASE WHEN codinterno = '$' or codinterno is null then '###############' else CONVERT(char(15),codinterno) END +
		CASE WHEN codsottoprodotto = '$' or codsottoprodotto is null then '###############' else CONVERT(char(15),codsottoprodotto) END
	-- modifiche estemporanee per 1 trimestrale 2016 - 5/5/2016 - lotto 2 ----------------------------------------- 
		-- 2/2/2017 ----> insert non più valida - commentata
				--insert into C6StagingPeriodico.RP_CatDivPtf
				--values ('RS_FVI11    1415480        RS             FP             ',/*pk*/ 261831 /* 9276460 9+max([CodSottoprodotto])=9276460 pk 20160506*/,'FP','RS','1415480','RS_FVI11','RS_FVI11',null,null,1,null,'FVI MS - Core Beta 30 classe K',1,10.95600,
				--9,'9999-12-31 00:00:00.000',1,1,null,10.92800,'EUR','FVCOR30','ASU1',null,null,null,500.00000,'EUR',
				--500.00000,'EUR',0,'EUR',0,'EUR',500.00000,'EUR',null,3,null,null,null,'K',null,null,null,1,null,null,null,
				--'2016-05-02 00:00:00.000',null,null,null,null,null,null,null,0,null,null,null,null,null,null,1,
				--null,null,9,null,null,null,null,null,null,null,null,null,null,1,2,1,null,null)
		-- 2/2/2017 ----> fine
		-- 3/5/2017 ----> 
		-- 3/5/2017 ----> fine
		update C6StagingPeriodico.RP_CatDivPtf
		set visibilita = 1
		where codinterno = '04806890' and
		codisin = 'IT0004806896'
	-- fine modifiche estemporanee per 1 trimestrale 2016 - 5/5/2016 - lotto 2 --------------------------------------
	-- modifiche per IV trimestrale 2016 - 20/01/2017 per far caricare nella dettaglioAsul i prodotti dei cf: ------------
	--               CRSLRN54D28C847X,MLSVNC68S45D612E,GMBDNC71D15H501H,FRRLGU70D13F257S
	 --  update C6StagingPeriodico.RP_CatDivPtf
		--set visibilita = 1
		--where codinterno = 's3' and codsottoprodotto in ('AZI73','OBE73')
		--update C6StagingPeriodico.RP_CatDivPtf
		--set visibilita = 1
		--where codinterno = '80' and codsottoprodotto in ('STR55','STR70')
	-- fine modifiche per IV trimestrale 2016 - 20/01/2017 ----------------------------------------------------------------
	-- modifiche per II trimestrale 2017 - 16/06/2017 rimediare alla segnalazione Descrizione Prodotto su Catalogo Prodotti Null+Emittente null
	-- esempio cf: F BFCVTR55C30H536X (x descr null) e RSOMRT65B41A145N (emittente null)
	update c6StagingPeriodico.RP_CatDivPtf
	set visibilita=1
	WHERE CODINTERNO = '04917940' and codisin = 'IT0004917941'
	and visibilita = 0
	update c6StagingPeriodico.RP_CatDivPtf
	set visibilita=1
	WHERE CODINTERNO = '08662950' and codisin = 'XS0501195480'  
	and visibilita = 0
	-- fine modifiche per II trimestrale 2017 - 16/06/2017 ----------------------------------------------------------------
	-- modifiche per II trimestrale 2017 - 20/07/2017 rimediare alla mancanza dell'Emittente per il prodotto censito
	update c6StagingPeriodico.RP_CatDivPtf
	set emittente='0000000055840'
	WHERE  catalogueid = 'IT0005218380###############09358630       ###############'
	-- fine modifiche per II trimestrale 2017 - 20/07/2017 ----------------------------------------------------------------
	-- modifiche per III trimestrale 2017 - 25/09/2017 rimediare alla segnalazione 'Tabella Scadenze : Descrizione Prodotto su Catalogo Prodotti Null'
	-- per i 2cf: F/BNZNLM66D21Z312D,F/MNRDTL56S70F351T
	update c6StagingPeriodico.RP_CatDivPtf
	set visibilita=1
	WHERE CODINTERNO = '03246250' 
	and visibilita = 0
	-- fine modifiche per III trimestrale 2017 - 25/09/2017 ----------------------------------------------------------------
	-- modifiche per III trimestrale 2017 - 27/10/2017 rimediare alla segnalazione 'Tabella Scadenze : Descrizione Prodotto su Catalogo Prodotti Null'
		   UPDATE a
				SET CATALOGUEID = 
				CASE WHEN codisin = '$' or codisin is null then '############' else CONVERT(char(12),codisin) END +
				CASE WHEN codmaf = '$' or codmaf is null then '###############' else CONVERT(char(15),codmaf) END  +
				CASE WHEN codinterno = '$' or codinterno is null then '###############' else CONVERT(char(15),codinterno) END +
				CASE WHEN codsottoprodotto = '$' or codsottoprodotto is null then '###############' else CONVERT(char(15),codsottoprodotto) END
			from C6StagingPeriodico.RP_CatDivPtf a
			where codinterno = 'RB' and codsottoprodotto = 'GS' AND CODMAF is null and codIsin = 'LU0433182507'
		   UPDATE a
				SET CATALOGUEID = 
				CASE WHEN codisin = '$' or codisin is null then '############' else CONVERT(char(12),codisin) END +
				CASE WHEN codmaf = '$' or codmaf is null then '###############' else CONVERT(char(15),codmaf) END  +
				CASE WHEN codinterno = '$' or codinterno is null then '###############' else CONVERT(char(15),codinterno) END +
				CASE WHEN codsottoprodotto = '$' or codsottoprodotto is null then '###############' else CONVERT(char(15),codsottoprodotto) END
			from C6StagingPeriodico.RP_CatDivPtf a
			where codinterno = 'RB' and codsottoprodotto = 'GS' AND CODMAF is null and codIsin = 'LU0782316961'
			-- fine modifiche per III trimestrale 2017 - 27/10/2017 ----------------------------------------------------------------
			---------------------------------------  modifiche per IV trimestrale 2017 - 17/1/2018  rimediare alla segnalazione
			-- 'Scrittura Tabella PROVENTI : Errata Valorizzazione a NULL del campo Descrizione Prodotto'
			-- per il cf: F/RGGVLR38S61H501U
			update C6StagingPeriodico.RP_CatDivPtf
			set visibilita = 1
			where codinterno = '04969190' and
			codisin = 'IT0004969199'
			---------------------------------------- fine modifiche per IV trimestrale 2017 - 17/1/2018
			---- modifiche per I trimestrale 2018 - Aprile 2018 - errore scarto cf CVTGNN61T64G535D
			update C6StagingPeriodico.RP_CatDivPtf
			set codsottoprodotto = 'HL02'
			where ChiaveProdotto = 314880
			----- fine modifiche per I trimestrale 2018 - Aprile 2018 - errore scarto cf CVTGNN61T64G535D
				---------------------------------------  modifiche per trimestrale 2017 - 31/10/2023  rimediare alla segnalazione
			-- 'Scrittura Tabella PROVENTI : Errata Valorizzazione a NULL del campo Descrizione Prodotto'
			-- per il cf: F/RGGVLR38S61H501U
			update C6StagingPeriodico.RP_CatDivPtf
			set visibilita = 1
			where ChiaveProdotto='233943'
			-- FIX 20250318 PER LINEE GP Ego Personal
			UPDATE C6StagingPeriodico.RP_CatDivPtf
			SET RischioCredito='3'
			where NomeProdotto like '%gp ego personal%'
			and Lineefinacc = 'pers'
	-- Log esecuzione
	UPDATE
		LOG_ESECUZIONE_PERIODICO
	SET
		Fine = GETDATE(),
		Tipo = 'INSERT',
		Righe = @@ROWCOUNT
	WHERE
		Nome = 'RP_ST_CatDivPtf' AND
		Inizio = (
			SELECT
				MAX(Inizio)
			FROM
				LOG_ESECUZIONE_PERIODICO
			WHERE
				Nome = 'RP_ST_CatDivPtf'
		)
end