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

162 lines
6.1 KiB
Transact-SQL

-- =============================================
-- Author: <Author,,Name>
-- Create date: <Create Date,,>
-- Description: <Description,,>
-- =============================================
CREATE procedure [C6Mart].[DM_PATRIMONIO_TERZI]
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_PATRIMONIO_TERZI',
GETDATE(),
'Elaborazione giornaliera'
)
TRUNCATE TABLE C6MART.PATRIMONIO_TERZI
INSERT INTO [C6Mart].[PATRIMONIO_TERZI]
([RETE]
,[COD_FISCALE]
,[NUM_POLIZZA]
,[TIPO_POLIZZA]
,[TIPO_PRODOTTO]
,[TIPO_PRODOTTO2]
,[COD_PRODOTTO]
,[COD_PRODOTTO_TERZI]
,[INTERMEDIARIO]
,[DATA_SOTTOSCRIZIONE]
,[DATA_SCADENZA]
,[FREQ_RATA]
,[DURATA_POLIZZA]
,[PREMIO]
,[ALIQUOTA]
,[DATA_SOTT_FP]
,[DATA_REGOLAMENTO]
,[QUANTITA]
,[PREZZO]
,[CTV]
,[VERSATO_NETTO]
,[DIV_REGOLAMENTO]
,[CAMBIO]
,[DESCR_GRUPPO_PRODOTTO]
,[STRTYPE]
,[COMPLEX]
,[EMITTENTE]
,[CHIAVE_THR]
,[ID_ELAB]
,[TIPO_ELAB])
SELECT
ALL_PATR_TERZI.RETE_PB AS RETE,
ALL_PATR_TERZI.CODICE_FISCALE AS COD_FISCALE,
NULL AS NUM_POLIZZA,
ALL_PATR_TERZI.TIPO_POLIZZA_BT_97BEE AS TIPO_POLIZZA,
--COALESCE(PRODOTTI_A_CATALOGO.TIPO_PRODOTTO, PRODOTTI_NON_A_CATALOGO.TIPO_PRODOTTO) AS TIPO_PRODOTTO,
CASE
WHEN ALL_PATR_TERZI.DESCRIZIONE_PRODOTTO = 'Assets.FinancialAssets.Other' AND S4_S5_S13_TRAD_UNTIL_LIV3.ALBERO_GERARCHIA_3 = 'Conti correnti'
THEN 'Altro'
ELSE
COALESCE(S4_S5_S13_TRAD_UNTIL_LIV3.ALBERO_GERARCHIA_3,COALESCE(S4_S5_S13_TRAD_UNTIL_LIV3.ALBERO_GERARCHIA_2,S4_S5_S13_TRAD_UNTIL_LIV3.ALBERO_GERARCHIA_1))
END AS TIPO_PRODOTTO,
PRODOTTI_NON_A_CATALOGO.TIPO_PRODOTTO2 AS TIPO_PRODOTTO2,
ISNULL(ALL_PATR_TERZI.PRODOTTO_IN_CATALOGO,'PRODOTTO NON IN CATALOGO') AS COD_PRODOTTO,
ISNULL(ALL_PATR_TERZI.CHIAVE_THR,'PRODOTTO IN CATALOGO') AS COD_PRODOTTO_TERZI,
ALL_PATR_TERZI.NOME_ISTITUTO AS INTERMEDIARIO,
--ALL_PATR_TERZI.DATA_INIZIO_INV AS DATA_SOTTOSCRIZIONE,
--ISNULL(ALL_PATR_TERZI.DATA_INIZIO_INV, ALL_PATR_TERZI.DATA2_UTILIZ_X_SOTTOSCRIZ) AS DATA_SOTTOSCRIZIONE,
--ALL_PATR_TERZI.BALANCEDATETIME_DI_THR AS DATA_SOTTOSCRIZIONE,
CASE
WHEN ALL_PATR_TERZI.DESCRIZIONE_PRODOTTO IN ('Assets.FinancialAssets.PolizzeRivalutabili') -- PRODOTTI S49
THEN ISNULL(ALL_PATR_TERZI.DATA_SOTTOSCRIZIONE, ALL_PATR_TERZI.DATA2_UTILIZ_X_SOTTOSCRIZ)
WHEN ALL_PATR_TERZI.DESCRIZIONE_PRODOTTO IN ('Assets.FinancialAssets.ProdottiPrevidenziali') -- PRODOTTI S50
THEN ALL_PATR_TERZI.BALANCEDATETIME_DI_THR -- EQUIVALENTE A ALL_PATR_TERZI.DATA2_UTILIZ_X_SOTTOSCRIZ
ELSE -- PRODOTTI S48
ALL_PATR_TERZI.DATA_INIZIO_INV
END AS DATA_SOTTOSCRIZIONE,
ALL_PATR_TERZI.DATA_SCADENZA AS DATA_SCADENZA,
ALL_PATR_TERZI.TIPO_VERSAMENTO_BT_6797 AS FREQ_RATA,
NULL AS DURATA_POLIZZA,
ALL_PATR_TERZI.PREMIO_VERSAMENTO AS PREMIO,
NULL AS ALIQUOTA,
ALL_PATR_TERZI.BALANCEDATETIME_DI_THR AS DATA_SOTT_FP,
NULL AS DATA_REGOLAMENTO,
NULL AS QUANTITA,
NULL AS PREZZO,
ALL_PATR_TERZI.PATRIMONIO_TERZI AS CTV,
ALL_PATR_TERZI.CAPITALE_INVESTITO AS VERSATO_NETTO,
NULL AS DIV_REGOLAMENTO,
NULL AS CAMBIO,
CASE
WHEN S4_S5_S13_TRAD_UNTIL_LIV3.ALBERO_GERARCHIA_2 = 'Fondi'
THEN S4_S5_S13_TRAD_UNTIL_LIV3.ALBERO_GERARCHIA_2
WHEN S4_S5_S13_TRAD_UNTIL_LIV3.ALBERO_GERARCHIA_2 = 'Gestioni patrimoniali'
THEN S4_S5_S13_TRAD_UNTIL_LIV3.ALBERO_GERARCHIA_2
WHEN (S4_S5_S13_TRAD_UNTIL_LIV3.ALBERO_GERARCHIA_1 = 'Amministrato'
AND ALL_PATR_TERZI.DESCRIZIONE_PRODOTTO NOT IN( 'Assets.FinancialAssets.CurrentAccount', 'Assets.FinancialAssets.Other'))
THEN 'Prodotti di Tipo amministrato (escluso C/C)'
WHEN (S4_S5_S13_TRAD_UNTIL_LIV3.ALBERO_GERARCHIA_3 IN ('Index linked', 'Unit linked')
or (S4_S5_S13_TRAD_UNTIL_LIV3.albero_gerarchia_1='Gestito Assicurativo previdenziale'
and S4_S5_S13_TRAD_UNTIL_LIV3.albero_gerarchia_2='Assicurativi Vita'
and S4_S5_S13_TRAD_UNTIL_LIV3.albero_gerarchia_3 is null))
THEN 'Assicurativi Unit/Index Linked'
WHEN ALL_PATR_TERZI.DESCRIZIONE_PRODOTTO = 'Assets.FinancialAssets.Other'
THEN 'Portafoglio Generico'
WHEN ALL_PATR_TERZI.DESCRIZIONE_PRODOTTO IN ('Assets.FinancialAssets.ProdottiPrevidenziali', 'Assets.FinancialAssets.PolizzeRivalutabili')
THEN NULL
ELSE NULL
END AS DESCR_GRUPPO_PRODOTTO,
STRTYPE,
COMPLEX,
EMITTENTE,
ALL_PATR_TERZI.CHIAVE_THR,
@ID_ELAB AS ID_ELAB,
@TIPO_ELAB AS TIPO_ELAB
FROM C6STAGING.ALL_PATR_TERZI
INNER JOIN C6STAGING.S4_S5_S13_TRAD_UNTIL_LIV3
ON S4_S5_S13_TRAD_UNTIL_LIV3.DESCRIZIONE_ORIGINALE = ALL_PATR_TERZI.DESCRIZIONE_ALBERATURA
LEFT JOIN (
SELECT DISTINCT
ALL_PATR_TERZI.CHIAVE_THR AS CHIAVE_THR,
COALESCE(S4_S5_S13_TRAD_UNTIL_LIV3.ALBERO_GERARCHIA_3,COALESCE(S4_S5_S13_TRAD_UNTIL_LIV3.ALBERO_GERARCHIA_2,S4_S5_S13_TRAD_UNTIL_LIV3.ALBERO_GERARCHIA_1)) AS TIPO_PRODOTTO,
S4_S5_S13_TRAD_UNTIL_LIV3.ALBERO_GERARCHIA_2 AS TIPO_PRODOTTO2
FROM C6STAGING.ALL_PATR_TERZI
INNER JOIN C6STAGING.S4_S5_S13_TRAD_UNTIL_LIV3
ON S4_S5_S13_TRAD_UNTIL_LIV3.DESCRIZIONE_ORIGINALE = ALL_PATR_TERZI.DESCRIZIONE_ALBERATURA
) AS PRODOTTI_NON_A_CATALOGO
ON PRODOTTI_NON_A_CATALOGO.CHIAVE_THR = ALL_PATR_TERZI.CHIAVE_THR
LEFT JOIN (
SELECT
CATITEMREF.CATALOGUEID AS CATALOGUEID,
CATITEMREF.TIPOPRODOTTO AS TIPO_PRODOTTO,
CATITEMREF.STRTYPE,
CATITEMREF.COMPLEX,
MIT.DESCR AS EMITTENTE
FROM
C6STAGING.CATITEMREF LEFT OUTER JOIN
C6STAGING.EMIT MIT
ON MIT.CODEMI=CATITEMREF.CODEMI
) PRODOTTI_A_CATALOGO
ON PRODOTTI_A_CATALOGO.CATALOGUEID = ALL_PATR_TERZI.PRODOTTO_IN_CATALOGO
-- Log esecuzione
UPDATE
LOG_ESECUZIONE
SET
Fine = GETDATE(),
Tipo = 'INSERT',
Righe = @@ROWCOUNT
WHERE
Nome = 'DM_PATRIMONIO_TERZI' AND
Inizio = (
SELECT
MAX(Inizio)
FROM
LOG_ESECUZIONE
WHERE
Nome = 'DM_PATRIMONIO_TERZI'
)
END