233 lines
8.6 KiB
SQL
233 lines
8.6 KiB
SQL
--[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 patrimonio
|
|
inner join
|
|
C6MartPeriodico.CAPPROT as capprot
|
|
on patrimonio.rete = capprot.rete and patrimonio.cod_fiscale=capprot.codfis
|
|
where patrimonio.id_contratto = capprot.cod_conf
|
|
----------------------------------------- aggiorno il capitale protetto del Fonditalia Crescita protetta 80
|
|
UPDATE patrimonio
|
|
set patrimonio.controvalore_protetto = foi.ctrvimpprot
|
|
from #PATR_BF as patrimonio
|
|
inner join
|
|
C6MartPeriodico.FOI80 as foi
|
|
on patrimonio.rete = foi.rete and patrimonio.cod_fiscale=foi.codfis
|
|
where patrimonio.id_contratto = foi.codconf
|
|
----------------------------------------- aggiorno il capitale protetto della linea multiramo protetta
|
|
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 = 'RF' and p.cod_sottoprodotto = 'MP'
|
|
--------------------------------------------------------------------------
|
|
SELECT
|
|
TSCA.RETE,
|
|
TSCA.CODFIS,
|
|
C6StagingPeriodico.RP_Info_DaProdottoCSaCatalogo(
|
|
TSCA.TIPPROD,
|
|
CONS.CODINTERNO,
|
|
CONS.CODMAF,
|
|
CONS.CodIsin,
|
|
TSCA.SUBPROD
|
|
)
|
|
+
|
|
dbo.Crea_positionID(
|
|
TSCA.TIPPROD,
|
|
CONS.CODINTERNO,
|
|
CONS.CODMAF,
|
|
'',
|
|
TSCA.SUBPROD,
|
|
TSCA.CODCONF,
|
|
CONS.NUMPOLIZZA,
|
|
TSCA.CONTO,
|
|
TSCA.RUBR,
|
|
TSCA.CUSTGAR,
|
|
TSCA.TERMID,
|
|
TSCA.ANNO,
|
|
TSCA.PROG
|
|
) AS POSITION_ID
|
|
INTO #REND_NON_RAPPR
|
|
FROM
|
|
C6StagingPeriodico.TSCABP AS TSCA
|
|
inner join
|
|
C6StagingPeriodico.tcptab as TCP
|
|
ON TCP.CODFIS=TSCA.CODFIS
|
|
AND TCP.RETE=TSCA.RETE
|
|
AND TCP.CODCONF=TSCA.CODCONF
|
|
AND TCP.CODPROG=TSCA.CODPROG
|
|
AND TCP.CODPROD=TSCA.CODPROD
|
|
AND TCP.SUBPROD=TSCA.SUBPROD
|
|
AND TCP.ISIN=TSCA.ISIN
|
|
AND TCP.dtrif=TSCA.dtrif
|
|
AND TCP.dtingresso=TSCA.dtingresso
|
|
AND TCP.CONTO=TSCA.CONTO
|
|
AND TCP.CUSTGAR=TSCA.CUSTGAR
|
|
AND TCP.CODABI=TSCA.CODABI
|
|
AND ISNULL(TCP.PROG,'XXX')=ISNULL(TSCA.PROG,'XXX')
|
|
AND ISNULL(TCP.TERMID,'XXX')=ISNULL(TSCA.TERMID,'XXX')
|
|
AND ISNULL(TCP.ANNO,'XXX')=ISNULL(TSCA.ANNO,'XXX')
|
|
inner join
|
|
C6StagingPeriodico.RP_CONSULENZA AS CONS
|
|
ON
|
|
TSCA.CODCONF = CONS.CODCONF
|
|
AND (TSCA.CODPROD = CONS.CodInterno
|
|
OR TSCA.CODABI = CONS.CodInterno)
|
|
AND ISNULL(TSCA.SUBPROD, '') = ISNULL(CONS.CODSOTTOPRODOTTO, '')
|
|
AND ISNULL(TSCA.ISIN, '') = ISNULL(CONS.CodIsin, '')
|
|
INNER JOIN
|
|
C6StagingPeriodico.RP_CHIAVIMONITORAGGIO AS CM
|
|
ON CONS.chiaveprogetto = CM.chiaveProgetto
|
|
AND CM.stato = 1
|
|
and TSCA.CODPROG = CM.IDMONITORAGGIO
|
|
WHERE
|
|
TSCA.CODFIS =@CodiceFiscale
|
|
and TCP.dtuscita = '99991231'
|
|
UPDATE PATR_BF
|
|
SET PATR_BF.REND_NON_RAPPR = 1
|
|
FROM
|
|
#REND_NON_RAPPR AS REND_NON_RAPPR
|
|
INNER JOIN #PATR_BF AS PATR_BF
|
|
ON PATR_BF.RETE = REND_NON_RAPPR.RETE
|
|
AND PATR_BF.COD_FISCALE =
|
|
CASE WHEN(SUBSTRING(PATR_BF.COD_FISCALE,1,3) = 'FF@') THEN 'FF@'+REND_NON_RAPPR.CODFIS
|
|
ELSE REND_NON_RAPPR.CODFIS
|
|
END
|
|
AND PATR_BF.POSITIONID = REND_NON_RAPPR.POSITION_ID
|
|
-----------------------------------------------------
|
|
----------------------------------------raggruppo per area
|
|
select id_area,round(sum(controvalore_protetto),0) as totCapProt
|
|
into #capitaleProtetto
|
|
from #PATR_BF
|
|
where REND_NON_RAPPR = 0
|
|
group by id_area
|
|
---------------------------------------------------------
|
|
SELECT distinct [NeedArea]
|
|
,[AreaName]
|
|
,[PercentualeModello]
|
|
,[PercentualeAttuale]
|
|
,[ControvaloreAttuale]
|
|
,[ControvaloreModello]
|
|
,[Totale_Percentuale]
|
|
,[DifferenzaEuro]
|
|
,[DifferenzaPercentuale]
|
|
,[var_needarea]
|
|
,[var_needareaString]
|
|
,[copertura_needarea]
|
|
,[copertura_needareaString]
|
|
,[Nota]
|
|
,[somma_controvalAttuale]
|
|
,[somma_controvalModello]
|
|
,[somma_percentualeAttuale]
|
|
,[somma_percentualeModello]
|
|
,[var_tot]
|
|
,[var_totString]
|
|
,[var_tot_pir]
|
|
,[var_tot_pirString]
|
|
,[copertura_tot]
|
|
,[copertura_totString]
|
|
,[copertura_tot_pir]
|
|
,[copertura_tot_pirString]
|
|
,[VAR_RISFIN]
|
|
,[VAR_RISFINSTRING]
|
|
,[copertura_risfin]
|
|
,[copertura_risfinString]
|
|
,[ordinamento]
|
|
,case
|
|
when ISNULL(cap.totCapProt,0) = 0 then 0
|
|
else cap.totCapProt
|
|
end as [capprot]
|
|
FROM [C6MartPeriodico].[TB_S133_S157DatiPiramide] pir
|
|
left join #capitaleProtetto cap
|
|
on pir.needarea = cap.id_area
|
|
WHERE [Rete] = @Rete
|
|
AND [CodiceFiscale] = @CodiceFiscale
|
|
order by ordinamento
|
|
END |