﻿-- [C6Mart].[PL_D_S178CasiParticolari] 'F','MTTSRA00H61D704A'
CREATE procedure [C6Mart].[PL_D_S178CasiParticolari]
 -- Add the parameters for the stored procedure here
 @Rete char(1), 
 @CodiceFiscale varchar(16)
AS
BEGIN
	declare @Copertura decimal(10,2)
	declare @SoloProdottiSenzaAdeguatezza int
	declare @SoloCC int
	declare @SoloProdottiSenzaAdeguatezzaOrSoloCC int
	declare @IDTesto int
	set @IDTesto = 0
	------------------------------------------------------------------------------ CASO 1 COPERTURA = 0
	select @Copertura=copertura
    from C6Mart.RISCHIO_AGGREGATO
	-- 'COMPLESSIVO|BF' come viene fatto nella PL_D_S157ConfrontoPiramidi per la copertura_tot, campo per l'esposizione della nota sulla coperura sotto la piramide
    where cod_aggreg='COMPLESSIVO|BF' 
    AND COD_FISCALE = @COdiceFISCALE
	and RETE= @RETE
------------------------------------------------------------------------------ FINE CASO 1
------------------------------------------------------------------------------ CASO 2 SENZA PRODOTTI IN ADEGUATEZZA
	-- Controllo se nel Portafoglio c'è solo CC
	select rete, cod_fiscale, id_area
	into #t1
	from c6mart.patrimonio_bf
	where rete = @Rete and cod_fiscale = @CodiceFiscale
	group by rete,cod_fiscale, id_area

	select rete, cod_fiscale, count(*) as numero
	into #t2
	from #t1
	group by rete, cod_fiscale having count(*) = 1

	if exists(
				select p.rete, p.cod_fiscale
				from c6mart.patrimonio_bf p
					inner join #t2
					on p.rete = #t2.rete
					and p.cod_fiscale = #t2.cod_fiscale
				--where rete + cod_fiscale  in (select rete + cod_fiscale from #t2)
				where p.id_area = 'liq'
				and p.tipo_prodotto = 'cc'
			)

				set @soloCC = 1
	else
				set @soloCC = 0

	drop table #t1
	drop table #t2
	-- Se le count torna 0 record significa che in ptf ci sono solo prodotti senza adeguatezza
	select @SoloProdottiSenzaAdeguatezza= count(*) 
	from c6mart.patrimonio_bf patr
	left join [C6Staging].[Prodotti_Fuori_Adeguatezza] senza
	on patr.cod_interno = senza.codinterno and patr.cod_sottoprodotto=senza.codsottoprodotto
	where patr.rete = @rete
	and patr.cod_fiscale = @codicefiscale
	and senza.codinterno is null
		-- Se si verifica uno dei due casi, imposto la variabile a 1
	if @SoloProdottiSenzaAdeguatezza = 0 or @SoloCC = 1
		set @SoloProdottiSenzaAdeguatezzaOrSoloCC = 1
	else
		set @SoloProdottiSenzaAdeguatezzaOrSoloCC = 0
----------------------------------------------------------------------------- FINE CASO 2
-- CASO 3 COPERTURA = 0 + e ptf con solo PRODOTTI senza ADEGUATEZZA
-- FINE CASO 3
-- RISULTATO FINALE
	if(@Copertura = 0)
	begin
		--if(@SoloProdottiSenzaAdeguatezza=0)
		if(@SoloProdottiSenzaAdeguatezzaOrSoloCC = 1)
			begin
				set @IDTesto = 3
			end
		else
			begin
				set @IDTesto = 1
			end
	end
	else
		--if(@SoloProdottiSenzaAdeguatezza=0)
		if(@SoloProdottiSenzaAdeguatezzaOrSoloCC = 1)
		begin
			set @IDTesto = 2
		end
	select ID, Testo
	from [C6Mart].[TB_S178CasiParticolari_Testi]
	where ID = @IDTesto
-- ********************* PARTE FINTA
--select ID, Testo
--	from [C6Mart].[TB_S178CasiParticolari_Testi]
--	where ID = 0
end