CREATE procedure [C6StagingPeriodico].[RP_ST_CatalogoProdotti_20170720]
as
begin 
	-- Log esecuzione
	INSERT INTO LOG_ESECUZIONE
		(Nome, Inizio, Nota)
	VALUES (
		'RP_ST_CatalogoProdotti',
		GETDATE(),
		'Elaborazione Trimestrale'
	)
--drop table C6StagingPeriodico.RP_CatalogoProdotti
	truncate table C6StagingPeriodico.RP_CatalogoProdotti
INSERT INTO [C6StagingPeriodico].[RP_CatalogoProdotti]
           ([ChiaveProdotto]
           ,[CodSottoprodotto]
           ,[CodInterno]
           ,[CodMaf]
           ,[CodAdeguatezza]
           ,[CodIsin]
           ,[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])
   	select  [ChiaveProdotto]
           ,[CodSottoprodotto]
           ,[CodInterno]
           ,[CodMaf]
           ,[CodAdeguatezza]
           ,[CodIsin]
           ,[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]
	--into [C6StagingPeriodico].[RP_CatalogoProdotti]
	from [CONSUNI].CatalogoProdotti.dbo.CatalogoProdotti
--UPDATE dei codici MAF Valide solo per la trimestrale di gennaio 2014
--utilizzate per martellare un errore sul catalogo in linea
	--UPDATE C6StagingPeriodico.RP_CatalogoProdotti
	--SET codmaf = '1407435'
	--where codmaf = '1406533'
	--UPDATE C6StagingPeriodico.RP_CatalogoProdotti
	--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_CatalogoProdotti
	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_CatalogoProdotti
				--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 ----> 
				insert into C6StagingPeriodico.RP_CatalogoProdotti
				values ('RS_FVI11    1415480        RS             FP             ',294126,'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)
		-- 3/5/2017 ----> fine
		update C6StagingPeriodico.RP_CatalogoProdotti
		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_CatalogoProdotti
		--set visibilita = 1
		--where codinterno = 's3' and codsottoprodotto in ('AZI73','OBE73')
		--update C6StagingPeriodico.RP_CatalogoProdotti
		--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_CatalogoProdotti
	set visibilita=1
	WHERE CODINTERNO = '04917940' and codisin = 'IT0004917941'
	and visibilita = 0
	update c6StagingPeriodico.RP_CatalogoProdotti
	set visibilita=1
	WHERE CODINTERNO = '08662950' and codisin = 'XS0501195480'  
	and visibilita = 0
	-- fine modifiche per II trimestrale 2017 - 16/06/2017 ----------------------------------------------------------------
	-- Log esecuzione
	UPDATE
		LOG_ESECUZIONE
	SET
		Fine = GETDATE(),
		Tipo = 'INSERT',
		Righe = @@ROWCOUNT
	WHERE
		Nome = 'RP_ST_CatalogoProdotti' AND
		Inizio = (
			SELECT
				MAX(Inizio)
			FROM
				LOG_ESECUZIONE
			WHERE
				Nome = 'RP_ST_CatalogoProdotti'
		)
end