CREATE OR REPLACE FUNCTION fn_fco_salario(pch_compania   in char,
                                               pch_trabajador in char,
                                               pch_periodo    in char)
  RETURN number
-- JCL. Junio de 2005
  -- Devuelve el salario a un período dado
 is
  vdc_salario number(15, 6);
BEGIN

  begin
  SELECT salario * 30
    INTO vdc_salario
    FROM (select salario
            from historico_sueldos x
           where x.compania = pch_compania
             AND x.trabajador = pch_trabajador
             AND pch_periodo >= to_char(x.fecha, 'YYYYMM')
           order by to_char(x.fecha, 'YYYYMMDD') || RTRIM(x.secuencia) DESC)
   WHERE ROWNUM = 1;
   exception
    when no_data_found then vdc_salario := 0;
   end;

  RETURN nvl(ROUND(vdc_salario, 0), 0);
END fn_fco_salario;
/
