326 lines
16 KiB
Transact-SQL
326 lines
16 KiB
Transact-SQL
-- =============================================
|
|
-- AUTHOR: ALESSANDRO TRINGALI
|
|
-- CREATE DATE: 18 SETTEMBRE 2009
|
|
-- DESCRIPTION:
|
|
-- =============================================
|
|
CREATE procedure [C6Mart].[DM_ALL_PATRIMONIO]
|
|
AS
|
|
BEGIN
|
|
SET NOCOUNT ON;
|
|
DECLARE @ID_ELAB INT
|
|
SET @ID_ELAB = [C6Mart].GETIDELAB()
|
|
-- LOG ESECUZIONE
|
|
INSERT INTO LOG_ESECUZIONE
|
|
(NOME, INIZIO, NOTA)
|
|
VALUES (
|
|
'DM_ALL_PATRIMONIO',
|
|
GETDATE(),
|
|
'ELABORAZIONE TRIMESTRALE'
|
|
)
|
|
TRUNCATE TABLE [C6Mart].[ALL_PATRIMONIO]
|
|
INSERT INTO [C6Mart].[ALL_PATRIMONIO]
|
|
(
|
|
[CODICE_FISCALE]
|
|
,[RETE]
|
|
,[POSITIONID]
|
|
,[CATALOGUENAME]
|
|
,[CATALOGUEID]
|
|
,[COD_ADEGUATEZZA]
|
|
,[INTERMEDIARIO]
|
|
,[PATRIMONIO_INTERMEDIARIO]
|
|
,[EMITTENTE]
|
|
,[PATRIMONIO_EMITTENTE]
|
|
,[COMPLESSITA]
|
|
,[TIPO_PRODOTTO]
|
|
,[CONTROVALORE_PRODOTTO]
|
|
,[AZ_OB]
|
|
,[PATRIMONIO_AZ_OB_EMIT]
|
|
,[PATRIM_AZ_OB_EMIT_INTER]
|
|
,[PATRIMONIO_COMPLESSIVO]
|
|
,[CHIAVE_THR]
|
|
)
|
|
SELECT
|
|
CODICE_FISCALE,
|
|
RETE,
|
|
POSITIONID,
|
|
DATI.CATALOGUENAME,
|
|
CAT.CATALOGUEID,
|
|
CASE
|
|
WHEN ADEGUATEZZA IS NULL
|
|
THEN CAT.COD_ADEGUATEZZA
|
|
ELSE ADEGUATEZZA
|
|
END AS COD_ADEGUATEZZA,
|
|
INTERMEDIARIO,
|
|
SUM(CONTROVALORE) OVER (PARTITION BY CODICE_FISCALE,RETE,INTERMEDIARIO) AS PATRIMONIO_INTERMEDIARIO,
|
|
EMIT.DESCR AS EMITTENTE,
|
|
CASE
|
|
WHEN EMIT.DESCR IS NULL THEN NULL
|
|
ELSE SUM(CONTROVALORE) OVER (PARTITION BY CODICE_FISCALE,RETE,EMIT.DESCR)
|
|
END AS PATRIMONIO_EMITTENTE,
|
|
CAT.COMPLEX AS COMPLESSITA,
|
|
CAT.TIPOPRODOTTO,
|
|
CONTROVALORE AS CONTROVALORE_PRODOTTO,
|
|
CASE WHEN CAT.STRTYPE IS NULL
|
|
THEN AZ_OB
|
|
ELSE CAT.STRTYPE
|
|
END AS AZ_OB,
|
|
SUM(CONTROVALORE) OVER (PARTITION BY CODICE_FISCALE,RETE,CASE WHEN CAT.STRTYPE IS NULL THEN AZ_OB ELSE CAT.STRTYPE END,EMIT.DESCR) AS PATRIMONIO_AZ_OB_EMIT,
|
|
SUM(CONTROVALORE) OVER (PARTITION BY CODICE_FISCALE,RETE,INTERMEDIARIO,CASE WHEN CAT.STRTYPE IS NULL THEN AZ_OB ELSE CAT.STRTYPE END,EMIT.DESCR, POSITIONID) AS PATRIM_AZ_OB_EMIT_INTER,
|
|
SUM(CONTROVALORE) OVER (PARTITION BY CODICE_FISCALE,RETE) AS PATRIMONIO_COMPLESSIVO,
|
|
CHIAVE_THR
|
|
FROM (
|
|
SELECT NULL AS AGENTE,
|
|
C.RETE,
|
|
C.CODICE_FISCALE,
|
|
C.CATALOGUENAME,
|
|
C.CONTROVALORE,
|
|
'BF' AS INTERMEDIARIO,
|
|
SUBSTRING(C.STRINGONA_POS, 1, 57) AS CATALOGUEID,
|
|
C.STRINGONA_POS AS POSITIONID,
|
|
NULL AS ADEGUATEZZA,
|
|
'BF' AS PROVENIENZA,
|
|
NULL AZ_OB,
|
|
'' AS CHIAVE_THR
|
|
FROM C6STAGING.ALL_CONSUL_ASUL C
|
|
union all
|
|
SELECT agente,
|
|
substring(agente,1,1) as rete,
|
|
codicefiscale as codice_FISCALE,
|
|
nome_prodotto as cataloguename,
|
|
SUM(controvalore) AS controvalore,
|
|
intermediario,
|
|
case when codiceisin = '' then '############' else codiceisin + replicate(' ', 12-len(codiceisin)) end
|
|
+
|
|
case when codicemaf = '' then '###############' else codicemaf + replicate(' ', 15-len(codicemaf)) end
|
|
+
|
|
case when codiceinterno = '' then '###############' else codiceinterno + replicate(' ', 15-len(codiceinterno)) end
|
|
+
|
|
case when codicesottoprodotto = '' then '###############' else codicesottoprodotto + replicate(' ', 15-len(codicesottoprodotto)) end
|
|
as catalogueid,
|
|
null as positionid,
|
|
codiceadeguatezza as ADEGUATEZZA ,
|
|
'PPT' as provenienza,
|
|
--alberatura,
|
|
case
|
|
when substring( alberatura,1,13)='Amm.Titoli.Ob'
|
|
OR substring( alberatura,1,15)='Amm.Strutturati'
|
|
then 'OB'
|
|
when substring( alberatura,1,17)='Amm.Titoli.Azioni'
|
|
OR substring( alberatura,1,18)='Amm.Titoli.Diritti'
|
|
OR substring( alberatura,1,20)='Amm.Derivati.Warrant'
|
|
OR substring( alberatura,1,19)='Amm.Derivati.CovWar'
|
|
then 'AZ'
|
|
else null
|
|
end as az_ob,
|
|
CHIAVE_THR
|
|
FROM (SELECT cf_e_pb.agente AS agente,
|
|
cf_e_pb.codice_fiscale AS codicefiscale,
|
|
nome_istituto AS intermediario,
|
|
SUM(paTRIMonio) AS controvalore,
|
|
REPLACE(codice_isin, '$', '') AS codiceisin,
|
|
REPLACE(codice_adeguatezza, '$', '') AS codiceadeguatezza,
|
|
REPLACE(codice_maf, '$', '') AS codicemaf,
|
|
REPLACE(codice_interno, '$', '') AS codiceinterno,
|
|
REPLACE(codice_sottoprodotto,
|
|
'$',
|
|
'' ) AS codicesottoprodotto,
|
|
CASE
|
|
WHEN traduz_alberat.albero_gerarchia_3 =
|
|
'Conti correnti' AND
|
|
tipo_prodotto =
|
|
'Assets.FinancialAssets.CurrentAccount' THEN
|
|
'Cc'
|
|
ELSE
|
|
'xxx'
|
|
END AS need_si_o_no_cc,
|
|
provenienza,
|
|
CASE
|
|
WHEN provenienza = 'dati NON in catalogo' THEN
|
|
1
|
|
ELSE
|
|
0
|
|
END AS prodotti_non_in_catalogo,
|
|
tipo_prodotto,
|
|
nome_prodotto,
|
|
alberatura,
|
|
CHIAVE_THR
|
|
FROM (
|
|
-- asset per dati NON in catalogo
|
|
SELECT aa.paTRIMonio,
|
|
aa.chiave_cliente,
|
|
aa.nome_istituto,
|
|
bb.codice_isin,
|
|
bb.codice_adeguatezza,
|
|
bb.codice_maf,
|
|
NULL AS codice_interno,
|
|
NULL AS codice_sottoprodotto,
|
|
aa.alberatura,
|
|
aa.provenienza,
|
|
tipo_prodotto,
|
|
nomeprodotto AS nome_prodotto,
|
|
CHIAVE_THR
|
|
FROM (SELECT patr_tp.paTRIMonio_terzi *
|
|
acb.bdpercentage AS paTRIMonio,
|
|
patr_tp.chiave_per_cliente AS chiave_cliente,
|
|
patr_tp.intermediario AS nome_istituto,
|
|
ass.assetclassid,
|
|
substring(patr_tp.descrizione_alberatura,
|
|
1,
|
|
45) AS alberatura,
|
|
'dati NON in catalogo' AS provenienza,
|
|
patr_tp.descrizione_prodotto AS tipo_prodotto,
|
|
patr_tp.nomeprodotto,
|
|
CHIAVE_THR
|
|
FROM C6STAGING.All_patr_terzi patr_tp,
|
|
C6STAGING.acbdenoth acb,
|
|
C6STAGING.assetclass ass
|
|
WHERE ass.assetclasslev = 2
|
|
AND patr_tp.prodotto_in_catalogo IS NULL
|
|
AND patr_tp.chiave_fnc IS NOT NULL
|
|
AND acb.f_pfinancial_815c0 = patr_tp.chiave_fnc
|
|
AND acb.f_oid__passe_cdf1a = ass.oid_
|
|
) aa,
|
|
C6STAGING.all_asset_class_per_promet bb
|
|
WHERE bb.codice_asset_class_ingresso = aa.assetclassid
|
|
UNION ALL
|
|
-- asset per dati in catalogo che hanno cod_adeguatezza valorizzato
|
|
SELECT patr_tp.paTRIMonio_terzi AS paTRIMonio,
|
|
patr_tp.chiave_per_cliente AS chiave_cliente,
|
|
patr_tp.intermediario AS nome_istituto,
|
|
cat.cod_isin,
|
|
cat.cod_adeguatezza,
|
|
cat.cod_maf,
|
|
cat.cod_interno,
|
|
cat.cod_sottoprodotto,
|
|
substring(cat.type$_bcatal_fc317, 64, 45) AS alberatura,
|
|
'dati in catalogo che hanno cod_adeguatezza valorizzato' AS provenienza,
|
|
patr_tp.descrizione_prodotto AS tipo_prodotto,
|
|
patr_tp.nomeprodotto,
|
|
CHIAVE_THR
|
|
FROM C6STAGING.all_patr_terzi patr_tp,
|
|
C6STAGING.catitemref cat
|
|
WHERE patr_tp.chiave_fnc IS NOT NULL
|
|
AND cat.cod_adeguatezza != '$'
|
|
AND patr_tp.prodotto_in_catalogo = cat.catalogueid
|
|
UNION ALL
|
|
SELECT a.paTRIMonio,
|
|
a.chiave_cliente,
|
|
a.nome_istituto,
|
|
b.codice_isin,
|
|
b.codice_adeguatezza,
|
|
b.codice_maf,
|
|
NULL AS codice_interno,
|
|
NULL AS codice_sottoprodotto,
|
|
a.alberatura,
|
|
a.provenienza,
|
|
tipo_prodotto,
|
|
nomeprodotto AS nome_prodotto,
|
|
CHIAVE_THR
|
|
FROM (
|
|
-- ASSET ESISTENTI PER DATI DEL CATALOGO CON ADEGUATEZZA A NULL
|
|
SELECT PATR_TP.PATRIMONIO_TERZI *
|
|
ACB.BDPERCENTAGE AS PATRIMONIO,
|
|
PATR_TP.CHIAVE_PER_CLIENTE AS CHIAVE_CLIENTE,
|
|
PATR_TP.INTERMEDIARIO AS NOME_ISTITUTO,
|
|
LTRIM(ASS.ASSETCLASSID) AS ASSETCLASSID,
|
|
ASS.ASSETCLASSLEV,
|
|
SUBSTRING(CAT.TYPE$_BCATAL_FC317, 64, 45) AS ALBERATURA,
|
|
'DATI IN CATALOGO CHE HANNO COD_ADEGUATEZZA A NULL E ASSET VALORIZZATO' AS PROVENIENZA,
|
|
PATR_TP.DESCRIZIONE_PRODOTTO AS TIPO_PRODOTTO,
|
|
PATR_TP.NOMEPRODOTTO,
|
|
patr_tp.CHIAVE_THR
|
|
FROM C6STAGING.ASSETCLASS ASS,
|
|
C6STAGING.ALL_PATR_TERZI PATR_TP,
|
|
C6STAGING.CATITEMREF CAT,
|
|
C6STAGING.INSTRBDS INS,
|
|
C6STAGING.ACBDENTRY ACB
|
|
WHERE CAT.COD_ADEGUATEZZA = '$'
|
|
AND ASS.ASSETCLASSLEV = 2
|
|
AND PATR_TP.PRODOTTO_IN_CATALOGO = CAT.CATALOGUEID
|
|
AND PATR_TP.CHIAVE_FNC IS NOT NULL
|
|
AND CAT.OID$ = INS.F_OID__PCATA_5DDA6
|
|
AND INS.OID_ = ACB.F_PINSTRUMEN_FBCDE
|
|
AND ACB.F_OID__PASSE_B8A1E = ASS.OID_
|
|
UNION ALL
|
|
-- ASSET NON ESISTENTI PER DATI DEL CATALOGO CON ADEGUATEZZA A NULL (SETTATI AD ALTRO PER CONVENZIONE)
|
|
SELECT PATR_TP.PATRIMONIO_TERZI AS PATRIMONIO,
|
|
PATR_TP.CHIAVE_PER_CLIENTE AS CHIAVE_CLIENTE,
|
|
PATR_TP.INTERMEDIARIO AS NOME_ISTITUTO,
|
|
'AL1' AS ASSETCLASSID,
|
|
2,
|
|
SUBSTRING(CAT.TYPE$_BCATAL_FC317, 64, 45) AS ALBERATURA,
|
|
'DATI IN CATALOGO CHE HANNO COD_ADEGUATEZZA A NULL E ASSET NON VALORIZZATO',
|
|
PATR_TP.DESCRIZIONE_PRODOTTO AS TIPO_PRODOTTO,
|
|
PATR_TP.NOMEPRODOTTO,
|
|
patr_tp.CHIAVE_THR
|
|
FROM C6STAGING.ALL_PATR_TERZI PATR_TP,
|
|
C6STAGING.CATITEMREF CAT,
|
|
C6STAGING.INSTRBDS INS
|
|
WHERE CAT.COD_ADEGUATEZZA = '$'
|
|
AND PATR_TP.CHIAVE_FNC IS NOT NULL
|
|
AND PATR_TP.PRODOTTO_IN_CATALOGO = CAT.CATALOGUEID
|
|
AND CAT.OID$ = INS.F_OID__PCATA_5DDA6 --(+)
|
|
AND INS.F_OID__PCATA_5DDA6 IS NULL
|
|
) A,
|
|
C6STAGING.ALL_ASSET_CLASS_PER_PROMET B
|
|
WHERE B.CODICE_ASSET_CLASS_INGRESSO = A.ASSETCLASSID
|
|
) patrimonio_PT,
|
|
C6STAGING.ALL_CF_PB CF_E_PB,
|
|
C6STAGING.S4_S5_S13_TRAD_UNTIL_LIV3 TRADUZ_ALBERAT
|
|
WHERE CF_E_PB.oid = patrimonio_PT.CHIAVE_CLIENTE
|
|
AND TRADUZ_ALBERAT.DESCRIZIONE_ORIGINALE = patrimonio_PT.ALBERATURA
|
|
GROUP BY CF_E_PB.AGENTE,
|
|
CF_E_PB.CODICE_FISCALE,
|
|
NOME_ISTITUTO,
|
|
REPLACE(codice_isin, '$', ''),
|
|
REPLACE(codice_adeguatezza,
|
|
'$',
|
|
''
|
|
),
|
|
REPLACE(codice_maf, '$', ''),
|
|
REPLACE(codice_interno, '$', ''),
|
|
REPLACE(codice_sottoprodotto,
|
|
'$',
|
|
''
|
|
),
|
|
PROVENIENZA,
|
|
TRADUZ_ALBERAT.ALBERO_GERARCHIA_3,
|
|
TIPO_PRODOTTO,
|
|
NOME_PRODOTTO,
|
|
ALBERATURA,
|
|
CHIAVE_THR) TUTTO_PPT
|
|
GROUP BY AGENTE,
|
|
CODICEFISCALE,
|
|
INTERMEDIARIO,
|
|
NOME_PRODOTTO,
|
|
CODICEISIN,
|
|
CODICEADEGUATEZZA,
|
|
CODICEMAF,
|
|
CODICEINTERNO,
|
|
CODICESOTTOPRODOTTO,
|
|
PRODOTTI_NON_IN_CATALOGO,
|
|
ALBERATURA,
|
|
CHIAVE_THR
|
|
) DATI,
|
|
C6STAGING.CATITEMREF CAT,
|
|
C6STAGING.EMIT
|
|
WHERE CAT.CATALOGUEID = DATI.CATALOGUEID
|
|
AND CAT.CODEMI = EMIT.CODEMI
|
|
-- LOG ESECUZIONE
|
|
UPDATE
|
|
LOG_ESECUZIONE
|
|
SET
|
|
FINE = GETDATE(),
|
|
TIPO = 'INSERT',
|
|
RIGHE = @@ROWCOUNT
|
|
WHERE
|
|
NOME = 'DM_ALL_PATRIMONIO' AND
|
|
INIZIO = (
|
|
SELECT
|
|
MAX(INIZIO)
|
|
FROM
|
|
LOG_ESECUZIONE
|
|
WHERE
|
|
NOME = 'DM_ALL_PATRIMONIO'
|
|
)
|
|
END |