-- Schema: C6MartPeriodico
-- Stored Procedure: Gestione_ProdottiProtetti









--[C6MartPeriodico].[Gestione_ProdottiProtetti] 'F', 'BBNLSN51E27D612T'
CREATE procedure [C6MartPeriodico].[Gestione_ProdottiProtetti]
	-- Add the parameters for the stored procedure here
	-- Add the parameters for the stored procedure here
	@Rete char(1), 
	@CodiceFiscale varchar(16)
AS

declare @isinInterfund80 varchar(20)

set @isinInterfund80 = 'LU1106988527'

BEGIN

declare @OrdineRiga int
declare @conta int

set @conta = 0
set @OrdineRiga = 0

	-- 1 LINEA MULTIRAMO
		SELECT
			@CodiceFiscale as CodiceFiscale
			,'FV Sintonia Linea Protezione 85' as DescrizioneProdotto
			,COD_CONF as Contratto
			,'TipoParagrafo1' as TipoParagrafo
			,'TipoProdotto1' as TipoProdotto
			,ROW_NUMBER() OVER(order by @CodiceFiscale) as OrdineRiga
		into #LineaMultiramo
		from [C6MartPeriodico].[CAPPROT_FVI]
		where rete = @Rete
			and codfis = @CodiceFiscale
			and codprod = 'RF' and subprod = 'MP'

	    select @conta = count(*) from #LineaMultiramo

		if @conta > 0
			select @OrdineRiga = max(OrdineRiga) from #LineaMultiramo

	-- 2 BLUE AND WHITE
		SELECT
			@CodiceFiscale as CodiceFiscale
			,DES_PROD_TIT as DescrizioneProdotto
			,COD_CONF as Contratto
			,'TipoParagrafo2' as TipoParagrafo
			,
			case
				when SUBPROD = 'CS80' then 'TipoProdotto2'
				when SUBPROD = 'CT80' then 'TipoProdotto3'
			end as TipoProdotto
			,ROW_NUMBER() OVER(order by somma_ctv desc, controvalore_riferimento desc) + @OrdineRiga AS OrdineRiga
		into #BlueWhite
		from [C6MartPeriodico].[CAPPROT_FVI]
		where SUBPROD in ('CS80', 'CT80')
		and Rete = @Rete
		and CODFIS = @CodiceFiscale
		order by somma_ctv desc, controvalore_riferimento desc

		select @conta = count(*) from #BlueWhite

		if @conta > 0
			select @OrdineRiga = max(OrdineRiga) from #BlueWhite

	--3 INTERFUND
		SELECT
			a.CODFIS as CodiceFiscale
			,a.des_prod_tit as DescrizioneProdotto
			,'' as Contratto
			,'TipoParagrafo3' as TipoParagrafo
			,'TipoProdotto1' as TipoProdotto
			,@OrdineRiga + 1 AS OrdineRiga
		into #Interfund80
		FROM C6MartPeriodico.capprot a
		WHERE 1=1
		AND a.RETE = @Rete 
		AND a.CODFIS = @CodiceFiscale

		select @conta = count(*) from #Interfund80

		if @conta > 0
			select @OrdineRiga = max(OrdineRiga) from #Interfund80

	-- 4 FONDITALIA
		SELECT
			a.CODFIS as CodiceFiscale
			,a.desprodtit as DescrizioneProdotto
			,'' as Contratto
			,'TipoParagrafo3' as TipoParagrafo
			,'TipoProdotto2' as TipoProdotto
			,@OrdineRiga + 1 AS OrdineRiga
		into #Fonditalia80
		FROM c6martperiodico.foi80 a
		WHERE 1=1
		AND a.RETE = @Rete 
		AND a.CODFIS = @CodiceFiscale

	select * from #LineaMultiramo
	union
	select * from #BlueWhite
	union
	select * from #Interfund80
	union
	select * from #Fonditalia80
	order by OrdineRiga
END