﻿-- =============================================  
-- Author:  Paolo Giovanetti  
-- Create date: 19 marzo 2009  
-- Description:   
-- =============================================  
CREATE procedure [C6MartPeriodico].[DM_MONITORAGGIO_ATTUALE]  
AS  
BEGIN  
 SET NOCOUNT ON;  
 DECLARE @ID_ELAB INT  
 SET @ID_ELAB = [C6MartPeriodico].GETIDELAB()  
 -- Log esecuzione  
 INSERT INTO LOG_ESECUZIONE  
  (Nome, Inizio, Nota)  
 VALUES (  
  'DM_MONITORAGGIO_ATTUALE',  
  GETDATE(),  
  'Elaborazione trimestrale'  
 )  
 TRUNCATE TABLE [C6MartPeriodico].[MONITORAGGIO_ATTUALE]   
 INSERT INTO [C6MartPeriodico].[MONITORAGGIO_ATTUALE]  
           ([RETE]  
           ,[COD_FISCALE]  
           ,[ID_AREA]  
           ,[NOME_PROGETTO]  
           ,[DATA_ATTIVAZIONE]  
           ,[DATA_CTV]  
           ,[CTV_MONITORATO]  
           ,[APPORTO_INIZIALE]  
           ,[APPORTO_SUCCESSIVO]  
           ,[LIQUIDAZIONI]  
           ,[CEDOLE_DIVIDENDI]  
           ,[MINUS_PLUSVALENZA]  
           ,[RISORSE_ASSOCIATE]  
           ,[RENDIMENTO_CUMULATO]  
           ,[RENDIMENTO_ANNUALIZZATO]  
     ,[ORDINAMENTO_PROGETTO]  
           ,[ID_ELAB])  
-- SELECT  
--           WANAB.RETE,  
--           WANAB.CODFIS AS COD_FISCALE,  
--     CASE  
--    WHEN WANAB.CODAREA = 'INV' THEN 'Inv'  
--    WHEN WANAB.CODAREA = 'RIS' THEN 'Ris'  
--    WHEN WANAB.CODAREA = 'EXR' THEN 'Ext'  
--    WHEN WANAB.CODAREA = 'LIQ' THEN 'Liq'  
--     END AS ID_AREA,  
--           ISNULL(CASE  
--    WHEN PROGETTO_BOZZA.C_PROJECTIDR_51E22 IS NULL THEN PRCONSUL.C_PROJECTNAM_11D1A  
--    ELSE PROGETTO_BOZZA.NUOVO_NOME_PROGETTO  
--     END, 'XXX') AS NOME_PROGETTO,  
--           CAST(CAST(WANAB.DTRIF AS VARCHAR(8)) AS DATETIME) AS DATA_ATTIVAZIONE,  
--           CASE  
--    WHEN WANAB.DTCTV = 0 THEN NULL  
--    ELSE CAST(CAST(WANAB.DTCTV AS VARCHAR(8)) AS DATETIME)  
--     END AS DATA_CTV,  
--           WANAB.CTV AS CTV_MONITORATO,  
--           WANAB.APP_INI AS APPORTO_INIZIALE,  
--           WANAB.NTOT_APP AS APPORTO_SUCCESSIVO,  
--           WANAB.NTOT_LIQ AS LIQUIDAZIONI,  
--           WANAB.TOT_CED + WANAB.TOT_DIV AS CEDOLE_DIVIDENDI,  
--           WANAB.CTV - (WANAB.APP_INI + WANAB.TOT_APP - WANAB.TOT_LIQ - WANAB.TOT_CED - WANAB.TOT_DIV) AS MINUS_PLUSVALENZA,  
--           WANAB.APP_INI + WANAB.NTOT_APP - WANAB.NTOT_LIQ - WANAB.TOT_CED - WANAB.TOT_DIV AS RISORSE_ASSOCIATE,  
--           WANAB.RENDATT AS RENDIMENTO_CUMULATO,  
--           WANAB.RENDATT AS RENDIMENTO_ANNUALIZZATO,  
--     WANAB.CODPROG AS ORDINAMENTO_PROGETTO,  
--           @ID_ELAB AS ID_ELAB  
--  
-- FROM C6StagingPeriodico.WANAB AS WANAB  
-- INNER JOIN C6StagingPeriodico.PRCONSUL AS PRCONSUL  
--  ON WANAB.CODPROG = PRCONSUL.C_PROJECTIDM_1AF31  
-- INNER JOIN C6StagingPeriodico.CONSAREA AS AREA  
--  ON PRCONSUL.F_PCONSULENZ_B69E4 = AREA.OID$  
-- INNER JOIN C6StagingPeriodico.CONSUL AS CONSUL  
--  ON AREA.F_PCONSULENZ_7FBE3 = CONSUL.OID$  
-- INNER JOIN C6StagingPeriodico.ALL_CF_STATO AS SCELTA_STATO  
--  ON CONSUL.ADBKID = SCELTA_STATO.CF_CLIENTE  
--  AND CONSUL.INSTID = SCELTA_STATO.RETE  
--  AND CONSUL.TYPE$_TIPOCO_1EA7C = SCELTA_STATO.STATO_CONSULENZA  
-- LEFT JOIN C6StagingPeriodico.NOME_PROGETTO_BOZZA AS PROGETTO_BOZZA  
--  ON PRCONSUL.C_PROJECTIDR_51E22 = PROGETTO_BOZZA.C_PROJECTIDR_51E22  
-- WHERE 1 = 1  
--  AND WANAB.DTFINE = 99991231  
--  AND SCELTA_STATO.FLAG_UTILIZZO_STATO = 1  
--  
-- UNION  
 SELECT  
  TANAB.RETE,  
  CASE  
   WHEN MANDATI.CODMAND IS NULL THEN TANAB.CODFIS  
   ELSE dbo.getFiduciariaByCodMand(MANDATI.CODMAND)  
  END AS COD_FISCALE,  
     CASE  
    WHEN TANAB.CODAREA = 'INV' THEN 'Inv'  
    WHEN TANAB.CODAREA = 'RIS' THEN 'Ris'  
    WHEN TANAB.CODAREA = 'EXR' THEN 'Ext'  
    WHEN TANAB.CODAREA = 'LIQ' THEN 'Liq'  
     END AS ID_AREA,  
           ISNULL(CASE  
    WHEN PROGETTO_BOZZA.C_PROJECTIDR_51E22 IS NULL THEN LTRIM(RTRIM(PRCONSUL.C_PROJECTNAM_11D1A))  
    ELSE LTRIM(RTRIM(PROGETTO_BOZZA.NUOVO_NOME_PROGETTO))  
     END, 'XXX') AS NOME_PROGETTO,  
           CAST(CAST(TANAB.DTRIF AS VARCHAR(8)) AS DATETIME) AS DATA_ATTIVAZIONE,  
           CASE  
    WHEN TANAB.DTCTV = 0 THEN NULL  
    ELSE CAST(CAST(TANAB.DTCTV AS VARCHAR(8)) AS DATETIME)  
     END AS DATA_CTV,  
           TANAB.CTV AS CTV_MONITORATO,  
           TANAB.APP_INI AS APPORTO_INIZIALE,  
           TANAB.NTOT_APP AS APPORTO_SUCCESSIVO,  
           TANAB.NTOT_LIQ AS LIQUIDAZIONI,  
           TANAB.TOT_CED + TANAB.TOT_DIV AS CEDOLE_DIVIDENDI,  
           TANAB.CTV - (TANAB.APP_INI + TANAB.NTOT_APP - TANAB.NTOT_LIQ) AS MINUS_PLUSVALENZA,  
          -- TANAB.APP_INI + TANAB.NTOT_APP - TANAB.NTOT_LIQ - TANAB.TOT_CED - TANAB.TOT_DIV AS RISORSE_ASSOCIATE,  
           TANAB.APP_INI + TANAB.NTOT_APP - TANAB.NTOT_LIQ  AS RISORSE_ASSOCIATE,  
           cast(TANAB.RENDATT as decimal(15,2)) AS RENDIMENTO_CUMULATO,  
           TANAB.RENDATTANN AS RENDIMENTO_ANNUALIZZATO,  
     TANAB.CODPROG AS ORDINAMENTO_PROGETTO,  
           @ID_ELAB AS ID_ELAB  
 FROM C6StagingPeriodico.TANAB AS TANAB  
 INNER JOIN C6StagingPeriodico.PRCONSUL AS PRCONSUL  
  ON TANAB.CODPROG = PRCONSUL.C_PROJECTIDM_1AF31  
 INNER JOIN C6StagingPeriodico.CONSAREA AS AREA  
  ON PRCONSUL.F_PCONSULENZ_B69E4 = AREA.OID$  
 INNER JOIN C6StagingPeriodico.CONSUL AS CONSUL  
  ON AREA.F_PCONSULENZ_7FBE3 = CONSUL.OID$  
 INNER JOIN C6StagingPeriodico.ALL_CF_STATO AS SCELTA_STATO  
  ON CONSUL.ADBKID = SCELTA_STATO.CF_CLIENTE  
  AND CONSUL.INSTID = SCELTA_STATO.RETE  
  AND CONSUL.TYPE$_TIPOCO_1EA7C = SCELTA_STATO.STATO_CONSULENZA  
 LEFT JOIN C6StagingPeriodico.NOME_PROGETTO_BOZZA AS PROGETTO_BOZZA  
  ON PRCONSUL.C_PROJECTIDR_51E22 = PROGETTO_BOZZA.C_PROJECTIDR_51E22  
 LEFT JOIN C6StagingPeriodico.WMANDATI AS MANDATI  
  ON TANAB.CODFIS = MANDATI.CODMAND  
 WHERE 1 = 1  
  AND TANAB.DTFINE = 99991231  
  AND SCELTA_STATO.FLAG_UTILIZZO_STATO = 1  
  --da eliminare Trimestrale Ottobre 2012  
  --and TANAB.CODFIS <> '6120'  
  --V disabilitazione   
  --AND tanab.codfis not in('GRVMRZ63C14L566J','DNGMRA56E66D542Z')  
 -- Log esecuzione  
 UPDATE  
  LOG_ESECUZIONE  
 SET  
  Fine = GETDATE(),  
  Tipo = 'INSERT',  
  Righe = @@ROWCOUNT  
 WHERE  
  Nome = 'DM_MONITORAGGIO_ATTUALE' AND  
  Inizio = (  
   SELECT  
    MAX(Inizio)  
   FROM  
    LOG_ESECUZIONE  
   WHERE  
    Nome = 'DM_MONITORAGGIO_ATTUALE'  
  )  
END