﻿-----------------------------------------------------------------------------------------------
--		LA FUNZIONE TORNA L'INDICATORE DI VALUTAZIONE (MIFID 2) PER IL CLIENTE SPECIFICATO
--		IL DOMINIO DELL'INDICATORE PASSATO E':
--          (1) - RISCHIO MERCATO
--			(2) - RISCHIO CREDITO
--			(3) - CONCENTRAZIONE EMITTENTI
--			(4) - COMPLESSITA'
--			(5) - CONCENTRAZIONE IN PRODOTTI COMPLESSI
--			(6) - FREQUENZA DELLE OPERAZIONI
--			(7) - LIQUIDITA'/LIQUIDABILITA' (ORIZZONTE TEMPORALI DEGLI INVESTIMENTI)
--
-- select [C6MartPeriodico].[getIndicatoreValutazione] ('f','00247580970',default)
CREATE FUNCTION [C6MartPeriodico].[getIndicatoreValutazione]
(
	@Rete char(1), 
	@CodiceFiscale varchar(16),
	@indicatore smallint = 4
)
RETURNS VARCHAR(5)
AS
BEGIN
	DECLARE @retData VARCHAR(5)
	DECLARE @DataFineTrim VARCHAR(8)  
    SET @DataFineTrim = c6martperiodico.getTrimestre2(getDate(),0)  
	if @indicatore = 4
		select @retData = case
			when flgprof = 'S' then 'prof'
			when flagpg = 1 and flgprof = 'N' and  flagnqp = 'S' and flgprlrde = 'N' then '-1' --Massimiliano dice che va messo prima di tutti senza testare altri flag 17/5/2018
			when upper(clcompl) = 'N' and
						(select count(*) from [C6StagingPeriodico].[WSEIAN2] where codfis = @CodiceFiscale and dttrim = @DataFineTrim and NOCOMPL='S') > 0 then '0'
			when upper(clcompl) = 'N' and flagpg = 0 then '0'
			when upper(clcompl) = 'N' and flagpg = 1 and flgprlrde = 'N' then '0'
			when upper(clcompl) = 'S' then '1'
		    end		 
		from C6STAGINGPERIODICO.WSEIAN2
		where 1=1
		AND RETE = @Rete
		and codfis like 
			CASE when @CodiceFiscale like '%FF@%'THEN '%%'
			ELSE @CodiceFiscale
			END
		and codman = 
			CASE when @CodiceFiscale like '%FF@%' THEN substring(@CodiceFiscale, 4,len(@CodiceFiscale)-3)
			ELSE ''
			END
		and dttrim = @DataFineTrim  
    ELSE SET @retData =  'NN' -- PER IL MOMENTO RITORNO SOLO L'INDICATORE COMPLESSITA'
return @retData
END