--[C6MartPeriodico].[PL_S172ProtezioneCapitaleAreeBisogno] 'f', '01913040406'
CREATE procedure [C6MartPeriodico].[PL_S172ProtezioneCapitaleAreeBisogno]
	-- Add the parameters for the stored procedure here
	@Rete char(1), 
	@CodiceFiscale varchar(16)
AS
BEGIN
SELECT -- PER DIVERSI DA CC ************************
		case 
		    -- modifica per segnalazione qc del 21/12/2017 - cf S-VCCGRL39E57E356Q -	M.Diacci
			     --when (Isin = 'LU1106988527' and cod_interno in ('L191', 'RS', 'RM', 'RB', 'RV')) then 'INTERFUND 80' -- INTERFUND 80
				 when (Isin = 'LU1106988527' ) then 'INTERFUND 80' -- INTERFUND 80
		    -- fine modifica per segnalazione qc del 21/12/2017 - cf S-VCCGRL39E57E356Q -	M.Diacci
			when (tipo_prodotto = 'fi' and cod_sottoprodotto = 'f43' and cod_interno = '01') then 'FONDITALIA 80' 	-- FONDITALIA 80
			when (cod_sottoprodotto = 'cs80') then 'My Blue Protection 80'
			when (cod_sottoprodotto = 'ct80') then 'My White Protection 80'
			when (cod_interno = 'rf') then 'Linea Multiramo'
			else ''
		end as nomeprod,
		RETE AS RETE,
		cod_fiscale AS COD_FISCALE,
		POSITION_ID AS POSITIONID,
		SUBSTRING(POSITION_ID,1,57) AS COD_PRODOTTO, 
		ID_CONTRATTO AS ID_CONTRATTO,
        CASE WHEN ISDATE(data_sottoscrizione) = 0 THEN NULL
				ELSE CAST(data_sottoscrizione AS DATETIME)
		END AS DATA_SOTTOSCRIZIONE,
        null AS COD_STATO,
		NUM_POLIZZA AS NUM_POLIZZA,
		COD_MAF AS COD_MAF,
		COD_INTERNO AS COD_INTERNO,
		COD_SOTTOPRODOTTO AS COD_SOTTOPRODOTTO,
		TIPO_PRODOTTO AS TIPO_PRODOTTO,
		id_area AS ID_AREA,
		CTV AS ctv,
		ISIN,
		--CON.chiaveClientePB,
        REND_NON_RAPPR,
        ORDINAMENTO_PROGETTO AS ORDINAMENTO_PROGETTO,
        ORIZZ_TEMP_NUM,
        --CASE WHEN ISNULL(ORIZZONTETEMPORALE, 0) = 0 THEN NULL ELSE  LTRIM(RTRIM(ORIZZONTETEMPORALE)) + ' anni' END AS ORIZZONTETEMPORALE,
        CHIAVE_PROGETTO,
		--fix 17/7/2019 per problemi di arrotondamento
			 --convert(decimal(12,2),0) as controvalore_protetto
			 convert(decimal(12,4),0) as controvalore_protetto
		--fine fix 17/7/2019 per problemi di arrotondamento
	INTO #PATR_BF
 from c6martperiodico.patrimonio_bf
	WHERE
	cod_fiscale = @CodiceFiscale 
	and rete = @rete
		  and 
		  (
		  -- modifica per segnalazione qc del 21/12/2017 - cf S-VCCGRL39E57E356Q -	M.Diacci
		     --(Isin = 'LU1106988527' and cod_interno in ('L191', 'RS', 'RM', 'RB', 'RV')) -- INTERFUND 80/CAPPROT
		     (Isin = 'LU1106988527' ) -- INTERFUND 80/CAPPROT
		  -- fine modifica per segnalazione qc del 21/12/2017 - cf S-VCCGRL39E57E356Q -	M.Diacci
			or
		   (tipo_prodotto = 'fi'		-- FONDITALIA 80/FOI80
		    and cod_sottoprodotto = 'f43'
		    and cod_interno = '01')
			or
				cod_sottoprodotto in ('cs80', 'ct80') -- myblue, mywhite 
			or
		   (cod_interno = 'RF')		-- LINEA MULTIRAMO PROTETTA CODPROD=RF/SUBPROD=MP
			)
			--aggiunta 20240509
			and CTV>0.1
--------------------------------------- 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  
		  where  
		  p.cod_interno = 'RF' 
------------------------------------------------------------------------raggruppo per area
		  -- modifica del 21/12/2017 
		    --select id_area,round(sum(controvalore_protetto),0) as totCapProt			  
				-- 20180717 Modificata per codificare Pre1 o Pre2 in Pre			  
				 --select id_area,sum(controvalore_protetto) as totCapProt
				 select
					 case
						when id_area = 'Pre1' or id_area = 'Pre2' then 'Pre'
						else id_area
					end as id_area,
					sum(controvalore_protetto) as totCapProt
				--fine modifica del 20180717
			-- fine modifica del 21/12/2017
		  into #capitaleProtetto
		  from #PATR_BF
		  --- modifica del 20/12/2017 per segnalazione qc 
		     --where REND_NON_RAPPR = 0
		  --- fine modifica del 20/12/2017 per segnalazione qc 
		  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
			--fix 17/7/2019 per problemi di arrotondamento
					--else cap.totCapProt
					else convert(decimal(12,2),cap.totCapProt)
			--fine fix 17/7/2019 per problemi di arrotondamento
			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