-- View
CREATE VIEW [C6MartPeriodicoImmobiliare].[RP_vPrometeiaTerziIntermediario]
AS
SELECT 
	TUTTI.RETE				AS Rete,
	TUTTI.CODICEFISCALE 	AS CodiceFiscale,
	TUTTI.PORTAFOGLIO		AS Portafoglio,
	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 (
	-- 1. ASSET PER DATI PATRIMONIO TERZI NON IN CATALOGO
	SELECT 	
		'DATI NON 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,
		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_TERZI.PERC) AS CONTROVALORE
	FROM 
		C6MartPeriodicoImmobiliare.ASSET_PERC_TERZI
	INNER JOIN 
		C6MartPeriodicoImmobiliare.ASSETCLASS_TERZI 
		ON 
			ASSET_PERC_TERZI.ID_ASSETCLASS = ASSETCLASS_TERZI.ID_ASSETCLASS
	INNER JOIN 
		C6MartPeriodicoImmobiliare.PATRIMONIO_TERZI 
		ON 
			PATRIMONIO_TERZI.COD_PRODOTTO_TERZI  = ASSET_PERC_TERZI.COD_PRODOTTO_TERZI
	INNER JOIN 
		C6MartPeriodicoImmobiliare.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
	-- 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,
		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 
		C6MartPeriodicoImmobiliare.PATRIMONIO_TERZI 
	INNER JOIN 
		C6MartPeriodicoImmobiliare.ANAG_PRODOTTI 
		ON 
			ANAG_PRODOTTI.COD_PRODOTTO = PATRIMONIO_TERZI.COD_PRODOTTO 
	LEFT OUTER JOIN 
		C6MartPeriodicoImmobiliare.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,
		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,
--INIZIO 09012014_MV Correzione anomalia
--		(PATRIMONIO_TERZI.CTV * ASSET_PERC.PERC) AS CONTROVALORE		
		(PATRIMONIO_TERZI.CTV * ISNULL(ASSET_PERC.PERC,1)) AS CONTROVALORE
--FINE   09012014_MV Correzione anomalia		 
	FROM 
		C6MartPeriodicoImmobiliare.PATRIMONIO_TERZI
	INNER JOIN 
		C6MartPeriodicoImmobiliare.ANAG_PRODOTTI 
		ON 
			ANAG_PRODOTTI.COD_PRODOTTO = PATRIMONIO_TERZI.COD_PRODOTTO
	LEFT JOIN 
		C6MartPeriodicoImmobiliare.ASSET_PERC 
		ON 
			ASSET_PERC.COD_PRODOTTO = PATRIMONIO_TERZI.COD_PRODOTTO
	INNER JOIN 
		C6MartPeriodicoImmobiliare.ASSETCLASS_TERZI 
		ON 
			ASSETCLASS_TERZI.ID_ASSETCLASS = 'AL1'
	WHERE 
		ISNULL(ANAG_PRODOTTI.COD_ADEGUATEZZA, '') = ''
		AND ASSET_PERC.COD_PRODOTTO IS NULL
	--V CC terzi
	union all
	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,
		PATRIMONIO_TERZI.INTERMEDIARIO AS INTERMEDIARIO,
		ASSETCLASS_TERZI.COD_ISIN AS COD_ISIN,
		--ASSETCLASS_TERZI.COD_ADEGUATEZZA AS COD_ADEGUATEZZA,
		'EUR' 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)	- CAST(DBO.GETPARAMETRO('FRANCHIGIA_CC') AS INT)
			else sum(PATRIMONIO_terzi.CTV) end AS Controvalore --modifica 050520 per anomalie Levi
	FROM 
		C6MartPeriodicoImmobiliare.ASSET_PERC_TERZI
	INNER JOIN 
		C6MartPeriodicoImmobiliare.ASSETCLASS_TERZI 
		ON 
			ASSET_PERC_TERZI.ID_ASSETCLASS = ASSETCLASS_TERZI.ID_ASSETCLASS
	INNER JOIN 
		C6MartPeriodicoImmobiliare.PATRIMONIO_TERZI 
		ON 
			PATRIMONIO_TERZI.COD_PRODOTTO_TERZI  = ASSET_PERC_TERZI.COD_PRODOTTO_TERZI
	INNER JOIN 
		C6MartPeriodicoImmobiliare.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.INTERMEDIARIO,
		TUTTI.COD_ISIN,
		TUTTI.COD_ADEGUATEZZA,
		TUTTI.COD_MAF,
		TUTTI.COD_INTERNO,
		TUTTI.COD_SOTTOPRODOTTO,
		TUTTI.PIAZZA, 
		TUTTI.CODICEVALUTA, 
		TUTTI.CLASSE