ALTER FUNCTION dbo.fn_fco_salario    
(    
    @pch_compania char(4),    
    @pch_trabajador char(10),    
    @pch_periodo char(6)    
)    
RETURNS decimal(9,0)    
-- JCL. Junio de 2005    
-- Devuelve el salario a un período dado    
AS    
BEGIN    
    DECLARE @vdc_salario decimal(15,6), @vdc_sal_min decimal(15,6)  
    
    SELECT TOP 1 @vdc_salario = salario    
    FROM historico_sueldos x    
    WHERE x.compania = @pch_compania AND x.trabajador = @pch_trabajador     
      AND @pch_periodo >= CONVERT(char(6), x.fecha, 112)    
    ORDER BY CONVERT(char(8), x.fecha, 112) + RTRIM(x.secuencia) DESC    
    
    SELECT @vdc_sal_min = real  
    FROM parametros_rh  
    WHERE compania = @pch_compania  
      AND parametro_rh = 'Sal_Minimo'  
  
    IF ISNULL(@vdc_sal_min, 0) > 0  
        IF @vdc_salario < @vdc_sal_min SET @vdc_salario = @vdc_sal_min  

    If ISNULL(@vdc_sal_min, 0) > 0  
        IF @vdc_salario > 25 * @vdc_sal_min SET @vdc_salario = 25 * @vdc_sal_min
  
    RETURN ISNULL(ROUND(@vdc_salario,0), 0)    
END    
  
