PDC_REPORT_CreazioneDB/sql/storedCollaudo/C6MartPeriodico_PL_S172ProtezioneCapitaleAreeBisogno_20171215.sql
2025-06-06 19:02:52 +02:00

111 lines
3.9 KiB
SQL

-- Schema: C6MartPeriodico
-- Stored Procedure: PL_S172ProtezioneCapitaleAreeBisogno_20171215
--[C6MartPeriodico].[PL_S172ProtezioneCapitaleAreeBisogno] 'f','BCCRRT43T09H449J'
CREATE procedure [C6MartPeriodico].[PL_S172ProtezioneCapitaleAreeBisogno_20171215]
-- Add the parameters for the stored procedure here
@Rete char(1),
@CodiceFiscale varchar(16)
AS
BEGIN
-------------- recupero i totali dei prodotti a capitale protetto raggruppati per area di bisogno
SELECT -- PER DIVERSI DA CC ************************
case
when (SPB.Isin = 'LU1106988527' and codprod in ('L191', 'RS', 'RM', 'RB', 'RV')) then 'INTERFUND 80' -- INTERFUND 80
when (spb.tipprod = 'fi' and spb.subprod = 'f43' and spb.codint = '01') then 'FONDITALIA 80' -- FONDITALIA 80
when (spb.subprod = 'cs80') then 'My Blue Protection 80'
when (spb.subprod = 'ct80') then 'My White Protection 80'
else ''
end as nomeprod,
SPB.RETE AS RETE,
SPB.CODFIS AS COD_FISCALE,
SPB.POSITIONID AS POSITIONID,
SUBSTRING(SPB.POSITIONID,1,57) AS COD_PRODOTTO,
SPB.CODCONF AS ID_CONTRATTO,
CASE WHEN ISDATE(SPB.DTSOTTOS) = 0 THEN NULL
ELSE CAST(CAST(SPB.DTSOTTOS AS VARCHAR(8)) AS DATETIME)
END AS DATA_SOTTOSCRIZIONE,
null AS COD_STATO,
SPB.NUMPOL AS NUM_POLIZZA,
SPB.MAF AS COD_MAF,
SPB.CODINT AS COD_INTERNO,
SPB.SUBPROD AS COD_SOTTOPRODOTTO,
SPB.TIPPROD AS TIPO_PRODOTTO,
CASE
WHEN CON.area = 'Inv' AND CON.tipoProgetto = 0 THEN 'Prodotti non associati a progetti'
ELSE replace (LTRIM(RTRIM(CON.nomeProgetto)), ';', '')
END AS NOME_PROGETTO,
case when isnull(CON.tipoProgetto, '') = '' then 'Default'
when CON.tipoProgetto = 0 then 'Default'
else 'ProgettoInvestimento' end as TIPO_PROGETTO,
CON.area AS ID_AREA,
SPB.CTV AS ctv,
SPB.ISIN,
CON.chiaveClientePB,
0 AS REND_NON_RAPPR,
CON.ChiaveProgetto AS ORDINAMENTO_PROGETTO,
CASE WHEN CON.orizzonteTemporale = 0 THEN NULL ELSE CON.orizzonteTemporale END AS ORIZZ_TEMP_NUM,
CASE WHEN ISNULL(ORIZZONTETEMPORALE, 0) = 0 THEN NULL ELSE LTRIM(RTRIM(ORIZZONTETEMPORALE)) + ' anni' END AS ORIZZONTETEMPORALE,
CON.CHIAVEPROGETTO AS CHIAVEPROGETTO,
convert(decimal(12,2),0) as controvalore_protetto
INTO #PATR_BF
FROM C6StagingPeriodico.SPB_CONTR_SINTESI_v SPB
INNER JOIN C6StagingPeriodico.RP_Consulenza CON
ON CON.rete = SPB.RETE
AND CON.cod_fiscale = SPB.CODFIS
AND CON.Position_id = SPB.positionid
LEFT JOIN C6StagingPeriodico.RP_ChiaviMonitoraggio CM
ON CON.chiaveprogetto = CM.chiaveProgetto
AND CM.stato = 1
WHERE
spb.CODFIS = @CodiceFiscale and
SPB.POSITIONID IS NOT NULL
and CON.area <> 'CC' and SPB.TIPPROD <> 'CC'
and SPB.Isin <> 'EURO00000009'
and SPB.Isin <> 'EURO10000007'
and CON.area <> 'SELF'
and
((SPB.Isin = 'LU1106988527' and codprod in ('L191', 'RS', 'RM', 'RB', 'RV')) -- INTERFUND 80/CAPPROT
or
(spb.tipprod = 'fi' -- FONDITALIA 80/FOI80
and spb.subprod = 'f43'
and spb.codint = '01')
or
spb.subprod in ('cs80', 'ct80') -- myblue, mywhite
or
(spb.codprod = 'RF' -- LINEA MULTIRAMO PROTETTA CODPROD=RF/SUBPROD=MP
and spb.subprod = 'MP')
)
--------------------------------------- calcolo il capitale protetto per ogni prodotto della linea CS80/CT80
update p
set controvalore_protetto = (fvi.[controvalore_prot] * (p.ctv/fvi.somma_ctv))
from #PATR_BF p
inner join
C6MartPeriodico.capprot_fvi as fvi
on p.rete = fvi.rete and p.cod_fiscale=fvi.codfis and p.id_contratto = fvi.cod_conf and p.cod_sottoprodotto = fvi.subprod
where
p.cod_interno = 'RS' and p.cod_sottoprodotto in ('CS80','CT80')
-------------------------------------- aggiorno il capitale protetto dell'Interfund Crescita protetta 80
UPDATE patrimonio
set patrimonio.controvalore_protetto = capprot.controvalore_prot
from #PATR_BF as patrim