﻿CREATE procedure [C6MartPeriodico].[DM_PATRIMONIO_BF]  
AS  
BEGIN  
 -- riportare le logiche nelle rispettive sp di PL  
 SET NOCOUNT ON;  
 DECLARE @ID_ELAB INT  
 DECLARE @TIPO_ELAB VARCHAR(1)  
 SET @ID_ELAB = C6MartPeriodico.GETIDELAB()  
 SET @TIPO_ELAB = C6MartPeriodico.GETTIPOELAB()  
 -- Log esecuzione  
 INSERT INTO LOG_ESECUZIONE  
  (Nome, Inizio, Nota)  
 VALUES (  
  'DM_PATRIMONIO_BF',  
  GETDATE(),  
  'Elaborazione trimestrale'  
 )  
 TRUNCATE TABLE C6MartPeriodico.PATRIMONIO_BF  
 SELECT   
  CONTRATTOSINTESI.RETE AS RETE,  
  CONTRATTOSINTESI.CODFIS AS COD_FISCALE,  
  CONTRATTOSINTESI.POSITIONID AS POSITIONID,  
  SUBSTRING(CONTRATTOSINTESI.POSITIONID,1,57) AS COD_PRODOTTO,   
  CONTRATTOSINTESI.CODCONF AS ID_CONTRATTO,  
  CASE WHEN ISDATE(CONTRATTOSINTESI.DTSOTTOS) = 0 THEN NULL  
    ELSE CAST(CAST(CONTRATTOSINTESI.DTSOTTOS AS VARCHAR(8)) AS DATETIME)  
  END AS DATA_SOTTOSCRIZIONE,  
  NULL AS COD_STATO, --CONTRATTOSINTESI.CODICESTATO AS COD_STATO,  
  CONTRATTOSINTESI.NUMPOL AS NUM_POLIZZA,  
  CONTRATTOSINTESI.MAF AS COD_MAF,  
  CONTRATTOSINTESI.CODINT AS COD_INTERNO,  
  CONTRATTOSINTESI.SUBPROD AS COD_SOTTOPRODOTTO,  
  CONTRATTOSINTESI.TIPPROD AS TIPO_PRODOTTO,  
  CASE  
   WHEN CONSAREA.C_NEEDAREA_V_46360 = 'Inv' AND PRCONSUL.C_PROJECTNAM_11D1A IS NULL THEN 'Prodotti non associati a progetti'  
   ELSE LTRIM(RTRIM(PRCONSUL.C_PROJECTNAM_11D1A))  
  END AS NOME_PROGETTO,  
        PRCONSUL.TYPE$_PROJEC_14674 AS TIPO_PROGETTO,  
  CONSAREA.C_NEEDAREA_V_46360 AS ID_AREA,  
  CASE  
   WHEN ISDATE(CONTRATTOSINTESI.DTRIFE) = 0 THEN NULL  
   ELSE CAST(CAST(CONTRATTOSINTESI.DTRIFE AS VARCHAR(8)) AS DATETIME)  
  END AS DATA_OPERAZIONE, --CONTRATTOSINTESI.DATADIRIFERIMENTO AS DATA_OPERAZIONE,  
  NULL AS DATA_VALUTA, --CONVERT(DATETIME, CONTRATTOSINTESI.DATAVALNAVAL, 105) AS DATA_VALUTA, -- 105 PER FORMAT DD/MM/YYYY  
  NULL AS DATA_REGOLAMENTO,  
  CONTRATTOSINTESI.QUOTE AS QUANTITA, --CONTRATTOSINTESI.QUOTE AS QUANTITA,  
  NULL AS PREZZO, --CONTRATTOSINTESI.PREZZO AS PREZZO,  
  CONTRATTOSINTESI.CTV AS CTV,  
  CONTRATTOSINTESI.VALORE AS CTV_NOMINALE,  
  NULL AS VERSATO_NETTO,  
  CONTRATTOSINTESI.PARTVIA AS PARTVIA_DISINV,  
  CASE  
   WHEN ISDATE(CONTRATTOSINTESI.PARTVIAAL) = 0 THEN NULL  
   ELSE CAST(CAST(CONTRATTOSINTESI.PARTVIAAL AS VARCHAR(8)) AS DATETIME)  
  END AS DATA_PARTVIA_DISINV,  
  --PARTITEVIAGGIANTI.IMPVER AS PARTVIA_INV,  
  NULL AS PARTVIA_INV,  
  --CONTRATTOSINTESI.RENDINIZ AS REND_SOTTOSCRIZIONE,  
  CASE   
   WHEN (CONTRATTOSINTESI.TIPPROD = 'GE'   
    OR CONTRATTOSINTESI.TIPPROD = 'GES')  
    AND CONTRATTOSINTESI.DTSOTTOS < 20070101 --cast('2007-01-01' AS DATETIME)   
    THEN NULL   
   WHEN CONTRATTOSINTESI.TIPPROD IN ( 'ASVI','ASU1')  
    THEN NULL  
   --Modifica Luca  
   WHEN CONTRATTOSINTESI.TIPPROD = 'ASUL' AND CONTRATTOSINTESI.CODINT NOT IN ('18','19','35','PR','PX')  
    THEN NULL  
   --  
   ELSE CONTRATTOSINTESI.RENDINIZ  
  END AS REND_SOTTOSCRIZIONE,   
  NULL  AS REND_TRIMESTRE, --CONTRATTOSINTESI.RENDIMENTODAINIZIOTRIMESTRE AS REND_TRIMESTRE,  
  CASE   
   WHEN (CONTRATTOSINTESI.TIPPROD = 'GE'   
    OR CONTRATTOSINTESI.TIPPROD = 'GES')  
    AND CONTRATTOSINTESI.DTSOTTOS < 20070101 --cast('2007-01-01' AS DATETIME)   
    THEN NULL   
   WHEN CONTRATTOSINTESI.TIPPROD IN ( 'ASVI','ASU1')  
    THEN NULL  
   --Modifica Luca  
   WHEN CONTRATTOSINTESI.TIPPROD = 'ASUL' AND CONTRATTOSINTESI.CODINT NOT IN ('18','19','35','PR','PX')  
    THEN NULL  
   --  
   ELSE CONTRATTOSINTESI.RENDANNO  
  END AS REND_ANNO,   
  0 AS REND_NON_RAPPR,  
  PRCONSUL.C_PROJECTIDM_1AF31 AS ORDINAMENTO_PROGETTO,  
        C_BO_453FB.C_VALUE_7BD3C AS ORIZZ_TEMP_NUM,  
  C_BO_453FB.C_DESCRIZION_93ABE AS ORIZZ_TEMP,  
        CONSUL.TYPE$_TIPOCO_1EA7C AS STATO_CONSULENZA,  
        ISNULL(CONVERT(DATETIME, CONSUL.C_DATAINIZIO_35C15),NULL) AS DATA_STATO_CONS, -- STRINGA IN FORMATO ISO  
  CONSUL.C_DATAMIGRAZ_BF705  AS DATA_MIGR_CONS,  
  PRCONSUL.C_LASTMODIFI_3BF4A AS DATA_PIANIF,  
  0 AS EXTRANAC,  
        KAT.STRTYPE,  
        KAT.COMPLEX,  
    MIT.DESCR AS EMITTENTE,  
  CONTRATTOSINTESI.ISIN,  
  @ID_ELAB AS ID_ELAB,  
  @TIPO_ELAB AS TIPO_ELAB  
 INTO #PATRIMONIO  
 FROM   
  [C6StagingPeriodico].[SPB_CONTR_SINTESI] AS CONTRATTOSINTESI   
 INNER JOIN   
  C6STAGINGPERIODICO.ALL_CF_STATO AS ALL_CF_STATO  
  ON   
   ALL_CF_STATO.RETE = CONTRATTOSINTESI.RETE  
   AND ALL_CF_STATO.CF_CLIENTE = CONTRATTOSINTESI.CODFIS  
   AND ALL_CF_STATO.FLAG_UTILIZZO_STATO = 1 --Attuale  
 INNER JOIN   
  C6STAGINGPERIODICO.POSITION AS POSITION  
  ON   
   POSITION.POSITIONID = CONTRATTOSINTESI.POSITIONID  
 INNER JOIN   
  C6STAGINGPERIODICO.CONSUL AS CONSUL  
  ON   
   CONSUL.OID$ = POSITION.F_PCONSULENZ_56F23  
   AND CONSUL.TYPE$_TIPOCO_1EA7C = ALL_CF_STATO.STATO_CONSULENZA --'AttivaAggiornata'  
 INNER JOIN   
  C6STAGINGPERIODICO.PRCONSUL AS PRCONSUL  
  ON   
   PRCONSUL.OID$ = POSITION.F_PPROJECT_P_B5629  
 INNER JOIN   
  C6STAGINGPERIODICO.CONSAREA AS CONSAREA  
  ON   
   CONSAREA.OID$ = PRCONSUL.F_PCONSULENZ_B69E4  
    INNER JOIN C6STAGINGPERIODICO.CATITEMREF KAT  
    ON   
    KAT.oid$ = POSITION.f_oid$_posit_00526  
    left join   
    C6STAGINGPERIODICO.EMIT MIT  
    ON KAT.CODEMI= MIT.CODEMI  
    LEFT JOIN   
 C6STAGINGPERIODICO.C_BO_453FB  
 ON C_BO_453FB.PK_PRC = PRCONSUL.OID$  
 WHERE   
  CONTRATTOSINTESI.POSITIONID IS NOT NULL  
        and CONTRATTOSINTESI.tipprod  <> 'CC'   --TRINGALI  
  --da eliminare Trimestrale Ottobre 12  
  --and CONTRATTOSINTESI.CODFIS not in ('CLNNNL71B67L259H', 'DNGFNC69C09E472H')  
--da eliminare Trimestrale Gen 2013  
--  and CONTRATTOSINTESI.RETE + '-' + CONTRATTOSINTESI.CODFIS not in --('CLNNNL71B67L259H', 'DNGFNC69C09E472H')  
--(  
--'F-DLMSFN62L10F464C',  
--'S-FF@7888',  
--'F-TRLGNI38T10D325V',  
--'F-SRRGNE58T04H981R',  
--'F-MGLNTN55C23L259M',  
--'F-TRFRLM68H67F132X',  
--'F-CNTLNE72B50H501I',  
--'S-FRLFRC77A42H501Z'  
--)  
 UNION ALL -- MODIFICA FATTA PER AVERE I CONTI CORRENTI 26 NOVEMBRE (MAURIZIO)  
--aggiunta consulenza per recuperare il cod progetto  
SELECT   
  CONTRATTOSINTESI.RETE AS RETE,  
  CONTRATTOSINTESI.CODFIS AS COD_FISCALE,  
  CONTRATTOSINTESI.POSITIONID AS POSITIONID,  
  SUBSTRING(CONTRATTOSINTESI.POSITIONID,1,57) AS COD_PRODOTTO,   
  CONTRATTOSINTESI.CODCONF AS ID_CONTRATTO,  
  CASE WHEN ISDATE(CONTRATTOSINTESI.DTSOTTOS) = 0 THEN NULL  
    ELSE CAST(CAST(CONTRATTOSINTESI.DTSOTTOS AS VARCHAR(8)) AS DATETIME)  
  END AS DATA_SOTTOSCRIZIONE,  
  NULL  AS COD_STATO, --CONTRATTOSINTESI.CODICESTATO AS COD_STATO,  
  CONTRATTOSINTESI.NUMPOL AS NUM_POLIZZA,  
  CONTRATTOSINTESI.MAF AS COD_MAF,  
  CONTRATTOSINTESI.CODINT AS COD_INTERNO,  
  CONTRATTOSINTESI.SUBPROD AS COD_SOTTOPRODOTTO,  
  CONTRATTOSINTESI.TIPPROD AS TIPO_PRODOTTO,  
  NULL AS NOME_PROGETTO,  
        '' AS TIPO_PROGETTO,  
  CASE WHEN CONTRATTOSINTESI.CTV>0 THEN 'Liq' ELSE 'Cc' END  AS ID_AREA,   
  CASE  
   WHEN ISDATE(CONTRATTOSINTESI.DTRIFE) = 0 THEN NULL  
   ELSE CAST(CAST(CONTRATTOSINTESI.DTRIFE AS VARCHAR(8)) AS DATETIME)  
  END AS DATA_OPERAZIONE, --CONTRATTOSINTESI.DATADIRIFERIMENTO AS DATA_OPERAZIONE,  
  NULL AS DATA_VALUTA, --CONVERT(DATETIME, CONTRATTOSINTESI.DATAVALNAVAL, 105) AS DATA_VALUTA, -- 105 PER FORMAT DD/MM/YYYY  
  NULL AS DATA_REGOLAMENTO,  
  CONTRATTOSINTESI.QUOTE AS QUANTITA, --CONTRATTOSINTESI.QUOTE AS QUANTITA,  
  NULL AS PREZZO, --CONTRATTOSINTESI.PREZZO AS PREZZO,  
  CONTRATTOSINTESI.CTV AS CTV,  
  CONTRATTOSINTESI.VALORE AS CTV_NOMINALE,  
  NULL AS VERSATO_NETTO, --CONTRATTOSINTESI.CVN AS VERSATO_NETTO,  
  CONTRATTOSINTESI.PARTVIA AS PARTVIA_DISINV,  
  CASE  
   WHEN ISDATE(CONTRATTOSINTESI.PARTVIAAL) = 0 THEN NULL  
   ELSE CAST(CAST(CONTRATTOSINTESI.PARTVIAAL AS VARCHAR(8)) AS DATETIME)  
  END AS DATA_PARTVIA_DISINV,  
  NULL AS PARTVIA_INV, --PARTITEVIAGGIANTI.IMPORTOVERSATO AS PARTVIA_INV,  
  CONTRATTOSINTESI.RENDINIZ AS REND_SOTTOSCRIZIONE,  
  NULL AS REND_TRIMESTRE, --CONTRATTOSINTESI.RENDIMENTODAINIZIOTRIMESTRE AS REND_TRIMESTRE,  
  CONTRATTOSINTESI.RENDANNO AS REND_ANNO,  
  0 AS REND_NON_RAPPR,  
  PRCONSUL.C_PROJECTIDM_1AF31 AS ORDINAMENTO_PROGETTO,  
        null  AS ORIZZ_TEMP_NUM,  
  NULL AS ORIZZ_TEMP,  
        NULL AS STATO_CONSULENZA,  
        NULL  AS DATA_STATO_CONS, -- STRINGA IN FORMATO ISO  
  NULL AS DATA_MIGR_CONS,  
  NULL AS DATA_PIANIF,  
  0 AS EXTRANAC,  
        KAT.STRTYPE,  
        KAT.COMPLEX,  
        MIT.DESCR AS EMITTENTE,  
  CONTRATTOSINTESI.ISIN,  
  @ID_ELAB AS ID_ELAB,  
  @TIPO_ELAB AS TIPO_ELAB  
 FROM   
  [C6StagingPeriodico].[SPB_CONTR_SINTESI] AS CONTRATTOSINTESI  
        INNER JOIN C6STAGINGPERIODICO.CATITEMREF KAT  
        ON SUBSTRING(CONTRATTOSINTESI.POSITIONID,1,57)=KAT.CATALOGUEID  
        LEFT OUTER JOIN C6STAGINGPERIODICO.EMIT MIT  
        ON  MIT.CODEMI=KAT.CODEMI  
 INNER JOIN   
  C6STAGINGPERIODICO.ALL_CF_STATO AS ALL_CF_STATO  
  ON   
   ALL_CF_STATO.RETE = CONTRATTOSINTESI.RETE  
   AND ALL_CF_STATO.CF_CLIENTE = CONTRATTOSINTESI.CODFIS  
   AND ALL_CF_STATO.FLAG_UTILIZZO_STATO = 1 --Attuale  
 INNER JOIN   
  C6STAGINGPERIODICO.POSITION AS POSITION  
  ON   
   POSITION.POSITIONID = CONTRATTOSINTESI.POSITIONID  
 INNER JOIN   
  C6STAGINGPERIODICO.CONSUL AS CONSUL  
  ON   
   CONSUL.OID$ = POSITION.F_PCONSULENZ_56F23  
   AND CONSUL.TYPE$_TIPOCO_1EA7C = ALL_CF_STATO.STATO_CONSULENZA --'AttivaAggiornata'  
 INNER JOIN   
  C6STAGINGPERIODICO.PRCONSUL AS PRCONSUL  
  ON   
   PRCONSUL.OID$ = POSITION.F_PPROJECT_P_B5629  
 WHERE   
  TIPPROD = 'CC'  
  --and CONTRATTOSINTESI.CODFIS not in ('CLNNNL71B67L259H', 'DNGFNC69C09E472H')  
 -- Log esecuzione  
 UPDATE  
  LOG_ESECUZIONE  
 SET  
  Fine = GETDATE(),  
  Tipo = 'INSERT',  
  Righe = @@ROWCOUNT  
 WHERE  
  Nome = 'DM_PATRIMONIO_BF' AND  
  Inizio = (  
   SELECT  
    MAX(Inizio)  
   FROM  
    LOG_ESECUZIONE  
   WHERE  
    Nome = 'DM_PATRIMONIO_BF'  
  )  
 INSERT INTO LOG_ESECUZIONE  
  (Nome, Inizio, Nota)  
 VALUES (  
  'DM_PATRIMONIO_BF2',  
  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])  
 SELECT   
  RETE,  
  COD_FISCALE,  
  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,  
  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  
 FROM #PATRIMONIO  
 UNION ALL -- MODIFICA PER AVERE TUTTI I PRODOTTI NON ALLOCATI  
 SELECT   
  CONTRATTOSINTESI.RETE AS RETE,  
  CONTRATTOSINTESI.CODFIS AS COD_FISCALE,  
  CONTRATTOSINTESI.POSITIONID AS POSITIONID,  
  SUBSTRING(CONTRATTOSINTESI.POSITIONID,1,57) AS COD_PRODOTTO,   
  CONTRATTOSINTESI.CODCONF AS ID_CONTRATTO,  
        CASE WHEN ISDATE(CONTRATTOSINTESI.DTSOTTOS) = 0 THEN NULL  
    ELSE CAST(CAST(CONTRATTOSINTESI.DTSOTTOS AS VARCHAR(8)) AS DATETIME)  
  END AS DATA_SOTTOSCRIZIONE,  
  NULL AS COD_STATO, --CONTRATTOSINTESI.CODICESTATO AS COD_STATO,  
  CONTRATTOSINTESI.NUMPOL AS NUM_POLIZZA,  
  CONTRATTOSINTESI.MAF AS COD_MAF,  
  CONTRATTOSINTESI.CODINT AS COD_INTERNO,  
  CONTRATTOSINTESI.SUBPROD AS COD_SOTTOPRODOTTO,  
  CONTRATTOSINTESI.TIPPROD AS TIPO_PRODOTTO,  
  LTRIM(RTRIM(NEWPOSITION.NOME_PROGETTO)) AS NOME_PROGETTO,  
        '' AS TIPO_PROGETTO,  
  --V Modifica fatta per riallocare correttamente un cc che scende dallo scarico della wseics e non è presente in consulenza e in proposta,  
  --altrimenti verrebbe allocato a 'Na'  
  CASE  
   WHEN(CONTRATTOSINTESI.TIPPROD = 'CC' AND CONTRATTOSINTESI.CTV < 0) THEN 'CC'  
--------------------------------------------------------------------------------------------------  
   --modificato Emanuele  
   --WHEN(CONTRATTOSINTESI.TIPPROD = 'CC' AND CONTRATTOSINTESI.CTV >= 0) THEN 'LIQ'  
   WHEN(CONTRATTOSINTESI.TIPPROD = 'CC' AND CONTRATTOSINTESI.CTV >= 0) THEN 'Liq'  
--------------------------------------------------------------------------------------------------  
   ELSE ISNULL(NEWPOSITION.NEED_BREVE,'Na')   
  END AS ID_AREA,  
  CASE  
   WHEN ISDATE(CONTRATTOSINTESI.DTRIFE) = 0 THEN NULL  
   ELSE CAST(CAST(CONTRATTOSINTESI.DTRIFE AS VARCHAR(8)) AS DATETIME)  
  END AS DATA_OPERAZIONE, --CONTRATTOSINTESI.DATADIRIFERIMENTO AS DATA_OPERAZIONE,  
  NULL AS DATA_VALUTA, --CONVERT(DATETIME, CONTRATTOSINTESI.DATAVALNAVAL, 105) AS DATA_VALUTA, -- 105 PER FORMAT DD/MM/YYYY  
  NULL AS DATA_REGOLAMENTO,  
  CONTRATTOSINTESI.QUOTE AS QUANTITA, --CONTRATTOSINTESI.QUOTE AS QUANTITA,  
  NULL AS PREZZO, --CONTRATTOSINTESI.PREZZO AS PREZZO,  
  CONTRATTOSINTESI.CTV AS CTV,  
  CONTRATTOSINTESI.VALORE AS CTV_NOMINALE,  
  NULL AS VERSATO_NETTO,  
  CONTRATTOSINTESI.PARTVIA AS PARTVIA_DISINV,  
  CASE  
   WHEN ISDATE(CONTRATTOSINTESI.PARTVIAAL) = 0 THEN NULL  
   ELSE CAST(CAST(CONTRATTOSINTESI.PARTVIAAL AS VARCHAR(8)) AS DATETIME)  
  END AS DATA_PARTVIA_DISINV,  
  --PARTITEVIAGGIANTI.IMPVER AS PARTVIA_INV,  
  NULL AS PARTVIA_INV,  
  CONTRATTOSINTESI.RENDINIZ AS REND_SOTTOSCRIZIONE,  
  NULL AS REND_TRIMESTRE, --CONTRATTOSINTESI.RENDIMENTODAINIZIOTRIMESTRE AS REND_TRIMESTRE,  
  CONTRATTOSINTESI.RENDANNO AS REND_ANNO,  
  0 AS REND_NON_RAPPR,  
  NULL AS ORDINAMENTO_PROGETTO,  
        ORIZZ_TEMP_NUM,   
     ORIZZ_TEMP,  
        STATO_CONSULENZA,   
        DATA_STATO_CONS,   
        DATA_MIGR_CONS,  
        DATA_PIANIF,   
  0 AS EXTRANAC,  
        KAT.STRTYPE,  
        KAT.COMPLEX,  
        MIT.DESCR AS EMITTENTE,  
  CONTRATTOSINTESI.ISIN,  
  @ID_ELAB,  
  @TIPO_ELAB  
 FROM   
  [C6StagingPeriodico].[SPB_CONTR_SINTESI] AS CONTRATTOSINTESI   
 LEFT JOIN   
  #PATRIMONIO AS PATR  
  ON   
   CONTRATTOSINTESI.RETE = PATR.RETE  
   AND CONTRATTOSINTESI.CODFIS = PATR.COD_FISCALE  
   AND CONTRATTOSINTESI.POSITIONID = PATR.POSITIONID  
    LEFT OUTER JOIN C6STAGINGPERIODICO.CATITEMREF KAT  
        ON SUBSTRING(CONTRATTOSINTESI.POSITIONID,1,57)=KAT.CATALOGUEID  
    LEFT OUTER JOIN C6STAGINGPERIODICO.EMIT MIT  
        ON  MIT.CODEMI=KAT.CODEMI  
 LEFT JOIN C6STAGINGPERIODICO.vNewPositionProposta NEWPOSITION  
  ON   
   CONTRATTOSINTESI.RETE = NEWPOSITION.RETE  
   AND CONTRATTOSINTESI.CODFIS = NEWPOSITION.CODICEFISCALE  
   AND CONTRATTOSINTESI.POSITIONID = NEWPOSITION.positionIDProposta  
 WHERE   
  CONTRATTOSINTESI.POSITIONID IS NOT NULL  
  AND PATR.POSITIONID IS NULL  
--da eliminare Trimestrale Gen 2013  
--  and CONTRATTOSINTESI.RETE + '-' + CONTRATTOSINTESI.CODFIS not in --('CLNNNL71B67L259H', 'DNGFNC69C09E472H')  
--(  
--'F-DLMSFN62L10F464C',  
--'S-FF@7888',  
--'F-TRLGNI38T10D325V',  
--'F-SRRGNE58T04H981R',  
--'F-MGLNTN55C23L259M',  
--'F-TRFRLM68H67F132X',  
--'F-CNTLNE72B50H501I',  
--'S-FRLFRC77A42H501Z'  
--)  
 -- Log esecuzione  
 UPDATE  
  LOG_ESECUZIONE  
 SET  
  Fine = GETDATE(),  
  Tipo = 'INSERT',  
  Righe = @@ROWCOUNT  
 WHERE  
  Nome = 'DM_PATRIMONIO_BF2' AND  
  Inizio = (  
   SELECT  
    MAX(Inizio)  
   FROM  
    LOG_ESECUZIONE  
   WHERE  
    Nome = 'DM_PATRIMONIO_BF2'  
  )  
 DROP TABLE #PATRIMONIO  
 INSERT INTO LOG_ESECUZIONE  
  (Nome, Inizio, Nota)  
 VALUES (  
  'DM_PATRIMONIO_BF3',  
  GETDATE(),  
  'Elaborazione trimestrale'  
 )  
 -- AGGIORNAMENTO PRODOTTI EXTRA NAC  
--  
-- SELECT  
--  MISS.POSITIONID,  
--  MISS.CODFIS AS COD_FISCALE,  
--  MISS.RETE,  
--  C_NEEDAREA_V_46360 AS ID_AREA,  
--  C_PROJECTNAM_11D1A AS NOME_PROGETTO,  
--  C_PROJECTIDM_1AF31 AS ORDINAMENTO_PROGETTO  
-- INTO #MISS_PAST  
-- FROM  
--   (  
--  SELECT A.POSITIONID, CODFIS, RETE  
--  FROM  
--  C6STAGINGPERIODICO.SPB_CONTR_SINTESI A  
--  LEFT OUTER JOIN  
--  (  
--  SELECT D.POSITIONID, A.ADBKID, A.INSTID  
--  FROM  
--  C6STAGINGPERIODICO.CONSUL A,  
--  C6STAGINGPERIODICO.PRCONSUL B,  
--  C6STAGINGPERIODICO.CONSAREA C,  
--  C6STAGINGPERIODICO.POSITION D,  
--  C6STAGINGPERIODICO.ALL_CF_STATO F  
--  WHERE   
--  1=1  
--  AND A.OID$ = C.F_PCONSULENZ_7FBE3  
--  AND B.OID$ = D.F_PPROJECT_P_B5629  
--  AND  C.OID$ = B.F_PCONSULENZ_B69E4  
--  AND F.RETE = A.INSTID  
--  AND F.CF_CLIENTE = A.ADBKID  
--  AND F.FLAG_UTILIZZO_STATO = 1  
--  AND A.TYPE$_TIPOCO_1EA7C =  F.STATO_CONSULENZA  
--     and C.C_NEEDAREA_V_46360 <> 'Cc'  
--  ) B  
--  ON   
--  B.POSITIONID=A.POSITIONID  
--  AND B.ADBKID=A.CODFIS  
--  AND B.INSTID=A.RETE  
--  WHERE  
--  B.POSITIONID IS NULL  
--   ) MISS,  
--   (  
--  SELECT D.POSITIONID,   
--         A.ADBKID, A.INSTID,   
--         C.C_NEEDAREA_V_46360,   
--         TYPE$_PROJEC_14674,   
--         C_PROJECTNAM_11D1A,  
--         C_PROJECTIDM_1AF31  
--  FROM  
--  C6STAGINGPERIODICO.CONSUL A,  
--  C6STAGINGPERIODICO.PRCONSUL B,  
--  C6STAGINGPERIODICO.CONSAREA C,  
--  C6STAGINGPERIODICO.POSITION D  
--  WHERE   
--  1=1  
--  AND A.OID$ = C.F_PCONSULENZ_7FBE3  
--  AND B.OID$ = D.F_PPROJECT_P_B5629  
--  AND  C.OID$ = B.F_PCONSULENZ_B69E4  
--  AND A.TYPE$_TIPOCO_1EA7C =  'Attiva'  
--     and C.C_NEEDAREA_V_46360 <> 'Cc'  
--    ) PAST  
-- WHERE   
-- MISS.POSITIONID=PAST.POSITIONID  
-- AND MISS.CODFIS=PAST.ADBKID  
--- MISS  
SELECT A.POSITIONID, CODFIS, RETE  
        into #MISS  
  FROM  
  C6STAGINGPERIODICO.SPB_CONTR_SINTESI A  
  LEFT OUTER JOIN  
  (  
  SELECT D.POSITIONID, A.ADBKID, A.INSTID  
  FROM  
  C6STAGINGPERIODICO.CONSUL A,  
  C6STAGINGPERIODICO.PRCONSUL B,  
  C6STAGINGPERIODICO.CONSAREA C,  
  C6STAGINGPERIODICO.POSITION D,  
  C6STAGINGPERIODICO.ALL_CF_STATO F  
  WHERE   
  1=1  
  AND A.OID$ = C.F_PCONSULENZ_7FBE3  
  AND B.OID$ = D.F_PPROJECT_P_B5629  
  AND  C.OID$ = B.F_PCONSULENZ_B69E4  
  AND F.RETE = A.INSTID  
  AND F.CF_CLIENTE = A.ADBKID  
  AND F.FLAG_UTILIZZO_STATO = 1  
  AND A.TYPE$_TIPOCO_1EA7C =  F.STATO_CONSULENZA  
     --and C.C_NEEDAREA_V_46360 <> 'Cc'  
  and D.type$_catalo_35E2a <> 'ContiCorrenti'  
  ) B  
  ON   
  B.POSITIONID=A.POSITIONID  
  AND B.ADBKID=A.CODFIS  
  AND B.INSTID=A.RETE  
  WHERE  
  B.POSITIONID IS NULL  
-- PAST  
SELECT D.POSITIONID,   
         A.ADBKID, A.INSTID,   
         C.C_NEEDAREA_V_46360,   
         TYPE$_PROJEC_14674,   
         C_PROJECTNAM_11D1A,  
         C_PROJECTIDM_1AF31  
  into #PAST  
        FROM  
  C6STAGINGPERIODICO.CONSUL A,  
  C6STAGINGPERIODICO.PRCONSUL B,  
  C6STAGINGPERIODICO.CONSAREA C,  
  C6STAGINGPERIODICO.POSITION D  
  WHERE   
  1=1  
  AND A.OID$ = C.F_PCONSULENZ_7FBE3  
  AND B.OID$ = D.F_PPROJECT_P_B5629  
  AND  C.OID$ = B.F_PCONSULENZ_B69E4  
  AND A.TYPE$_TIPOCO_1EA7C =  'Attiva'  
     --and C.C_NEEDAREA_V_46360 <> 'Cc'  
  and D.type$_catalo_35E2a <> 'ContiCorrenti'  
SELECT  
  MISS.POSITIONID,  
  MISS.CODFIS AS COD_FISCALE,  
  MISS.RETE,  
  C_NEEDAREA_V_46360 AS ID_AREA,  
  C_PROJECTNAM_11D1A AS NOME_PROGETTO,  
  C_PROJECTIDM_1AF31 AS ORDINAMENTO_PROGETTO  
 INTO #miss_PAST  
 FROM  
  #MISS miss,   
   #PAST past  
 WHERE   
 MISS.POSITIONID=PAST.POSITIONID  
 AND MISS.CODFIS=PAST.ADBKID  
 UPDATE  
  PATR_BF  
 SET  
  PATR_BF.ID_AREA = MISS_PAST.ID_AREA,  
  PATR_BF.NOME_PROGETTO = MISS_PAST.NOME_PROGETTO,  
  PATR_BF.ORDINAMENTO_PROGETTO = MISS_PAST.ORDINAMENTO_PROGETTO,  
  PATR_BF.EXTRANAC = 1  
 FROM  
  C6MartPeriodico.PATRIMONIO_BF AS PATR_BF  
  INNER JOIN #MISS_PAST AS MISS_PAST  
   ON PATR_BF.RETE = MISS_PAST.RETE  
   AND PATR_BF.COD_FISCALE = MISS_PAST.COD_FISCALE  
   AND PATR_BF.POSITION_ID = MISS_PAST.POSITIONID  
 -- Log esecuzione  
 UPDATE  
  LOG_ESECUZIONE  
 SET  
  Fine = GETDATE(),  
  Tipo = 'UPDATE',  
  Righe = @@ROWCOUNT  
 WHERE  
  Nome = 'DM_PATRIMONIO_BF3' AND  
  Inizio = (  
   SELECT  
    MAX(Inizio)  
   FROM  
    LOG_ESECUZIONE  
   WHERE  
    Nome = 'DM_PATRIMONIO_BF3'  
  )  
 DROP TABLE #MISS_PAST  
 INSERT INTO LOG_ESECUZIONE  
  (Nome, Inizio, Nota)  
 VALUES (  
  'DM_PATRIMONIO_BF4',  
  GETDATE(),  
  'Elaborazione trimestrale'  
 )  
 -- IMPOSTA IL FLAG DEI PRODOTTI CON RENDIMENTO NON RAPPRESENTABILE  
 UPDATE  
  PATR_BF  
 SET  
  PATR_BF.REND_NON_RAPPR = 1  
 FROM  
  (  
  SELECT  
   TSCA.RETE,  
   TSCA.CODFIS,  
   C6StagingPeriodico.RP_Info_DaProdottoCSaCatalogo(  
    TSCA.TIPPROD,  
    PRC.COD_INTERNO,  
    PRC.COD_MAF,  
    '',  
    TSCA.SUBPROD  
   )  
   +  
   dbo.Crea_positionID(  
    TSCA.TIPPROD,  
    PRC.COD_INTERNO,  
    PRC.COD_MAF,  
    '',  
    TSCA.SUBPROD,  
    TSCA.CODCONF,  
    PRC.NUMPOL,  
    TSCA.CONTO,  
    TSCA.RUBR,  
    TSCA.CUSTGAR,  
    TSCA.TERMID,  
    TSCA.ANNO,  
    TSCA.PROG  
   ) AS POSITION_ID  
  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.ALL_POS_CONS_CAT AS PRC ON  
    TSCA.CODPROG = PRC.ID_MONITORAGGIO  
    AND TSCA.CODCONF = PRC.CONTRATTO  
    AND REPLACE(TSCA.SUBPROD, '     ', '$') = PRC.COD_SOTTOPRODOTTO  
    AND TCP.CODINT = PRC.COD_INTERNO  
  WHERE  
   TSCA.DTRIF <> 0  
  ) 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  
 -- Log esecuzione  
 UPDATE  
  LOG_ESECUZIONE  
 SET  
  Fine = GETDATE(),  
  Tipo = 'UPDATE',  
  Righe = @@ROWCOUNT  
 WHERE  
  Nome = 'DM_PATRIMONIO_BF4' AND  
  Inizio = (  
   SELECT  
    MAX(Inizio)  
   FROM  
    LOG_ESECUZIONE  
   WHERE  
    Nome = 'DM_PATRIMONIO_BF4'  
  )  
-- Log esecuzione  
 INSERT INTO LOG_ESECUZIONE  
  (Nome, Inizio, Nota)  
 VALUES (  
  'DM_PATRIMONIO_BF5',  
  GETDATE(),  
  'Elaborazione trimestrale'  
 )  
SELECT   
  ALL_CF_PB.RETE_PB AS RETE,  
  ALL_CF_PB.CODICE_FISCALE AS COD_FISCALE,  
  CONSAREA.C_NEEDAREA_V_46360 AS ID_AREA,  
  PRCONSUL.C_PROJECTNAM_11D1A AS NOME_PROGETTO,  
  PRCONSUL.TYPE$_PROJEC_14674 AS TIPO_PROGETTO,  
  PRCONSUL.C_PERCENTUAL_69019 AS PERC_AREA,  
  PRCONSUL.C_PROJECTCTV_39520 AS CTV_PROGETTO,  
  CONSAREA.C_CTVNEEDARE_EA4FB AS CTV_AREA,  
        C_BO_453FB.C_VALUE_7BD3C AS ORIZZ_TEMP_NUM,  
  C_BO_453FB.C_DESCRIZION_93ABE AS ORIZZ_TEMP,  
  NULL AS CTV_TOTALE,  
  CONSUL.TYPE$_TIPOCO_1EA7C  AS STATO_CONSULENZA,  
  ISNULL(CONVERT(DATETIME, CONSUL.C_DATAINIZIO_35C15),NULL) AS DATA_STATO_CONS, -- STRINGA IN FORMATO ISO  
  CONSUL.C_DATAMIGRAZ_BF705  AS DATA_MIGR_CONS,  
        PRCONSUL.C_LASTMODIFI_3BF4A AS DATA_PIANIF,  
  NULL AS ID_CONTRATTO,  
        PRCONSUL.C_PROJECTIDM_1AF31 AS ORDINAMENTO_PROGETTO  
   into #AGG_PROG  
 FROM C6STAGINGPERIODICO.ALL_CF_PB  
 INNER JOIN C6STAGINGPERIODICO.CONSUL   
  ON CONSUL.INSTID = ALL_CF_PB.RETE_PB  
  AND CONSUL.ADBKID = ALL_CF_PB.CODICEFISCALE  
  AND CONSUL.TYPE$_TIPOCO_1EA7C = 'Bozza'   
 INNER JOIN C6STAGINGPERIODICO.CONSAREA   
  ON CONSAREA.F_PCONSULENZ_7FBE3 = CONSUL.OID$  
 INNER JOIN C6STAGINGPERIODICO.PRCONSUL   
  ON PRCONSUL.F_PCONSULENZ_B69E4 = CONSAREA.OID$  
 LEFT JOIN C6STAGINGPERIODICO.C_BO_453FB  
  ON C_BO_453FB.PK_PRC = PRCONSUL.OID$  
    where  CONSAREA.C_NEEDAREA_V_46360='Inv'  
UPDATE C6MARTPERIODICO.PATRIMONIO_BF  
SET  
NOME_PROGETTO = L.NOME_PROGETTO  
FROM  
#AGG_PROG L  
WHERE   
C6MARTPERIODICO.PATRIMONIO_BF.COD_FISCALE=L.COD_FISCALE  
AND C6MARTPERIODICO.PATRIMONIO_BF.RETE=L.RETE  
AND C6MARTPERIODICO.PATRIMONIO_BF.ORDINAMENTO_PROGETTO=L.ORDINAMENTO_PROGETTO  
AND C6MARTPERIODICO.PATRIMONIO_BF.NOME_PROGETTO <> L.NOME_PROGETTO   
UPDATE C6MARTPERIODICO.PATRIMONIO_BF  
SET  
REND_NON_RAPPR=1  
FROM  
C6MARTPERIODICO.PATRIMONIO_BF  
WHERE   
TIPO_PRODOTTO='CC'  
AND CTV > 0  
AND ID_AREA='Liq'  
--aggiunta Emanuele/Valerio  
UPDATE   
c6martperiodico.patrimonio_bf  
SET Id_area = 'Liq'  
WHERE TIPO_PRODOTTO='CC'  
AND ID_AREA = 'na'  
AND CTV > 0  
--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 = 'DM_PATRIMONIO_BF5' AND  
  Inizio = (  
   SELECT  
    MAX(Inizio)  
   FROM  
    LOG_ESECUZIONE  
   WHERE  
    Nome = 'DM_PATRIMONIO_BF5'  
  )  
END