IF EXISTS ( SELECT * 
            FROM   sysobjects 
            WHERE  id = object_id(N'[dbo].[CP_CtrlPresup_Anual]') 
                   and OBJECTPROPERTY(id, N'IsProcedure') = 1 )
BEGIN
    DROP PROCEDURE [dbo].[CP_CtrlPresup_Anual] 
END
GO

CREATE PROCEDURE [dbo].[CP_CtrlPresup_Anual] 
 @Id_Plan_Cta INT, 
 @Anio INT,
 @Id_Centro_Costo CHAR(10)
AS
BEGIN

CREATE TABLE #CtrlPresup (
 [Id_Cta_Contable] INT,
 [Alias] INT,
 [Nro_Cta_Contable] VARCHAR(20),
 [Descripcion] VARCHAR(80),
 [Orden_Proyect] SMALLINT,
 [Id_Presup_Tit] SMALLINT,
 [Descripcion_Tit] VARCHAR(100),
 [Orden] SMALLINT,
 [Flag_Tipo] CHAR(2),
 Mes_01  DECIMAL(16,2),
 Mes_02  DECIMAL(16,2),
 Mes_03  DECIMAL(16,2),
 Mes_04  DECIMAL(16,2),
 Mes_05  DECIMAL(16,2),
 Mes_06  DECIMAL(16,2),
 Mes_07  DECIMAL(16,2),
 Mes_08  DECIMAL(16,2),
 Mes_09  DECIMAL(16,2),
 Mes_10  DECIMAL(16,2),
 Mes_11  DECIMAL(16,2),
 Mes_12  DECIMAL(16,2),
 Total  DECIMAL(16,2)
)

INSERT INTO #CtrlPresup
SELECT P.Id_Cta_Contable
 ,P.Alias
 ,P.Nro_Cta_Contable
 ,P.Descripcion
 ,P.Orden_Proyect
 ,ISNULL(P.Id_Presup_Tit,0) 
 ,ISNULL(T.Descripcion,'')
 ,ISNULL(T.Orden,0)
 ,ISNULL(T.Flag_Tipo,'')
 ,(dbo.CF_CtrlPresup_MesPesup (1,@Anio,@Id_Centro_Costo,P.Alias,0))
 ,(dbo.CF_CtrlPresup_MesPesup (2,@Anio,@Id_Centro_Costo,P.Alias,0))
 ,(dbo.CF_CtrlPresup_MesPesup (3,@Anio,@Id_Centro_Costo,P.Alias,0))
 ,(dbo.CF_CtrlPresup_MesPesup (4,@Anio,@Id_Centro_Costo,P.Alias,0))
 ,(dbo.CF_CtrlPresup_MesPesup (5,@Anio,@Id_Centro_Costo,P.Alias,0))
 ,(dbo.CF_CtrlPresup_MesPesup (6,@Anio,@Id_Centro_Costo,P.Alias,0))
 ,(dbo.CF_CtrlPresup_MesPesup (7,@Anio,@Id_Centro_Costo,P.Alias,0))
 ,(dbo.CF_CtrlPresup_MesPesup (8,@Anio,@Id_Centro_Costo,P.Alias,0))
 ,(dbo.CF_CtrlPresup_MesPesup (9,@Anio,@Id_Centro_Costo,P.Alias,0))
 ,(dbo.CF_CtrlPresup_MesPesup (10,@Anio,@Id_Centro_Costo,P.Alias,0))
 ,(dbo.CF_CtrlPresup_MesPesup (11,@Anio,@Id_Centro_Costo,P.Alias,0))
 ,(dbo.CF_CtrlPresup_MesPesup (12,@Anio,@Id_Centro_Costo,P.Alias,0))
 ,(dbo.CF_CtrlPresup_MesPesup (0,@Anio,@Id_Centro_Costo,P.Alias,0))
 FROM Pla_Ctas_Cuentas_Contables P 
      LEFT OUTER JOIN Plan_Ctas_Presupuestos_Tit T ON P.Id_Presup_Tit = T.Id_Presup_Tit
 WHERE Id_Plan_Cta = @Id_Plan_Cta 
  AND Tipo in ('-','+') 
  AND Imputable = 1


END

SELECT * FROM #CtrlPresup ORDER BY Orden,Orden_Proyect,Nro_Cta_Contable
DROP TABLE #CtrlPresup