IF OBJECT_ID('dbo.fntb_acum_conc_agr') IS NOT NULL
    DROP FUNCTION dbo.fntb_acum_conc_agr
GO
CREATE FUNCTION dbo.fntb_acum_conc_agr
(  
    @pch_compania char(4),  
    @pch_agr_conceptos char(3),  
    @psi_anio smallint,  
    @pti_mes tinyint  
)  
/*********************************************/        
/*  
 Organizacion: Data Tecnologia Ltda.     
 Descripcion:    
    Devuelve trabajador, importe y tiempo, para la compañía, agrupación de conceptos, año y mes dados   
    a partir de [acum_concepto]  
 Autor: Juan Carlos Leguizamon    
 Fecha: Octubre de 2003  
 Revisión: Junio de 2005
*/  
/*********************************************/        
RETURNS TABLE   
AS  
RETURN
(
    SELECT 
        a.trabajador, 
        a.concepto,
        importe = SUM(CASE WHEN b.signo = '+' THEN importe ELSE importe*-1 END),
        tiempo = SUM(CASE WHEN b.signo = '+' THEN tiempo ELSE tiempo*-1 END),
        a.referencia
    FROM acum_concepto a WITH(NOLOCK)
    INNER JOIN rel_conceptos_agr b ON a.compania = b.compania AND a.concepto = b.concepto
    WHERE
        a.compania = @pch_compania AND 
        b.agr_conceptos = @pch_agr_conceptos AND   
        a.anio = @psi_anio AND 
        a.mes_acumular = @pti_mes
    GROUP BY
        a.trabajador, a.concepto, a.referencia
)
GO
GRANT SELECT ON fntb_acum_conc_agr TO PUBLIC
GO
