PDC_REPORT_CreazioneDB/sql/Collaudo/procedure/C6MartPeriodico_DM_ANAG_PRODOTTI.sql
2025-06-10 15:29:00 +02:00

102 lines
3.0 KiB
Transact-SQL

-- =============================================
-- Author: <Author,,Name>
-- Create date: <Create Date,,>
-- Description: <Description,,>
-- =============================================
CREATE procedure [C6MartPeriodico].[DM_ANAG_PRODOTTI]
AS
BEGIN
SET NOCOUNT ON;
DECLARE @ID_ELAB INT
DECLARE @TIPO_ELAB VARCHAR(1)
SET @ID_ELAB = C6MARTPERIODICO.GETIDELAB()
SET @TIPO_ELAB = C6MARTPERIODICO.GETTIPOELAB()
-- Log esecuzione
INSERT INTO LOG_ESECUZIONE
(Nome, Inizio, Nota)
VALUES (
'DM_ANAG_PRODOTTI',
GETDATE(),
'Elaborazione trimestrale'
)
TRUNCATE TABLE [C6MartPeriodico].ANAG_PRODOTTI
INSERT INTO [C6MartPeriodico].[ANAG_PRODOTTI]
([COD_PRODOTTO]
,[COD_ISIN]
,[PAESE]
,[ID_AREA]
,[CAT_PRODOTTO]
,[TIPO_PRODOTTO]
,[DESCR_PRODOTTO]
,[DIV_QUOTAZIONE]
,[DIV_REGOLAMENTO]
,[ID_EMITTENTE]
,[MERCATO_CONTRATT]
,[COD_MAF]
,[RATING]
,[COD_ADEGUATEZZA]
,[COD_SOTTOPRODOTTO]
,[COD_INTERNO]
,[ID_ELAB]
,[TIPO_ELAB]
,[DT_SCADENZA]
,[TIPO_TASSO]
,[TIPO_EMITTENTE]
,[FLG_OB]
)
SELECT
CATITEMREF.CATALOGUEID AS COD_PRODOTTO,
CATITEMREF.COD_ISIN AS COD_ISIN,
CATITEMREF.COUNTRY AS PAESE,
'' AS ID_AREA,
(SELECT CASE SUBSTRING(CATITEMREF.TYPE$_BCATAL_FC317,64,3)
WHEN 'Ges' THEN 'Gestito Finanziario'
WHEN 'Amm' THEN 'Amministrato'
WHEN 'Ass' THEN 'Assicurativo'
END) AS CAT_PRODOTTO,
CATITEMREF.TIPOPRODOTTO AS TIPO_PRODOTTO,
CATITEMREF.CATALOGUENAME AS DESCR_PRODOTTO,
CATITEMREF.PRODUCTCURRENCY AS DIV_QUOTAZIONE,
NULL AS DIV_REGOLAMENTO,
NULL AS ID_EMITTENTE,
CATITEMREF.PIAZZA AS MERCATO_CONTRATT,
CATITEMREF.COD_MAF AS COD_MAF,
CATITEMREF.RATOBBLIG AS RATING,
CATITEMREF.COD_ADEGUATEZZA AS COD_ADEGUATEZZA,
CATITEMREF.COD_SOTTOPRODOTTO AS COD_SOTTOPRODOTTO,
CATITEMREF.COD_INTERNO AS COD_INTERNO,
@ID_ELAB AS ID_ELAB,
@TIPO_ELAB AS TIPO_ELAB,
CATITEMREF.expirationdate AS DT_SCADENZA,
CASE
WHEN CATITEMREF.TIP_TASSO = '0 CPN' THEN 'Zero Coupon'
ELSE CATITEMREF.TIP_TASSO
END AS TIPO_TASSO,
CATITEMREF.TIP_EMITTENTE AS TIPO_EMITTENTE,
CASE WHEN TYPE$_BCATAL_FC317 like '%.Titoli.Ob%' THEN 'S'
ELSE 'N'
END AS FLG_OB
FROM C6STAGINGPERIODICO.CATITEMREF
INNER JOIN (
SELECT CATITEMREF.CATALOGUEID, MAX(OID$) AS OID
FROM C6STAGINGPERIODICO.CATITEMREF
GROUP BY CATITEMREF.CATALOGUEID
) DOPPICATITEMREF ON CATITEMREF.OID$ = DOPPICATITEMREF.OID
-- Log esecuzione
UPDATE
LOG_ESECUZIONE
SET
Fine = GETDATE(),
Tipo = 'INSERT',
Righe = @@ROWCOUNT
WHERE
Nome = 'DM_ANAG_PRODOTTI' AND
Inizio = (
SELECT
MAX(Inizio)
FROM
LOG_ESECUZIONE
WHERE
Nome = 'DM_ANAG_PRODOTTI'
)
END