PDC_REPORT_CreazioneDB/sql/storedTestbes/C6Mart_DM_PATRIMONIO_BF.sql
2025-06-06 19:02:52 +02:00

362 lines
12 KiB
Transact-SQL

-- =============================================
-- Author: Paolo Giovanetti --modificata per i cc in liq Marianna / Valerio
-- Create date: 10 marzo 2009
-- Description:
-- =============================================
CREATE procedure [C6Mart].[DM_PATRIMONIO_BF]
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_BF',
GETDATE(),
'Elaborazione giornaliera'
)
TRUNCATE TABLE C6MART.PATRIMONIO_BF
SELECT
SPB_CONTR_SINTESI.RETE AS RETE,
SPB_CONTR_SINTESI.CODICEFISCALE AS COD_FISCALE,
SPB_CONTR_SINTESI.POSITIONID AS POSITIONID,
SUBSTRING(SPB_CONTR_SINTESI.POSITIONID,1,57) AS COD_PRODOTTO,
SPB_CONTR_SINTESI.CODICECONTRATTO AS ID_CONTRATTO,
CASE
WHEN SPB_CONTR_SINTESI.TIPOPRODOTTO IN ('DT', 'FI') AND SPB_CONTR_SINTESI.DATAINIZIORENDIMENTO IS NOT NULL THEN SPB_CONTR_SINTESI.DATAINIZIORENDIMENTO
ELSE SPB_CONTR_SINTESI.DATADISOTTOSCRIZIONE
END AS DATA_SOTTOSCRIZIONE,
SPB_CONTR_SINTESI.CODICESTATO AS COD_STATO,
SPB_CONTR_SINTESI.NUMEROPOLIZZA AS NUM_POLIZZA,
SPB_CONTR_SINTESI.CODICEMAF AS COD_MAF,
SPB_CONTR_SINTESI.CODICEINTERNO AS COD_INTERNO,
SPB_CONTR_SINTESI.CODICESOTTOPRODOTTO AS COD_SOTTOPRODOTTO,
SPB_CONTR_SINTESI.TIPOPRODOTTO AS TIPO_PRODOTTO,
CASE
WHEN CONSAREA.C_NEEDAREA_V_46360 = 'Inv' AND PRCONSUL.C_PROJECTNAM_11D1A IS NULL THEN 'Prodotti non associati a progetti'
ELSE LTRIM(RTRIM(PRCONSUL.C_PROJECTNAM_11D1A))
END AS NOME_PROGETTO,
--POSITION.C_NEEDAREASE_3D485 AS ID_AREA,
CONSAREA.C_NEEDAREA_V_46360 AS ID_AREA,
SPB_CONTR_SINTESI.DATADIRIFERIMENTO AS DATA_OPERAZIONE,
CONVERT(DATETIME, SPB_CONTR_SINTESI.DATAVALNAVAL, 105) AS DATA_VALUTA, -- 105 PER FORMAT DD/MM/YYYY
NULL AS DATA_REGOLAMENTO,
SPB_CONTR_SINTESI.QUOTE AS QUANTITA,
SPB_CONTR_SINTESI.PREZZO AS PREZZO,
SPB_CONTR_SINTESI.CTV AS CTV,
SPB_CONTR_SINTESI.VALORE AS CTV_NOMINALE,
CASE
WHEN (SPB_CONTR_SINTESI.TIPOPRODOTTO = 'GE'
OR SPB_CONTR_SINTESI.TIPOPRODOTTO = 'GES')
AND SPB_CONTR_SINTESI.DATADISOTTOSCRIZIONE < cast('2007-01-01' AS DATETIME)
THEN NULL
WHEN SPB_CONTR_SINTESI.TIPOPRODOTTO IN ( 'ASVI','ASU1')
THEN NULL
--Modifica Luca
WHEN SPB_CONTR_SINTESI.TIPOPRODOTTO = 'ASUL' AND SPB_CONTR_SINTESI.CODICEINTERNO NOT IN ('18','19','35','PR','PX')
THEN NULL
--
ELSE SPB_CONTR_SINTESI.CVN
END AS VERSATO_NETTO,
SPB_CONTR_SINTESI.PARTVIA AS PARTVIA_DISINV,
SPB_CONTR_SINTESI.PARTVIAAL AS DATA_PARTVIA_DISINV,
--SPB_PARTITE_VIAGG.IMPORTOVERSATO AS PARTVIA_INV,
NULL AS PARTVIA_INV,
CASE
WHEN (SPB_CONTR_SINTESI.TIPOPRODOTTO = 'GE'
OR SPB_CONTR_SINTESI.TIPOPRODOTTO = 'GES')
AND SPB_CONTR_SINTESI.DATADISOTTOSCRIZIONE < cast('2007-01-01' AS DATETIME)
THEN NULL
WHEN SPB_CONTR_SINTESI.TIPOPRODOTTO IN ( 'ASVI','ASU1')
THEN NULL
--Modifica Luca
WHEN SPB_CONTR_SINTESI.TIPOPRODOTTO = 'ASUL' AND SPB_CONTR_SINTESI.CODICEINTERNO NOT IN ('18','19','35','PR','PX')
THEN NULL
--
ELSE SPB_CONTR_SINTESI.RENDIMENTODASOTTOSCRIZIONE
END AS REND_SOTTOSCRIZIONE,
-- SPB_CONTR_SINTESI.RENDIMENTODASOTTOSCRIZIONE AS REND_SOTTOSCRIZIONE,
CASE
WHEN (SPB_CONTR_SINTESI.TIPOPRODOTTO = 'GE'
OR SPB_CONTR_SINTESI.TIPOPRODOTTO = 'GES')
AND SPB_CONTR_SINTESI.DATADISOTTOSCRIZIONE < cast('2007-01-01' AS DATETIME)
THEN NULL
WHEN SPB_CONTR_SINTESI.TIPOPRODOTTO IN ( 'ASVI','ASU1')
THEN NULL
--Modifica Luca
WHEN SPB_CONTR_SINTESI.TIPOPRODOTTO = 'ASUL' AND SPB_CONTR_SINTESI.CODICEINTERNO NOT IN ('18','19','35','PR','PX')
THEN NULL
--
ELSE SPB_CONTR_SINTESI.RENDIMENTODAINIZIOTRIMESTRE
END AS REND_TRIMESTRE,
-- SPB_CONTR_SINTESI.RENDIMENTODAINIZIOTRIMESTRE AS REND_TRIMESTRE,
CASE
WHEN (SPB_CONTR_SINTESI.TIPOPRODOTTO = 'GE'
OR SPB_CONTR_SINTESI.TIPOPRODOTTO = 'GES')
AND SPB_CONTR_SINTESI.DATADISOTTOSCRIZIONE < cast('2007-01-01' AS DATETIME)
THEN NULL
WHEN SPB_CONTR_SINTESI.TIPOPRODOTTO IN ( 'ASVI','ASU1')
THEN NULL
--Modifica Luca
WHEN SPB_CONTR_SINTESI.TIPOPRODOTTO = 'ASUL' AND SPB_CONTR_SINTESI.CODICEINTERNO NOT IN ('18','19','35','PR','PX')
THEN NULL
--
ELSE SPB_CONTR_SINTESI.RENDIMENTODAINIZIOANNO
END AS REND_ANNO,
-- SPB_CONTR_SINTESI.RENDIMENTODAINIZIOANNO AS REND_ANNO,
KAT.STRTYPE,
KAT.COMPLEX,
MIT.DESCR AS EMITTENTE,
SPB_CONTR_SINTESI.ISIN,
@ID_ELAB AS ID_ELAB,
@TIPO_ELAB AS TIPO_ELAB
INTO #PATRIMONIO
FROM C6STAGING.SPB_CONTR_SINTESI
INNER JOIN C6STAGING.ALL_CF_STATO
ON ALL_CF_STATO.RETE = SPB_CONTR_SINTESI.RETE
AND ALL_CF_STATO.CF_CLIENTE = SPB_CONTR_SINTESI.CODICEFISCALE
AND ALL_CF_STATO.FLAG_UTILIZZO_STATO = 1 --Attuale
INNER JOIN C6STAGING.POSITION
ON POSITION.POSITIONID = SPB_CONTR_SINTESI.POSITIONID
INNER JOIN C6STAGING.CONSUL -- join consarea
ON CONSUL.OID$ = POSITION.F_PCONSULENZ_56F23
AND CONSUL.TYPE$_TIPOCO_1EA7C = ALL_CF_STATO.STATO_CONSULENZA --'Attuale'
INNER JOIN C6STAGING.PRCONSUL
ON PRCONSUL.OID$ = POSITION.F_PPROJECT_P_B5629
INNER JOIN C6STAGING.CONSAREA
ON CONSAREA.OID$ = PRCONSUL.F_PCONSULENZ_B69E4
INNER JOIN C6STAGING.CATITEMREF KAT
ON
KAT.oid$ = POSITION.f_oid__posit_00526
left outer join
C6STAGING.EMIT MIT
ON KAT.CODEMI = MIT.CODEMI
/*LEFT JOIN C6STAGING.SPB_PARTITE_VIAGG
ON SPB_PARTITE_VIAGG.CODICECONFERIMENTO = SPB_CONTR_SINTESI.CODICECONTRATTO*/
WHERE SPB_CONTR_SINTESI.POSITIONID IS NOT NULL
and CONSAREA.C_NEEDAREA_V_46360 <> 'CC' and C6STAGING.SPB_CONTR_SINTESI.TIPOPRODOTTO <> 'CC'
UNION ALL -- MODIFICA FATTA PER AVERE I CONTI CORRENTI 26 NOVEMBRE (MAURIZIO)
SELECT
SPB_CONTR_SINTESI.RETE AS RETE,
SPB_CONTR_SINTESI.CODICEFISCALE AS COD_FISCALE,
SPB_CONTR_SINTESI.POSITIONID AS POSITIONID,
SUBSTRING(SPB_CONTR_SINTESI.POSITIONID,1,57) AS COD_PRODOTTO,
SPB_CONTR_SINTESI.CODICECONTRATTO AS ID_CONTRATTO,
CASE
WHEN SPB_CONTR_SINTESI.TIPOPRODOTTO = 'DT' /* OR SPB_CONTR_SINTESI.TIPOPRODOTTO = 'FI' */ THEN SPB_CONTR_SINTESI.DATAINIZIORENDIMENTO
ELSE SPB_CONTR_SINTESI.DATADISOTTOSCRIZIONE
END AS DATA_SOTTOSCRIZIONE,
SPB_CONTR_SINTESI.CODICESTATO AS COD_STATO,
SPB_CONTR_SINTESI.NUMEROPOLIZZA AS NUM_POLIZZA,
SPB_CONTR_SINTESI.CODICEMAF AS COD_MAF,
SPB_CONTR_SINTESI.CODICEINTERNO AS COD_INTERNO,
SPB_CONTR_SINTESI.CODICESOTTOPRODOTTO AS COD_SOTTOPRODOTTO,
SPB_CONTR_SINTESI.TIPOPRODOTTO AS TIPO_PRODOTTO,
NULL AS NOME_PROGETTO,
CASE WHEN SPB_CONTR_SINTESI.CTV>0 THEN 'Liq' ELSE 'Cc' END AS ID_AREA, --PRCONSUL.NEEDAREAID AS ID_AREA,--POSITION.C_NEEDAREASE_3D485 AS ID_AREA,
SPB_CONTR_SINTESI.DATADIRIFERIMENTO AS DATA_OPERAZIONE,
CONVERT(DATETIME, SPB_CONTR_SINTESI.DATAVALNAVAL, 105) AS DATA_VALUTA, -- 105 PER FORMAT DD/MM/YYYY
NULL AS DATA_REGOLAMENTO,
SPB_CONTR_SINTESI.QUOTE AS QUANTITA,
SPB_CONTR_SINTESI.PREZZO AS PREZZO,
SPB_CONTR_SINTESI.CTV AS CTV,
SPB_CONTR_SINTESI.VALORE AS CTV_NOMINALE,
SPB_CONTR_SINTESI.CVN AS VERSATO_NETTO,
SPB_CONTR_SINTESI.PARTVIA AS PARTVIA_DISINV,
SPB_CONTR_SINTESI.PARTVIAAL AS DATA_PARTVIA_DISINV,
NULL AS PARTVIA_INV, --SPB_PARTITE_VIAGG.IMPORTOVERSATO AS PARTVIA_INV,
SPB_CONTR_SINTESI.RENDIMENTODASOTTOSCRIZIONE AS REND_SOTTOSCRIZIONE,
SPB_CONTR_SINTESI.RENDIMENTODAINIZIOTRIMESTRE AS REND_TRIMESTRE,
SPB_CONTR_SINTESI.RENDIMENTODAINIZIOANNO AS REND_ANNO,
STRTYPE,
COMPLEX ,
mit.descr as EMITTENTE,
SPB_CONTR_SINTESI.ISIN,
@ID_ELAB AS ID_ELAB,
@TIPO_ELAB AS TIPO_ELAB
FROM C6STAGING.SPB_CONTR_SINTESI
INNER JOIN C6STAGING.CATITEMREF KAT
ON SUBSTRING(C6STAGING.SPB_CONTR_SINTESI .POSITIONID,1,57)=KAT.CATALOGUEID
LEFT OUTER JOIN C6STAGING.EMIT MIT
ON MIT.CODEMI=KAT.CODEMI
WHERE C6STAGING.SPB_CONTR_SINTESI.TIPOPRODOTTO = 'CC'
-- Log esecuzione
UPDATE
LOG_ESECUZIONE
SET
Fine = GETDATE(),
Tipo = 'INSERT',
Righe = @@ROWCOUNT
WHERE
Nome = 'DM_PATRIMONIO_BF' AND
Inizio = (
SELECT
MAX(Inizio)
FROM
LOG_ESECUZIONE
WHERE
Nome = 'DM_PATRIMONIO_BF'
)
INSERT INTO LOG_ESECUZIONE
(Nome, Inizio, Nota)
VALUES (
'DM_PATRIMONIO_BF',
GETDATE(),
'Elaborazione giornaliera'
)
INSERT INTO [C6Mart].[PATRIMONIO_BF]
([RETE]
,[COD_FISCALE]
,[POSITION_ID]
,[COD_PRODOTTO]
,[ID_CONTRATTO]
,[DATA_SOTTOSCRIZIONE]
,[COD_STATO]
,[NUM_POLIZZA]
,[COD_MAF]
,[COD_INTERNO]
,[COD_SOTTOPRODOTTO]
,[TIPO_PRODOTTO]
,[NOME_PROGETTO]
,[ID_AREA]
,[DATA_OPERAZIONE]
,[DATA_VALUTA]
,[DATA_REGOLAMENTO]
,[QUANTITA]
,[PREZZO]
,[CTV]
,[CTV_NOMINALE]
,[VERSATO_NETTO]
,[PARTVIA_DISINV]
,[DATA_PARTVIA_DISINV]
,[PARTVIA_INV]
,[REND_SOTTOSCRIZIONE]
,[REND_TRIMESTRE]
,[REND_ANNO]
,STRTYPE
,COMPLEX
,EMITTENTE
,SPB_CONTR_SINTESI.ISIN
,[ID_ELAB]
,[TIPO_ELAB])
SELECT
RETE,
COD_FISCALE,
POSITIONID,
COD_PRODOTTO,
ID_CONTRATTO,
DATA_SOTTOSCRIZIONE,
COD_STATO,
NUM_POLIZZA,
COD_MAF,
COD_INTERNO,
COD_SOTTOPRODOTTO,
TIPO_PRODOTTO,
NOME_PROGETTO,
ID_AREA,
DATA_OPERAZIONE,
DATA_VALUTA,
DATA_REGOLAMENTO,
QUANTITA,
PREZZO,
CTV,
CTV_NOMINALE,
VERSATO_NETTO,
PARTVIA_DISINV,
DATA_PARTVIA_DISINV,
PARTVIA_INV,
REND_SOTTOSCRIZIONE,
REND_TRIMESTRE,
REND_ANNO,
STRTYPE,
COMPLEX,
EMITTENTE,
ISIN,
ID_ELAB,
TIPO_ELAB
FROM #PATRIMONIO
UNION ALL -- MODIFICA PER AVERE TUTTI I PRODOTTI NON ALLOCATI
SELECT
SPB_CONTR_SINTESI.RETE AS RETE,
SPB_CONTR_SINTESI.CODICEFISCALE AS COD_FISCALE,
SPB_CONTR_SINTESI.POSITIONID AS POSITIONID,
SUBSTRING(SPB_CONTR_SINTESI.POSITIONID,1,57) AS COD_PRODOTTO,
SPB_CONTR_SINTESI.CODICECONTRATTO AS ID_CONTRATTO,
CASE
WHEN SPB_CONTR_SINTESI.TIPOPRODOTTO IN ('DT', 'FI') AND SPB_CONTR_SINTESI.DATAINIZIORENDIMENTO IS NOT NULL THEN SPB_CONTR_SINTESI.DATAINIZIORENDIMENTO
ELSE SPB_CONTR_SINTESI.DATADISOTTOSCRIZIONE
END AS DATA_SOTTOSCRIZIONE,
SPB_CONTR_SINTESI.CODICESTATO AS COD_STATO,
SPB_CONTR_SINTESI.NUMEROPOLIZZA AS NUM_POLIZZA,
SPB_CONTR_SINTESI.CODICEMAF AS COD_MAF,
SPB_CONTR_SINTESI.CODICEINTERNO AS COD_INTERNO,
SPB_CONTR_SINTESI.CODICESOTTOPRODOTTO AS COD_SOTTOPRODOTTO,
SPB_CONTR_SINTESI.TIPOPRODOTTO AS TIPO_PRODOTTO,
LTRIM(RTRIM(NEWPOSITION.NOME_PROGETTO)) AS NOME_PROGETTO,
ISNULL(NEWPOSITION.NEED_BREVE,'Na') AS ID_AREA,
SPB_CONTR_SINTESI.DATADIRIFERIMENTO AS DATA_OPERAZIONE,
CONVERT(DATETIME, SPB_CONTR_SINTESI.DATAVALNAVAL, 105) AS DATA_VALUTA, -- 105 PER FORMAT DD/MM/YYYY
NULL AS DATA_REGOLAMENTO,
convert(decimal(15,3),SPB_CONTR_SINTESI.QUOTE) AS QUANTITA,
SPB_CONTR_SINTESI.PREZZO AS PREZZO,
convert(decimal(15,3),SPB_CONTR_SINTESI.CTV) AS CTV,
convert(decimal(15,3),SPB_CONTR_SINTESI.VALORE) AS CTV_NOMINALE,
CASE
WHEN (SPB_CONTR_SINTESI.TIPOPRODOTTO = 'GE'
OR SPB_CONTR_SINTESI.TIPOPRODOTTO = 'GES')
AND SPB_CONTR_SINTESI.DATADISOTTOSCRIZIONE < cast('2007-01-01' AS DATETIME)
THEN NULL
ELSE convert(decimal(15,3),SPB_CONTR_SINTESI.CVN)
END AS VERSATO_NETTO,
convert(decimal(15,3),SPB_CONTR_SINTESI.PARTVIA) AS PARTVIA_DISINV,
SPB_CONTR_SINTESI.PARTVIAAL AS DATA_PARTVIA_DISINV,
--SPB_PARTITE_VIAGG.IMPORTOVERSATO AS PARTVIA_INV,
NULL AS PARTVIA_INV,
convert(decimal(8,5),SPB_CONTR_SINTESI.RENDIMENTODASOTTOSCRIZIONE) AS REND_SOTTOSCRIZIONE,
convert(decimal(8,5),SPB_CONTR_SINTESI.RENDIMENTODAINIZIOTRIMESTRE) AS REND_TRIMESTRE,
convert(decimal(8,5),SPB_CONTR_SINTESI.RENDIMENTODAINIZIOANNO) AS REND_ANNO,
STRTYPE,
COMPLEX,
EMITTENTE,
SPB_CONTR_SINTESI.ISIN,
@ID_ELAB AS ID_ELAB,
@TIPO_ELAB AS TIPO_ELAB
FROM C6STAGING.SPB_CONTR_SINTESI
LEFT JOIN #PATRIMONIO PATR
ON
SPB_CONTR_SINTESI.RETE = PATR.RETE
AND SPB_CONTR_SINTESI.CODICEFISCALE = PATR.COD_FISCALE
AND SPB_CONTR_SINTESI.POSITIONID = PATR.POSITIONID
/*LEFT JOIN C6STAGING.SPB_PARTITE_VIAGG
ON
SPB_PARTITE_VIAGG.CODICECONFERIMENTO = SPB_CONTR_SINTESI.CODICECONTRATTO*/
LEFT JOIN C6STAGING.vNewPositionProposta NEWPOSITION
ON
SPB_CONTR_SINTESI.RETE = NEWPOSITION.RETE
AND SPB_CONTR_SINTESI.CODICEFISCALE = NEWPOSITION.CODICEFISCALE
AND SPB_CONTR_SINTESI.POSITIONID = NEWPOSITION.positionIDProposta
WHERE SPB_CONTR_SINTESI.POSITIONID IS NOT NULL
AND PATR.POSITIONID IS NULL
DROP TABLE #PATRIMONIO
-- Log esecuzione
UPDATE
LOG_ESECUZIONE
SET
Fine = GETDATE(),
Tipo = 'INSERT',
Righe = @@ROWCOUNT
WHERE
Nome = 'DM_PATRIMONIO_BF' AND
Inizio = (
SELECT
MAX(Inizio)
FROM
LOG_ESECUZIONE
WHERE
Nome = 'DM_PATRIMONIO_BF'
)
END