﻿CREATE VIEW [C6Mart].[vPrometeiaTerziIntermediario_aladdin]
AS
SELECT 
	TUTTI.RETE				AS Rete,
	TUTTI.CODICEFISCALE 	AS CodiceFiscale,
	TUTTI.PORTAFOGLIO		AS Portafoglio,
	----------------------------------------------------------
	tutti.TIPOptf			as TIPOptf,
	tutti.COD_PRODOTTO_TERZI as COD_PRODOTTO_TERZI,
	tutti.ASSET_TERZI		as Asset_Terzi,
	tutti.FAMPRODT			as FAMPRODT,
	----------------------------------------------------------
	TUTTI.INTERMEDIARIO		AS Intermediario,
	TUTTI.COD_ISIN			AS CodiceIsin,
	TUTTI.COD_ADEGUATEZZA	AS CodiceAdeguatezza,
	TUTTI.COD_MAF			AS CodiceMaf,
	TUTTI.COD_INTERNO		AS CodiceInterno,
	TUTTI.COD_SOTTOPRODOTTO	AS CodiceSottoprodotto,
	TUTTI.PIAZZA			AS Piazza, 
	TUTTI.CODICEVALUTA		AS Codicevaluta, 
	TUTTI.CLASSE			AS Classe, 
	SUM(TUTTI.CONTROVALORE)	AS Controvalore,
	TUTTI.ESTRAZIONE		AS Estrazione
FROM (
	--43887
	-- 1. ASSET PER DATI PATRIMONIO TERZI NON IN CATALOGO
	SELECT 	
		case 
			when (PATRIMONIO_TERZI.TIPO_PRODOTTO = 'Conti correnti') then 'CONTI CORRENTI'
			else 'DATI NON IN CATALOGO' 
		end  AS ESTRAZIONE,
		PATRIMONIO_TERZI.RETE AS RETE,
		PATRIMONIO_TERZI.COD_FISCALE AS CODICEFISCALE,
		case 
			when (PATRIMONIO_TERZI.TIPO_PRODOTTO = 'Conti correnti') 
				then 'COMPLESSIVO|TERZI|' + PATRIMONIO_TERZI.INTERMEDIARIO + '|CC'
				else 'COMPLESSIVO|TERZI|' + PATRIMONIO_TERZI.INTERMEDIARIO + '|' + PATRIMONIO_TERZI.COD_PRODOTTO_TERZI 
		end AS PORTAFOGLIO,
		----------------------------------------------------------
		'COMPLESSIVO|TERZI' as TIPOptf,
		case 
			when (PATRIMONIO_TERZI.TIPO_PRODOTTO = 'Conti correnti') 
				then ''
				else PATRIMONIO_TERZI.COD_PRODOTTO_TERZI
		end as COD_PRODOTTO_TERZI,
		case 
			when (PATRIMONIO_TERZI.TIPO_PRODOTTO = 'Conti correnti') 
				then ''
				else ASSETCLASS_TERZI.COD_ADEGUATEZZA
		end	 as ASSET_TERZI,
		case 
			when (PATRIMONIO_TERZI.TIPO_PRODOTTO = 'Conti correnti') 
				then ''
				else ISNULL(PATRIMONIO_TERZI.DESCR_GRUPPO_PRODOTTO, PATRIMONIO_TERZI.TIPO_PRODOTTO)
		end	as FAMPRODT,
		----------------------------------------------------------
		PATRIMONIO_TERZI.INTERMEDIARIO AS INTERMEDIARIO,
		ASSETCLASS_TERZI.COD_ISIN AS COD_ISIN,
		--V aggiunto nel caso di conti correnti non a catalogo
		case 
			when (PATRIMONIO_TERZI.TIPO_PRODOTTO = 'Conti correnti') then 'EUR'
			else ASSETCLASS_TERZI.COD_ADEGUATEZZA 
		end AS COD_ADEGUATEZZA,
		ASSETCLASS_TERZI.COD_MAF AS COD_MAF,
		'$' AS COD_INTERNO,
		'$' AS COD_SOTTOPRODOTTO,
		'' AS PIAZZA, 
		'' AS CODICEVALUTA, 
		'' AS CLASSE, 
--Modifica per valore VAR errato a causa della franchigia 29/4/2020
		case 
			when (PATRIMONIO_TERZI.TIPO_PRODOTTO = 'Conti correnti') 
			then (case when(PATRIMONIO_TERZI.CTV -CAST(DBO.GETPARAMETRO('FRANCHIGIA_CC') as int))<0 then PATRIMONIO_TERZI.CTV else PATRIMONIO_TERZI.CTV -CAST(DBO.GETPARAMETRO('FRANCHIGIA_CC') as int) end)
			else (PATRIMONIO_TERZI.CTV * ASSET_PERC_TERZI.PERC) 
		end AS CONTROVALORE
		--(PATRIMONIO_TERZI.CTV * ASSET_PERC_TERZI.PERC) AS CONTROVALORE
	FROM C6MART.ASSET_PERC_TERZI
	INNER JOIN C6MART.ASSETCLASS_TERZI ON ASSET_PERC_TERZI.ID_ASSETCLASS = ASSETCLASS_TERZI.ID_ASSETCLASS
	INNER JOIN C6MART.PATRIMONIO_TERZI ON PATRIMONIO_TERZI.COD_PRODOTTO_TERZI  = ASSET_PERC_TERZI.COD_PRODOTTO_TERZI
	INNER JOIN C6MART.ANAG_PRODOTTI_TERZI ON ANAG_PRODOTTI_TERZI.COD_PRODOTTO_TERZI = PATRIMONIO_TERZI.COD_PRODOTTO_TERZI
	WHERE ASSET_PERC_TERZI.LIVELLO = 2
--		AND NOT (
--			--PATRIMONIO_TERZI.TIPO_PRODOTTO = 'Conti correnti' 
--			--AND 
----ANAG_PRODOTTI_TERZI.DESCR_PRODOTTO = 'Assets.FinancialAssets.CurrentAccount'
--		)
	UNION ALL
	--100923
	-- 2. ASSET PER DATI PATRIMONIO TERZI IN CATALOGO
	SELECT
		'DATI IN CATALOGO' AS ESTRAZIONE,
		PATRIMONIO_TERZI.RETE AS RETE, 
		PATRIMONIO_TERZI.COD_FISCALE AS CODICEFISCALE, 
		'COMPLESSIVO|TERZI|' + PATRIMONIO_TERZI.INTERMEDIARIO + '|' + PATRIMONIO_TERZI.COD_PRODOTTO_TERZI AS PORTAFOGLIO,
		----------------------------------------------------------
		'COMPLESSIVO|TERZI' as TIPOptf,
		PATRIMONIO_TERZI.COD_PRODOTTO_TERZI as COD_PRODOTTO_TERZI ,
		'' as ASSET_TERZI,
		ISNULL(PATRIMONIO_TERZI.DESCR_GRUPPO_PRODOTTO, PATRIMONIO_TERZI.TIPO_PRODOTTO) as FAMPRODT,
		----------------------------------------------------------
		PATRIMONIO_TERZI.INTERMEDIARIO AS INTERMEDIARIO,
		ANAG_PRODOTTI.COD_ISIN AS COD_ISIN,
		ANAG_PRODOTTI.COD_ADEGUATEZZA AS COD_ADEGUATEZZA, 
		ANAG_PRODOTTI.COD_MAF AS COD_MAF,
		ANAG_PRODOTTI.COD_INTERNO AS COD_INTERNO,
		ANAG_PRODOTTI.COD_SOTTOPRODOTTO AS COD_SOTTOPRODOTTO,
		'' AS PIAZZA, 
		'' AS CODICEVALUTA, 
		'' AS CLASSE, 
		(PATRIMONIO_TERZI.CTV * ISNULL(ASSET_PERC.PERC,1)) AS CONTROVALORE
	FROM C6MART.PATRIMONIO_TERZI 
	INNER JOIN C6MART.ANAG_PRODOTTI ON ANAG_PRODOTTI.COD_PRODOTTO = PATRIMONIO_TERZI.COD_PRODOTTO 
	LEFT OUTER JOIN C6MART.ASSET_PERC ON ASSET_PERC.COD_PRODOTTO = PATRIMONIO_TERZI.COD_PRODOTTO
		AND ASSET_PERC.LIVELLO = 2
	UNION ALL
	-- 3 ASSET NON ESISTENTI PER DATI PATRIMONIO TERZI DEL CATALOGO CON ADEGUATEZZA A NULL (SETTATI AD ALTRO PER CONVENZIONE)
	SELECT
		'DATI IN CATALOGO CON COD_ADEGUATEZZA NULL E ASSET NON VALORIZZATO' AS ESTRAZIONE,
		PATRIMONIO_TERZI.RETE AS RETE,
		PATRIMONIO_TERZI.COD_FISCALE AS CODICEFISCALE,
		'COMPLESSIVO|TERZI|' + PATRIMONIO_TERZI.INTERMEDIARIO + '|' + PATRIMONIO_TERZI.COD_PRODOTTO_TERZI AS PORTAFOGLIO,
		----------------------------------------------------------
		'COMPLESSIVO|TERZI' as TIPOptf,
		PATRIMONIO_TERZI.COD_PRODOTTO_TERZI as COD_PRODOTTO_TERZI,
		'' as ASSET_TERZI,
		ISNULL(PATRIMONIO_TERZI.DESCR_GRUPPO_PRODOTTO, PATRIMONIO_TERZI.TIPO_PRODOTTO) as FAMPRODT,
		----------------------------------------------------------
		PATRIMONIO_TERZI.INTERMEDIARIO AS INTERMEDIARIO,
		ASSETCLASS_TERZI.COD_ISIN AS COD_ISIN,
		ASSETCLASS_TERZI.COD_ADEGUATEZZA AS COD_ADEGUATEZZA,
		ASSETCLASS_TERZI.COD_MAF AS COD_MAF,
		'$' AS COD_INTERNO,
		'$' AS COD_SOTTOPRODOTTO,
		'' AS PIAZZA, 
		'' AS CODICEVALUTA, 
		'' AS CLASSE, 
		(PATRIMONIO_TERZI.CTV * ASSET_PERC.PERC) AS CONTROVALORE
	FROM C6MART.PATRIMONIO_TERZI
	INNER JOIN C6MART.ANAG_PRODOTTI ON ANAG_PRODOTTI.COD_PRODOTTO = PATRIMONIO_TERZI.COD_PRODOTTO
	LEFT JOIN C6MART.ASSET_PERC ON ASSET_PERC.COD_PRODOTTO = PATRIMONIO_TERZI.COD_PRODOTTO
	INNER JOIN C6MART.ASSETCLASS_TERZI ON ASSETCLASS_TERZI.ID_ASSETCLASS = 'AL1'
	WHERE ANAG_PRODOTTI.COD_ADEGUATEZZA = '$'
		AND ASSET_PERC.COD_PRODOTTO IS NULL
	--V CC terzi
	union all
	--2919
	SELECT 	
		--PATRIMONIO_TERZI.tipo_prodotto,
		'CONTI CORRENTI' AS ESTRAZIONE,
		PATRIMONIO_TERZI.RETE AS RETE,
		PATRIMONIO_TERZI.COD_FISCALE AS CODICEFISCALE,
		'COMPLESSIVO|TERZI|' + PATRIMONIO_TERZI.INTERMEDIARIO + '|CC',-- + PATRIMONIO_TERZI.COD_PRODOTTO_TERZI AS PORTAFOGLIO,
		----------------------------------------------------------
		'COMPLESSIVO|TERZI' as TIPOptf,
		'' as COD_PRODOTTO_TERZI,
		'' as ASSET_TERZI,
		'' as  FAMPRODT,
		----------------------------------------------------------
		PATRIMONIO_TERZI.INTERMEDIARIO AS INTERMEDIARIO,
		ASSETCLASS_TERZI.COD_ISIN AS COD_ISIN,
		ASSETCLASS_TERZI.COD_ADEGUATEZZA AS COD_ADEGUATEZZA,
		ASSETCLASS_TERZI.COD_MAF AS COD_MAF,
		'$' AS COD_INTERNO,
		'$' AS COD_SOTTOPRODOTTO,
		'' AS PIAZZA, 
		'' AS CODICEVALUTA, 
		'' AS CLASSE, 
		--sum(PATRIMONIO_TERZI.CTV) -CAST(DBO.GETPARAMETRO('FRANCHIGIA_CC') as int) AS CONTROVALORE
		case when (sum(PATRIMONIO_TERZI.CTV) -CAST(DBO.GETPARAMETRO('FRANCHIGIA_CC') as int)<0) then sum(PATRIMONIO_TERZI.CTV) else sum(PATRIMONIO_TERZI.CTV) -CAST(DBO.GETPARAMETRO('FRANCHIGIA_CC') as int) end AS CONTROVALORE --modifica 050520 per anomalie Levi
	FROM 
		C6MartPeriodico.ASSET_PERC_TERZI
	INNER JOIN 
		C6MartPeriodico.ASSETCLASS_TERZI 
		ON 
			ASSET_PERC_TERZI.ID_ASSETCLASS = ASSETCLASS_TERZI.ID_ASSETCLASS
	INNER JOIN 
		C6MartPeriodico.PATRIMONIO_TERZI 
		ON 
			PATRIMONIO_TERZI.COD_PRODOTTO_TERZI  = ASSET_PERC_TERZI.COD_PRODOTTO_TERZI
	INNER JOIN 
		C6MartPeriodico.ANAG_PRODOTTI_TERZI 
		ON 
			ANAG_PRODOTTI_TERZI.COD_PRODOTTO_TERZI = PATRIMONIO_TERZI.COD_PRODOTTO_TERZI
	WHERE 
		ASSET_PERC_TERZI.LIVELLO = 2
		AND  (
			PATRIMONIO_TERZI.TIPO_PRODOTTO = 'Conti correnti' 
			or ANAG_PRODOTTI_TERZI.DESCR_PRODOTTO = 'Assets.FinancialAssets.CurrentAccount'
		)
--and patrimonio_terzi.Cod_fiscale = 'BNCMRA47P12A944T'
	group by PATRIMONIO_TERZI.intermediario,ASSETCLASS_TERZI.COD_ISIN,cod_adeguatezza,cod_maf,PATRIMONIO_TERZI.cod_Fiscale,rete
) TUTTI
GROUP BY 		
		TUTTI.ESTRAZIONE,
		TUTTI.RETE,
		TUTTI.CODICEFISCALE,
		TUTTI.PORTAFOGLIO,
		----------------------------------------------------------
		tutti.TIPOptf,
		tutti.COD_PRODOTTO_TERZI,
		tutti.ASSET_TERZI,
		tutti.FAMPRODT	,
		----------------------------------------------------------
		TUTTI.INTERMEDIARIO,
		TUTTI.COD_ISIN,
		TUTTI.COD_ADEGUATEZZA,
		TUTTI.COD_MAF,
		TUTTI.COD_INTERNO,
		TUTTI.COD_SOTTOPRODOTTO,
		TUTTI.PIAZZA, 
		TUTTI.CODICEVALUTA, 
		TUTTI.CLASSE