-- Schema: C6MartPeriodico
-- Stored Procedure: SP_DQ_PosizioniDuplicate




-- =============================================
-- Author:		Caruso Fabrizio
-- Create date: 17/09/2014
-- Description:	
-- Individuazione dei Clienti che presentano una o più posizioni duplicate 
-- nel proprio patrimonio finanziario 
-- Impostazione Codice TIPO CONTROLLO per il controllo specifico 
-- ( per riferimenti al tipo controllo verificare tabella "tb_tipocontrollo" )
-- =============================================
--  ATTENZIONE !!! 
--  La SP che carica la Patrimonio BF effettua un controllo dopo una prima elaborazione e scarta 
--  i record "duplicati". Riporto la query di INPUT per poter effetturare il test e lo scarto
    
 
CREATE procedure [C6MartPeriodico].[SP_DQ_PosizioniDuplicate]
@idFaseElaborazione int
AS
BEGIN



Declare @idTipoControllo int

set @idTipoControllo=4		
			
-- Selezione in Tabella Temporanea Verifica_CAMPIONE dei record "doppi"

SELECT -- PER DIVERSI DA CC ************************
		SPB.RETE AS RETE,
		SPB.CODFIS AS COD_FISCALE,
		SPB.POSITIONID AS POSITIONID,
		SUBSTRING(SPB.POSITIONID,1,57) AS COD_PRODOTTO, 
		SPB.CODCONF AS ID_CONTRATTO,
        CASE WHEN ISDATE(SPB.DTSOTTOS) = 0 THEN NULL
				ELSE CAST(CAST(SPB.DTSOTTOS AS VARCHAR(8)) AS DATETIME)
		END AS DATA_SOTTOSCRIZIONE,
        null AS COD_STATO,
		SPB.NUMPOL AS NUM_POLIZZA,
		SPB.MAF AS COD_MAF,
		SPB.CODINT AS COD_INTERNO,
		SPB.SUBPROD AS COD_SOTTOPRODOTTO,
		SPB.TIPPROD AS TIPO_PRODOTTO,
		CASE
			WHEN CON.area = 'Inv' AND CON.tipoProgetto = 0 THEN 'Prodotti non associati a progetti'
			ELSE LTRIM(RTRIM(CON.nomeProgetto))
		END AS NOME_PROGETTO,
        case when isnull(CON.tipoProgetto, '') = '' then 'Default' 
             when CON.tipoProgetto = 0 then 'Default' 
             else 'ProgettoInvestimento' end as TIPO_PROGETTO,
		CON.area AS ID_AREA,
        CASE
			WHEN ISDATE(SPB.DTRIFE) = 0 THEN NULL
			ELSE CAST(CAST(SPB.DTRIFE AS VARCHAR(8)) AS DATETIME)
		END AS DATA_OPERAZIONE,
		NULL AS DATA_VALUTA, 
		NULL AS DATA_REGOLAMENTO,
		SPB.QUOTE AS QUANTITA,
		NULL AS PREZZO,
		SPB.CTV AS CTV,
		SPB.VALORE AS CTV_NOMINALE,		
		CASE 
			WHEN (SPB.TIPPROD = 'GE' 
				OR SPB.TIPPROD = 'GES')
				AND SPB.DTSOTTOS < 20070101
				THEN NULL 
			WHEN SPB.TIPPROD IN ( 'ASVI','ASU1')
				THEN NULL
			WHEN SPB.TIPPROD = 'ASUL' AND SPB.CODINT NOT IN ('18','19','35','PR','PX')
				THEN NULL
		    WHEN SPB.CVN = 0
		        THEN NULL		 
			ELSE SPB.CVN 
		END AS VERSATO_NETTO,
		SPB.PARTVIA AS PARTVIA_DISINV,
        CASE WHEN ISDATE(SPB.PARTVIAAL) = 0 THEN NULL
          ELSE CAST(CAST(SPB.PARTVIAAL AS VARCHAR(8)) AS DATETIME) END AS DATA_PARTVIA_DISINV,
		NULL AS PARTVIA_INV,	 
		CASE 
			WHEN (SPB.TIPPROD = 'GE' 
				OR SPB.TIPPROD = 'GES')
				AND SPB.DTSOTTOS < 20070101
				THEN NULL 
			WHEN SPB.TIPPROD IN ( 'ASVI','ASU1')
				THEN NULL
			WHEN SPB.TIPPROD = 'ASUL' AND SPB.CODINT NOT IN ('18','19','35','PR','PX')
				THEN NULL
			ELSE SPB.RENDINIZ
		END AS REND_SOTTOSCRIZIONE,
		null AS REND_TRIMESTRE,	
		CASE 
			WHEN (SPB.TIPPROD = 'GE' 
				OR SPB.TIPPROD = 'GES')
				AND SPB.DTSOTTOS < 20070101
				THEN NULL 
			WHEN SPB.TIPPROD IN ( 'ASVI','ASU1')
				THEN NULL
			WHEN SPB.TIPPROD = 'ASUL' AND SPB.CODINT NOT IN ('18','19','35','PR','PX')
				THEN NULL
			ELSE SPB.RENDANNO
		END AS REND_ANNO,
		CON.StrType,
        CON.Complessita AS COMPLEX,
        CON.DescrizioneEmittente AS EMITTENTE,
		SPB.ISIN,
		
		CON.chiaveClientePB,

--nuovo 
        0 AS REND_NON_RAPPR,
        CON.ChiaveProgetto AS ORDINAMENTO_PROGETTO,
        CASE WHEN CON.orizzonteTemporale = 0 THEN NULL ELSE CON.orizzonteTemporale END AS ORIZZ_TEMP_NUM,
        CASE WHEN ISNULL(ORIZZONTETEMPORALE, 0) = 0 THEN NULL ELSE  LTRIM(RTRIM(ORIZZONTETEMPORALE)) + ' anni' END AS ORIZZONTETEMPORALE,
        CON.CHIAVEPROGETTO AS CHIAVEPROGETTO 	
-- fine nuovo
--***************************************
	INTO #Verifica_CAMPIONE
--*************************