-- 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
