-- =============================================
-- Author:		Rino Le Boffe
-- Create date: 18 luglio 2013
-- =============================================
--drop table  #patrimonio
CREATE procedure [C6MartPeriodico].[RP_DM_PATRIMONIO_BF_BK_eligoTitoli]
	-- Add the parameters for the stored procedure here
	--select * from c6mart.patrimonio_bf
AS
BEGIN
	-- SET NOCOUNT ON added to prevent extra result sets from
	-- interfering with SELECT statements.
SET NOCOUNT ON;
	DECLARE @ID_ELAB INT
	DECLARE @TIPO_ELAB VARCHAR(1)
	SET @ID_ELAB = C6MARTPERIODICO.GETIDELAB()
	SET @TIPO_ELAB = C6MARTPERIODICO.GETTIPOELAB()
INSERT INTO LOG_ESECUZIONE
		(Nome, Inizio, Nota)
	VALUES (
		'RP_DM_PATRIMONIO_BF_1',
		GETDATE(),
		'Elaborazione trimestrale'
	)
TRUNCATE TABLE C6MARTPERIODICO.PATRIMONIO_BF
DROP TABLE TEMP_PATRIMONIO_CAMPIONE
--DROP TABLE #PATRIMONIO
 -- *** INCROCIO TRA SPB E CONSULENZA ************************
 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,
--		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
		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,
		@ID_ELAB AS ID_ELAB,  
     	@TIPO_ELAB AS TIPO_ELAB,   
		CON.chiaveClientePB,
--nuovo 
        0 AS REND_NON_RAPPR,
        --ISNULL(CM.IDMONITORAGGIO, CON.ChiaveProgetto) AS ORDINAMENTO_PROGETTO,
        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 TEMP_PATRIMONIO_CAMPIONE
	FROM C6StagingPeriodico.SPB_CONTR_SINTESI SPB
	INNER JOIN C6StagingPeriodico.RP_Consulenza CON
		ON CON.rete = SPB.RETE
		AND CON.cod_fiscale = SPB.CODFIS
		AND CON.Position_id = SPB.positionid	 
	LEFT JOIN C6StagingPeriodico.RP_ChiaviMonitoraggio CM
		ON CON.chiaveprogetto = CM.chiaveProgetto
       AND CM.stato = 1
	WHERE SPB.POSITIONID IS NOT NULL
          and CON.area <> 'CC' and SPB.TIPPROD <> 'CC'
    --***INIZIO INTERVENTI OMNIA*** 
          and SPB.Isin <> 'EURO00000009'
          and CON.area <> 'SELF'
    --FINE INTERVENTI OMNIA***
	--and con.cod_fiscale + CON.RETE  IN
	--(
	--select COD_FISCALE + RETE 
	--FROM ANDREA_RINO_CODICI_PATRIMONIO
	--)
    UNION ALL
    SELECT -- *** PER UGUALI 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 SPB.TIPPROD = 'DT' /* OR SPB.TIPPROD = 'FI' */ THEN SPB.DATAINIZIORENDIMENTO 
--			ELSE SPB.DATADISOTTOSCRIZIONE 
--		END AS DATA_SOTTOSCRIZIONE,
        CASE WHEN ISDATE(SPB.DTSOTTOS) = 0 THEN NULL
				ELSE CAST(CAST(SPB.DTSOTTOS AS VARCHAR(8)) AS DATETIME)
                --ELSE SPB.DTSOTTOS 
		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,
		CON.NOMEPROGETTO AS NOME_PROGETTO,
                case when isnull(CON.tipoProgetto, '') = '' then 'Default' 
             when CON.tipoProgetto = 0 then 'Default' 
             else 'ProgettoInvestimento' end as TIPO_PROGETTO,
		--CASE WHEN SPB.CTV>0 THEN 'Liq' ELSE 'Cc' END AS ID_AREA, --PRCONSUL.NEEDAREAID AS ID_AREA,--POSITION.C_NEEDAREASE_3D485 AS ID_AREA,
		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, -- 105 PER FORMAT DD/MM/YYYY
		NULL AS DATA_REGOLAMENTO,
		SPB.QUOTE AS QUANTITA,
		NULL AS PREZZO,
		SPB.CTV AS CTV,
		SPB.VALORE AS CTV_NOMINALE,
		CASE 
		    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,  
		SPB.RENDINIZ AS REND_SOTTOSCRIZIONE,
		NULL AS REND_TRIMESTRE,
		SPB.RENDANNO AS REND_ANNO,
        CON.StrType,
        CON.Complessita AS COMPLEX,
        CON.DescrizioneEmittente as EMITTENTE,
		SPB.ISIN,
		@ID_ELAB AS ID_ELAB,  
		@TIPO_ELAB AS TIPO_ELAB,  
		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	
	FROM C6STAGINGPERIODICO.SPB_CONTR_SINTESI SPB
	INNER JOIN C6StagingPERIODICO.RP_Consulenza CON
		ON CON.rete = SPB.RETE
		AND CON.cod_fiscale = SPB.CODFIS
		AND CON.Position_id = SPB.positionid		 
    INNER JOIN C6STAGINGPERIODICO.RP_CATALOGOPRODOTTI KAT
		ON SUBSTRING(SPB.POSITIONID,1,57)=KAT.CATALOGUEID
    LEFT JOIN C6StagingPeriodico.RP_ChiaviMonitoraggio CM
		ON CON.chiaveprogetto = CM.chiaveProgetto
        AND CM.stato = 1
    LEFT OUTER JOIN C6STAGINGPERIODICO.RP_AnEmittente MIT
        ON  MIT.Emittente =KAT.EMITTENTE
	WHERE SPB.TIPPROD = 'CC'
	--***INIZIO INTERVENTI OMNIA*** 
          or SPB.Isin = 'EURO00000009'
    --FINE INTERVENTI OMNIA*** 
--and con.cod_fiscale + CON.RETE  IN
--(
--select COD_FISCALE + RETE 
--FROM ANDREA_RINO_CODICI_PATRIMONIO
--)
UPDATE
		LOG_ESECUZIONE
	SET
		Fine = GETDATE(),
		Tipo = 'INSERT',
		Righe = @@ROWCOUNT
	WHERE
		Nome = 'RP_DM_PATRIMONIO_BF_1' AND
		Inizio = (
			SELECT
				MAX(Inizio)
			FROM
				LOG_ESECUZIONE
			WHERE
				Nome = 'RP_DM_PATRIMONIO_BF_1'
		)
INSERT INTO LOG_ESECUZIONE
		(Nome, Inizio, Nota)
	VALUES (
		'RP_DM_PATRIMONIO_BF_1_1',
		GETDATE(),
		'Elaborazione trimestrale'
	)
	--DROP TABLE #PATRIMONIO_DUPLICATI
    SELECT RETE, COD_FISCALE, POSITIONID, GETDATE()  as dtstamp
    INTO #PATRIMONIO_DUPLICATI
    FROM TEMP_PATRIMONIO_CAMPIONE
    GROUP BY RETE, COD_FISCALE, POSITIONID
    HAVING COUNT(*) > 1
    INSERT INTO C6MARTPERIODICO.TEST_QUALITY
    SELECT RETE, COD_FISCALE, 'POSIZIONI DUPLICATE - PATRIMONIO_BF' 
    FROM #PATRIMONIO_DUPLICATI
    GROUP BY RETE, COD_FISCALE
UPDATE
		LOG_ESECUZIONE
	SET
		Fine = GETDATE(),
		Tipo = 'INSERT',
		Righe = @@ROWCOUNT
	WHERE
		Nome = 'RP_DM_PATRIMONIO_BF_1_1' AND
		Inizio = (
			SELECT
				MAX(Inizio)
			FROM
				LOG_ESECUZIONE
			WHERE
				Nome = 'RP_DM_PATRIMONIO_BF_1_1'
		)
INSERT INTO LOG_ESECUZIONE
		(Nome, Inizio, Nota)
	VALUES (
		'RP_DM_PATRIMONIO_BF_1_2',
		GETDATE(),
		'Elaborazione trimestrale'
	)
	INSERT INTO C6MARTPERIODICO.PATRIMONIO_BF
([RETE]
           ,[COD_FISCALE]
           ,[POSITION_ID]
           ,[COD_PRODOTTO]
           ,[ID_CONTRATTO]
           ,[DATA_SOTTOSCRIZIONE]
           ,[COD_STATO]
           ,[NUM_POLIZZA]
           ,[COD_MAF]
           ,[COD_INTERNO]
           ,[COD_SOTTOPRODOTTO]
           ,[TIPO_PRODOTTO]
           ,[NOME_PROGETTO]
           ,[TIPO_PROGETTO]
           ,[ID_AREA]
           ,[DATA_OPERAZIONE]
           ,[DATA_VALUTA]
           ,[DATA_REGOLAMENTO]
           ,[QUANTITA]
           ,[PREZZO]
           ,[CTV]
           ,[CTV_NOMINALE]
           ,[VERSATO_NETTO]
           ,[PARTVIA_DISINV]
           ,[DATA_PARTVIA_DISINV]
           ,[PARTVIA_INV]
           ,[REND_SOTTOSCRIZIONE]
           ,[REND_TRIMESTRE]
           ,[REND_ANNO]
		   ,[REND_NON_RAPPR]
		   ,[ORDINAMENTO_PROGETTO]
            ,[ORIZZ_TEMP_NUM] 
	        ,[ORIZZ_TEMP]
--            ,[STATO_CONSULENZA] 
--            ,[DATA_STATO_CONS] 
--            ,[DATA_MIGR_CONS]
--           , [DATA_PIANIF] 
--		   ,[EXTRANAC]
           ,[STRTYPE]
           ,[COMPLEX]
           ,[EMITTENTE]
		   ,[ISIN]
           ,[ID_ELAB]
           ,[TIPO_ELAB]
           ,[CHIAVE_PROGETTO])
		SELECT P.[RETE]
      ,P.[COD_FISCALE]
      ,P.[POSITIONID]
      ,[COD_PRODOTTO]
      ,[ID_CONTRATTO]
      ,[DATA_SOTTOSCRIZIONE]
      ,[COD_STATO]
      ,[NUM_POLIZZA]
      ,[COD_MAF]
      ,[COD_INTERNO]
      ,[COD_SOTTOPRODOTTO]
      ,[TIPO_PRODOTTO]
      ,[NOME_PROGETTO]
      ,[TIPO_PROGETTO]
      ,[ID_AREA]
      ,[DATA_OPERAZIONE]
      ,[DATA_VALUTA]
      ,NULL --[DATA_REGOLAMENTO]
      ,[QUANTITA]
      ,[PREZZO]
      ,[CTV]
      ,[CTV_NOMINALE]
      ,[VERSATO_NETTO]
      ,[PARTVIA_DISINV]
      ,[DATA_PARTVIA_DISINV]
      ,[PARTVIA_INV]
      ,[REND_SOTTOSCRIZIONE]
      ,[REND_TRIMESTRE]
      ,[REND_ANNO]
      ,[REND_NON_RAPPR]
		   ,[ORDINAMENTO_PROGETTO]
            ,[ORIZZ_TEMP_NUM] 
	        ,[ORIZZONTETEMPORALE]
           ,[STRTYPE]
           ,[COMPLEX]
           ,[EMITTENTE]
		   ,[ISIN]
           ,[ID_ELAB]
           ,[TIPO_ELAB]
           ,[CHIAVEPROGETTO]
FROM 
TEMP_PATRIMONIO_CAMPIONE P
 LEFT JOIN #PATRIMONIO_DUPLICATI T
	ON P.RETE = T.RETE
	AND P.COD_FISCALE = T.COD_FISCALE
	--AND P.POSITIONID = T.POSITIONID
	WHERE T.RETE IS NULL
--select rete, cod_fiscale, positionid, count(*) from #PATRIMONIO group by rete, cod_fiscale, positionid having count(*) > 1
	UNION ALL 
	SELECT 
		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 SPB.TIPPROD IN ('DT', 'FI') AND SPB.DATAINIZIORENDIMENTO IS NOT NULL THEN SPB.DATAINIZIORENDIMENTO 
--			ELSE SPB.DATADISOTTOSCRIZIONE 
--		END AS DATA_SOTTOSCRIZIONE,
        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,
		--LTRIM(RTRIM(NEWPOSITION.NOMEPROGETTOPROP)) AS NOME_PROGETTO,
		null AS NOME_PROGETTO,
--                case when isnull(CON.tipoProgetto, '') = '' then 'Default' 
--             when CON.tipoProgetto = 0 then 'Default' 
--             else 'Progetto investimento' end 
        '' as TIPO_PROGETTO,
		--ISNULL(NEWPOSITION.AREAPROP,'Na') AS ID_AREA,
		'Na' AS ID_AREA,
		CAST(CAST(SPB.DTRIFE AS VARCHAR(8)) AS DATETIME) AS DATA_OPERAZIONE,
		NULL AS DATA_VALUTA, -- 105 PER FORMAT DD/MM/YYYY
		NULL AS DATA_REGOLAMENTO,
		convert(decimal(15,3),SPB.QUOTE) AS QUANTITA,
		NULL AS PREZZO,
		convert(decimal(15,3),SPB.CTV) AS CTV,
		convert(decimal(15,3),SPB.VALORE) AS CTV_NOMINALE,
        NULL 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,
		--PARTITEVIAGGIANTI.IMPVER AS PARTVIA_INV,
		NULL AS PARTVIA_INV,
		SPB.RENDINIZ AS REND_SOTTOSCRIZIONE,
		NULL AS REND_TRIMESTRE, --CONTRATTOSINTESI.RENDIMENTODAINIZIOTRIMESTRE AS REND_TRIMESTRE,
		SPB.RENDANNO AS REND_ANNO,
        0 AS REND_NON_RAPPR,
		NULL AS ORDINAMENTO_PROGETTO,
        CASE WHEN ORIZZ_TEMP_NUM = 0 THEN NULL ELSE ORIZZ_TEMP_NUM END AS ORIZZ_TEMP_NUM, 
	    CASE WHEN ISNULL(ORIZZONTETEMPORALE, 0) = 0 THEN NULL ELSE  LTRIM(RTRIM(ORIZZONTETEMPORALE)) + ' anni' END AS ORIZZONTETEMPORALE,
        KAT.AzOb As STRTYPE,
        KAT.Complessita as COMPLEX,
        MIT.DESCRIZIONE AS EMITTENTE,
		SPB.ISIN,
		@ID_ELAB,
		@TIPO_ELAB,
        -1 AS CHIAVE_PROGETTO       
		FROM C6STAGINGPERIODICO.SPB_CONTR_SINTESI SPB 		
		LEFT JOIN TEMP_PATRIMONIO_CAMPIONE PATR   
			ON	SPB.RETE = PATR.RETE
			AND SPB.CODFIS = PATR.COD_FISCALE
			AND SPB.Positionid = PATR.positionid	
		JOIN [C6MartPeriodico].[RP_vContrattiPerGenerazioneReport] VCON   
			ON SPB.RETE = VCON.RETE
			AND SPB.CODFIS = VCON.COD_FISCALE
        INNER JOIN C6STAGINGPERIODICO.RP_CATALOGOPRODOTTI KAT
		    ON SUBSTRING(SPB.POSITIONID,1,57)=KAT.CATALOGUEID        
        LEFT OUTER JOIN C6STAGINGPERIODICO.RP_AnEmittente MIT
            ON  MIT.Emittente =KAT.EMITTENTE
			--AND VCON.chiaveClientePB  = NEWPOSITION.chiaveClientePB			 
	WHERE SPB.POSITIONID IS NOT NULL
		  AND PATR.POSITIONID IS NULL
--and SPB.CODFIS + SPB.RETE  IN
--	(
--	select COD_FISCALE + RETE 
--	FROM ANDREA_RINO_CODICI_PATRIMONIO
--	)
UPDATE
		LOG_ESECUZIONE
	SET
		Fine = GETDATE(),
		Tipo = 'INSERT',
		Righe = @@ROWCOUNT
	WHERE
		Nome = 'RP_DM_PATRIMONIO_BF_1_2' AND
		Inizio = (
			SELECT
				MAX(Inizio)
			FROM
				LOG_ESECUZIONE
			WHERE
				Nome = 'RP_DM_PATRIMONIO_BF_1_2'
		)
INSERT INTO LOG_ESECUZIONE
		(Nome, Inizio, Nota)
	VALUES (
		'RP_DM_PATRIMONIO_BF_1_3',
		GETDATE(),
		'Elaborazione trimestrale'
	)
    --*************************************************************************************************
    -- RECUPERO CHIAVE PROGETTO DALLA CONSULENZA PER I PRODOTTI CHE SCENDONO DAL WS MA NON SONO NEL DB
    SELECT DISTINCT COD_FISCALE, RETE, NULL AS CHIAVEPROGETTO 
    INTO #CHIAVEPROGETTONULL
    FROM C6MARTPERIODICO.PATRIMONIO_BF
    WHERE CHIAVE_PROGETTO = -1
    UPDATE #CHIAVEPROGETTONULL SET CHIAVEPROGETTO = R.CHIAVEPROGETTO
    FROM 
       #CHIAVEPROGETTONULL C INNER JOIN C6STAGINGPERIODICO.RP_PROGETTICLIENTE R
       ON C.COD_FISCALE = R.COD_FISCALE
     AND C.RETE = R.RETE
     AND R.area = 'Na'
    UPDATE C6MARTPERIODICO.PATRIMONIO_BF SET 
      CHIAVE_PROGETTO = T.CHIAVEPROGETTO,
      ORDINAMENTO_PROGETTO = T.CHIAVEPROGETTO
     FROM C6MARTPERIODICO.PATRIMONIO_BF P INNER JOIN #CHIAVEPROGETTONULL T
       ON P.COD_FISCALE = T.COD_FISCALE
     AND P.RETE = T.RETE
     WHERE P.CHIAVE_PROGETTO = -1
    --*************************************************************************************************   
  drop table #CHIAVEPROGETTONULL
	UPDATE
		LOG_ESECUZIONE
	SET
		Fine = GETDATE(),
		Tipo = 'INSERT',
		Righe = @@ROWCOUNT
	WHERE
		Nome = 'RP_DM_PATRIMONIO_BF_1_3' AND
		Inizio = (
			SELECT
				MAX(Inizio)
			FROM
				LOG_ESECUZIONE
			WHERE
				Nome = 'RP_DM_PATRIMONIO_BF_1_3'
		)
--DROP table TEMP_PATRIMONIO_CAMPIONE
INSERT INTO LOG_ESECUZIONE
		(Nome, Inizio, Nota)
	VALUES (
		'RP_DM_PATRIMONIO_BF_2',
		GETDATE(),
		'Elaborazione trimestrale'
	)
		SELECT
			TSCA.RETE,
			TSCA.CODFIS,
			C6StagingPeriodico.RP_Info_DaProdottoCSaCatalogo(
				TSCA.TIPPROD,
				CONS.CODINTERNO,
				CONS.CODMAF,
				'',
				TSCA.SUBPROD
			)
			+
			dbo.Crea_positionID(
				TSCA.TIPPROD,
				CONS.CODINTERNO,
				CONS.CODMAF,
				'',
				TSCA.SUBPROD,
				TSCA.CODCONF,
				CONS.NUMPOLIZZA,
				TSCA.CONTO,
				TSCA.RUBR,
				TSCA.CUSTGAR,
				TSCA.TERMID,
				TSCA.ANNO,
				TSCA.PROG
			) AS POSITION_ID
        INTO #REND_NON_RAPPR 
		FROM
			C6StagingPeriodico.TSCABP AS TSCA
            inner join   
            C6StagingPeriodico.tcptab as TCP
            ON TCP.CODFIS=TSCA.CODFIS
            AND TCP.RETE=TSCA.RETE
            AND TCP.CODCONF=TSCA.CODCONF
            AND TCP.CODPROG=TSCA.CODPROG
            AND TCP.CODPROD=TSCA.CODPROD
            AND TCP.CONTO=TSCA.CONTO
            AND TCP.CUSTGAR=TSCA.CUSTGAR
            AND TCP.CODABI=TSCA.CODABI
            AND ISNULL(TCP.PROG,'XXX')=ISNULL(TSCA.PROG,'XXX')
            AND ISNULL(TCP.TERMID,'XXX')=ISNULL(TSCA.TERMID,'XXX')
            AND ISNULL(TCP.ANNO,'XXX')=ISNULL(TSCA.ANNO,'XXX')
            inner join 
        C6StagingPeriodico.RP_CONSULENZA AS CONS 
        ON
				 TSCA.CODCONF = CONS.CODCONF
				AND ISNULL(TSCA.SUBPROD, '') = ISNULL(CONS.CODSOTTOPRODOTTO, '') 
				AND TCP.CODINT = CONS.CODINTERNO
		   INNER JOIN
			C6StagingPeriodico.RP_CHIAVIMONITORAGGIO AS CM
			 ON CONS.chiaveprogetto = CM.chiaveProgetto
             AND CM.stato = 1
			 and TSCA.CODPROG = CM.IDMONITORAGGIO
		WHERE
			TSCA.DTRIF <> 0
    UPDATE
		PATR_BF
	SET
		PATR_BF.REND_NON_RAPPR = 1
	FROM
		#REND_NON_RAPPR AS REND_NON_RAPPR
	INNER JOIN C6MartPeriodico.PATRIMONIO_BF AS PATR_BF
		ON PATR_BF.RETE = REND_NON_RAPPR.RETE
		AND PATR_BF.COD_FISCALE = --V REND_NON_RAPPR.CODFIS --FF@4546   4546
				CASE WHEN(SUBSTRING(PATR_BF.COD_FISCALE,1,3) = 'FF@') THEN 'FF@'+REND_NON_RAPPR.CODFIS
					 ELSE  REND_NON_RAPPR.CODFIS
				END 
		AND PATR_BF.POSITION_ID = REND_NON_RAPPR.POSITION_ID
    DROP TABLE #REND_NON_RAPPR
	-- Log esecuzione
	UPDATE
		LOG_ESECUZIONE
	SET
		Fine = GETDATE(),
		Tipo = 'UPDATE',
		Righe = @@ROWCOUNT
	WHERE
		Nome = 'RP_DM_PATRIMONIO_BF_2' AND
		Inizio = (
			SELECT
				MAX(Inizio)
			FROM
				LOG_ESECUZIONE
			WHERE
				Nome = 'RP_DM_PATRIMONIO_BF_2'
		)
	INSERT INTO LOG_ESECUZIONE
		(Nome, Inizio, Nota)
	VALUES (
		'RP_DM_PATRIMONIO_BF_3',
		GETDATE(),
		'Elaborazione trimestrale'
	)
UPDATE C6MARTPERIODICO.PATRIMONIO_BF
SET
REND_NON_RAPPR=1
FROM
C6MARTPERIODICO.PATRIMONIO_BF
WHERE 
TIPO_PRODOTTO='CC'
--***INIZIO INTERVENTI OMNIA*** 
or ISIN = 'EURO00000009'
--***FINE INTERVENTI OMNIA*** 
AND CTV > 0
AND ID_AREA='Liq'
--aggiunta Emanuele/Valerio
UPDATE 
c6martperiodico.patrimonio_bf
SET Id_area = 'Liq',
REND_NON_RAPPR=1
WHERE TIPO_PRODOTTO='CC'
--***INIZIO INTERVENTI OMNIA*** 
or ISIN = 'EURO00000009'
--***FINE INTERVENTI OMNIA*** 
--AND ID_AREA = 'na'
AND CTV > 0
UPDATE 
c6martperiodico.patrimonio_bf
SET Id_area = 'Cc'
WHERE TIPO_PRODOTTO='CC'
--AND ID_AREA = 'na'
AND CTV < 0
--***INIZIO INTERVENTI OMNIA*** 
UPDATE 
c6martperiodico.patrimonio_bf
SET Id_area = 'Self'
WHERE ISIN = 'EURO00000009'
--AND ID_AREA = 'na'
AND CTV < 0
--***FINE INTERVENTI OMNIA*** 
---AGGIORNO LA CHIAVE PROGETTO PER I CC DI CUI AVEVO CAMBIATO L'AREA, PRENDEDOLA DAL PROGETTO
    UPDATE C6MARTPERIODICO.PATRIMONIO_BF
    SET CHIAVE_PROGETTO = R.CHIAVEPROGETTO, 
        ORDINAMENTO_PROGETTO = R.CHIAVEPROGETTO
    FROM C6MARTPERIODICO.PATRIMONIO_BF BF
    inner join C6STAGINGPERIODICO.RP_PROGETTICLIENTE R
    ON BF.COD_FISCALE = R.COD_FISCALE
    AND BF.RETE = R.RETE
    AND BF.id_AREA IN ('Liq','Cc')
    AND BF.id_AREA=R.AREA
    WHERE BF.TIPO_PRODOTTO='CC'
    AND (BF.CHIAVE_PROGETTO<>R.CHIAVEPROGETTO or BF.CHIAVE_PROGETTO is null)
--***INIZIO INTERVENTI OMNIA*** 
---AGGIORNO LA CHIAVE PROGETTO PER I SELF GP OMNIA DI CUI AVEVO CAMBIATO L'AREA, PRENDEDOLA DAL PROGETTO
    UPDATE C6MARTPERIODICO.PATRIMONIO_BF
    SET CHIAVE_PROGETTO = R.CHIAVEPROGETTO, 
        ORDINAMENTO_PROGETTO = R.CHIAVEPROGETTO
    FROM C6MARTPERIODICO.PATRIMONIO_BF BF
    inner join C6STAGINGPERIODICO.RP_PROGETTICLIENTE R
    ON BF.COD_FISCALE = R.COD_FISCALE
    AND BF.RETE = R.RETE
    AND BF.id_AREA IN ('Liq','Self')
    AND BF.id_AREA=R.AREA
    WHERE BF.ISIN = 'EURO00000009'
    AND (BF.CHIAVE_PROGETTO<>R.CHIAVEPROGETTO or BF.CHIAVE_PROGETTO is null)
--***FINE INTERVENTI OMNIA*** 
--aggiunta Emanuele
UPDATE 
c6martperiodico.patrimonio_bf
SET id_area = 'Liq'
WHERE id_area = 'LIQ'
UPDATE C6MARTPERIODICO.PATRIMONIO_BF
SET
	NOME_PROGETTO = LTRIM(RTRIM(NOME_PROGETTO))
		-- Log esecuzione
	UPDATE
		LOG_ESECUZIONE
	SET
		Fine = GETDATE(),
		Tipo = 'UPDATE',
		Righe = @@ROWCOUNT
	WHERE
		Nome = 'RP_DM_PATRIMONIO_BF_3' AND
		Inizio = (
			SELECT
				MAX(Inizio)
			FROM
				LOG_ESECUZIONE
			WHERE
				Nome = 'RP_DM_PATRIMONIO_BF_3'
		)
insert into c6martperiodico.test_quality 
select distinct a.rete, a.cod_fiscale, 'ORDINAMENTO PROGETTO PER AREA DUPLICATO'
from 
(SELECT * FRom c6martperiodico.patrimonio_bf ) a
inner join
(SELECT * FRom c6martperiodico.patrimonio_bf ) b
on a.cod_fiscale = b.cod_fiscale 
and a.rete= b.rete
and a.id_area = b.id_area
where a.id_area <> 'Inv'
and a.ordinamento_progetto <> b.ordinamento_progetto
END