CREATE procedure [C6Staging].[RP_ST_CatalogoProdotti]
as
begin 
	-- Log esecuzione
	INSERT INTO LOG_ESECUZIONE
		(Nome, Inizio, Nota)
	VALUES (
		'RP_ST_CatalogoProdotti',
		GETDATE(),
		'Elaborazione giornaliera'
	)
--drop table c6staging.RP_CatalogoProdotti
	truncate table c6staging.RP_CatalogoProdotti
INSERT INTO [C6Staging].[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]
		   ,[DESCR_SGR]
		   ,[Dossier]
		   ,[SottoProdottoSelf])
   	select cat.[ChiaveProdotto]
           ,cat.[CodSottoprodotto]
           ,cat.[CodInterno]
           ,cat.[CodMaf]
           ,cat.[CodAdeguatezza]
           ,cat.[CodIsin]
           ,cat.[TipoVersamento]
           ,cat.[RischioPrSc]
           ,cat.[StatoProdotto]
           ,cat.[TipoPolizza]
           ,cat.[NomeProdotto]
           ,cat.[Visibilita]
           ,cat.[PrezzoInEuro]
           ,cat.[Alberatura]
           ,cat.[DtScadenza]
           ,cat.[Categoria]
           ,cat.[Istituto]
           ,cat.[Piazza]
           ,cat.[PrezzoInValuta]
           ,cat.[PrezzoValuta]
           ,cat.[Codiceadb]
-- INIZIO INTERVENTO MIGRAZIONE ASU3
--         ,[TipoProdotto]
		   ,CASE WHEN cat.[TipoProdotto] = 'ASU3' then 'ASU1' else cat.[TipoProdotto] END as TipoProdotto
-- FINE INTERVENTO MIGRAZIONE ASU3		   
           ,cat.[RatingObbligazioni]
           ,cat.[RischioMinimo]
           ,cat.[CapRisparmio]
           ,cat.[CapMinimo]
           ,cat.[CapMinimoValuta]
           ,cat.[CapMinSucc]
           ,cat.[CapMinSuccValuta]
           ,cat.[MinRispContr]
           ,cat.[MinRispContrValuta]
           ,cat.[SuccRispContr]
           ,cat.[SuccRispContrValuta]
           ,cat.[MinComm]
           ,cat.[MinCommValuta]
           ,cat.[DelegaGestionale]
           ,cat.[TipologiaPerPick]
           ,cat.[RischioPrezzo]
           ,cat.[RegimeFiscale]
           ,cat.[Quotato]
           ,cat.[ClasseDiPrezzo]
           ,cat.[Lineefinacc]
           ,cat.[DurataContrattuale]
           ,cat.[RiscFinFaseAcc]
           ,cat.[OpzRendVital]
           ,cat.[MetaA]
           ,cat.[MetaB]
           ,cat.[MetaC]
           ,cat.[DtRifPrezzo]
           ,cat.[CodTipoContratto]
           ,cat.[PrezzoNetto]
           ,cat.[PrezzoNettoValuta]
           ,cat.[DtPrezzoNetto]
           ,cat.[CodBloomberg]
           ,cat.[DenomUnitLink]
           ,cat.[DtInizioValidita]
           ,cat.[Negoziabilita]
           ,cat.[TassoTecnico]
           ,cat.[TassoTecnicoValuta]
           ,cat.[CollSkandia]
           ,cat.[CodAssetSatellite]
           ,cat.[Mercato]
           ,cat.[AzOb]
           ,cat.[Complessita]
           ,cat.[Emittente]
           ,cat.[GaranziaDemografica]
           ,cat.[SocietaDiGestione]
           ,cat.[IndPrz]
           ,cat.[Differimento]
           ,cat.[DtPrezzo]
           ,cat.[TipoObbligazione]
           ,cat.[TaglioMinimo]
           ,cat.[IsAttivoRc]
           ,cat.[RischioCredito]
           ,cat.[Copertura]
           ,cat.[VarP]
           ,cat.[Diversificazione]
           ,cat.[FlagCoreSatellite]
           ,cat.[PerimetroCoreSatellite]
           ,cat.[FondoCore] 
		   ,an.nomeCompagnia
		   ,case when cat.[TipoProdotto] = 'DT' then 'DT' else '' end as Dossier
		   ,[SottoProdottoSelf]
	--into [C6Staging].[RP_CatalogoProdotti]
	from [CONSUNI].CatalogoProdotti.dbo.CatalogoProdotti cat
	 LEFT JOIN
			 CONSUNI.CatalogoProdotti.dbo.AnCompagnia an ON cat.SocietaDiGestione=an.SocietaDiGestione
	--where  chiaveProdotto not in (240922,240923)
	-- 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 c6staging.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
	-- 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