PDC_REPORT_CreazioneDB/sql/Testbes/procedure/C6Mart_DM_ANAG_PRODOTTI.sql
2025-06-10 15:29:40 +02:00

88 lines
2.2 KiB
Transact-SQL

-- =============================================
-- Author: <Author,,Name>
-- Create date: <Create Date,,>
-- Description: <Description,,>
-- =============================================
CREATE procedure [C6Mart].[DM_ANAG_PRODOTTI]
AS
BEGIN
SET NOCOUNT ON;
DECLARE @ID_ELAB INT
DECLARE @TIPO_ELAB VARCHAR(1)
SET @ID_ELAB = C6MART.GETIDELAB()
SET @TIPO_ELAB = C6MART.GETTIPOELAB()
-- Log esecuzione
INSERT INTO LOG_ESECUZIONE
(Nome, Inizio, Nota)
VALUES (
'DM_ANAG_PRODOTTI',
GETDATE(),
'Elaborazione giornaliera'
)
TRUNCATE TABLE C6MART.ANAG_PRODOTTI
INSERT INTO [C6Mart].[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])
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
FROM C6STAGING.CATITEMREF
INNER JOIN (
SELECT CATITEMREF.CATALOGUEID, MAX(OID$) AS OID
FROM C6STAGING.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