create or replace function adam.fn_fco_nov(p_compania   in char,
                                           p_trabajador in char,
                                           p_agrupacion in char,
                                           p_anio       in number,
                                           p_mes        in number,
                                           p_indica     in varchar2)
  return varchar2 is
  Result varchar2(1);
begin
  begin
    case p_indica
      when 'importe' then
        case p_mes
          when 1 then
            select 'X'
              into result
              from acumulados_mensuales a
             where a.compania = p_compania
               and a.trabajador = p_trabajador
               and a.agr_conceptos = p_agrupacion
               and a.anio = p_anio
               and a.acum_imp_mes_01 <> 0;
          when 2 then
            select 'X'
              into result
              from acumulados_mensuales a
             where a.compania = p_compania
               and a.trabajador = p_trabajador
               and a.agr_conceptos = p_agrupacion
               and a.anio = p_anio
               and a.acum_imp_mes_02 <> 0;
          when 3 then
            select 'X'
              into result
              from acumulados_mensuales a
             where a.compania = p_compania
               and a.trabajador = p_trabajador
               and a.agr_conceptos = p_agrupacion
               and a.anio = p_anio
               and a.acum_imp_mes_03 <> 0;
          when 4 then
            select 'X'
              into result
              from acumulados_mensuales a
             where a.compania = p_compania
               and a.trabajador = p_trabajador
               and a.agr_conceptos = p_agrupacion
               and a.anio = p_anio
               and a.acum_imp_mes_04 <> 0;
          when 5 then
            select 'X'
              into result
              from acumulados_mensuales a
             where a.compania = p_compania
               and a.trabajador = p_trabajador
               and a.agr_conceptos = p_agrupacion
               and a.anio = p_anio
               and a.acum_imp_mes_05 <> 0;
          when 6 then
            select 'X'
              into result
              from acumulados_mensuales a
             where a.compania = p_compania
               and a.trabajador = p_trabajador
               and a.agr_conceptos = p_agrupacion
               and a.anio = p_anio
               and a.acum_imp_mes_06 <> 0;
          when 7 then
            select 'X'
              into result
              from acumulados_mensuales a
             where a.compania = p_compania
               and a.trabajador = p_trabajador
               and a.agr_conceptos = p_agrupacion
               and a.anio = p_anio
               and a.acum_imp_mes_07 <> 0;
          when 8 then
            select 'X'
              into result
              from acumulados_mensuales a
             where a.compania = p_compania
               and a.trabajador = p_trabajador
               and a.agr_conceptos = p_agrupacion
               and a.anio = p_anio
               and a.acum_imp_mes_08 <> 0;
          when 9 then
            select 'X'
              into result
              from acumulados_mensuales a
             where a.compania = p_compania
               and a.trabajador = p_trabajador
               and a.agr_conceptos = p_agrupacion
               and a.anio = p_anio
               and a.acum_imp_mes_09 <> 0;
          when 10 then
            select 'X'
              into result
              from acumulados_mensuales a
             where a.compania = p_compania
               and a.trabajador = p_trabajador
               and a.agr_conceptos = p_agrupacion
               and a.anio = p_anio
               and a.acum_imp_mes_10 <> 0;
          when 11 then
            select 'X'
              into result
              from acumulados_mensuales a
             where a.compania = p_compania
               and a.trabajador = p_trabajador
               and a.agr_conceptos = p_agrupacion
               and a.anio = p_anio
               and a.acum_imp_mes_11 <> 0;
          when 12 then
            select 'X'
              into result
              from acumulados_mensuales a
             where a.compania = p_compania
               and a.trabajador = p_trabajador
               and a.agr_conceptos = p_agrupacion
               and a.anio = p_anio
               and a.acum_imp_mes_12 <> 0;
          else
            Raise_application_error(-20010, 'Mes incorrecto');
        end case;
      when 'tiempo' then
        case p_mes
          when 1 then
            select 'X'
              into result
              from acumulados_mensuales a
             where a.compania = p_compania
               and a.trabajador = p_trabajador
               and a.agr_conceptos = p_agrupacion
               and a.anio = p_anio
               and a.acum_tie_mes_01 <> 0;
          when 2 then
            select 'X'
              into result
              from acumulados_mensuales a
             where a.compania = p_compania
               and a.trabajador = p_trabajador
               and a.agr_conceptos = p_agrupacion
               and a.anio = p_anio
               and a.acum_tie_mes_02 <> 0;
          when 3 then
            select 'X'
              into result
              from acumulados_mensuales a
             where a.compania = p_compania
               and a.trabajador = p_trabajador
               and a.agr_conceptos = p_agrupacion
               and a.anio = p_anio
               and a.acum_tie_mes_03 <> 0;
          when 4 then
            select 'X'
              into result
              from acumulados_mensuales a
             where a.compania = p_compania
               and a.trabajador = p_trabajador
               and a.agr_conceptos = p_agrupacion
               and a.anio = p_anio
               and a.acum_tie_mes_04 <> 0;
          when 5 then
            select 'X'
              into result
              from acumulados_mensuales a
             where a.compania = p_compania
               and a.trabajador = p_trabajador
               and a.agr_conceptos = p_agrupacion
               and a.anio = p_anio
               and a.acum_tie_mes_05 <> 0;
          when 6 then
            select 'X'
              into result
              from acumulados_mensuales a
             where a.compania = p_compania
               and a.trabajador = p_trabajador
               and a.agr_conceptos = p_agrupacion
               and a.anio = p_anio
               and a.acum_tie_mes_06 <> 0;
          when 7 then
            select 'X'
              into result
              from acumulados_mensuales a
             where a.compania = p_compania
               and a.trabajador = p_trabajador
               and a.agr_conceptos = p_agrupacion
               and a.anio = p_anio
               and a.acum_tie_mes_07 <> 0;
          when 8 then
            select 'X'
              into result
              from acumulados_mensuales a
             where a.compania = p_compania
               and a.trabajador = p_trabajador
               and a.agr_conceptos = p_agrupacion
               and a.anio = p_anio
               and a.acum_tie_mes_08 <> 0;
          when 9 then
            select 'X'
              into result
              from acumulados_mensuales a
             where a.compania = p_compania
               and a.trabajador = p_trabajador
               and a.agr_conceptos = p_agrupacion
               and a.anio = p_anio
               and a.acum_tie_mes_09 <> 0;
          when 10 then
            select 'X'
              into result
              from acumulados_mensuales a
             where a.compania = p_compania
               and a.trabajador = p_trabajador
               and a.agr_conceptos = p_agrupacion
               and a.anio = p_anio
               and a.acum_tie_mes_10 <> 0;
          when 11 then
            select 'X'
              into result
              from acumulados_mensuales a
             where a.compania = p_compania
               and a.trabajador = p_trabajador
               and a.agr_conceptos = p_agrupacion
               and a.anio = p_anio
               and a.acum_tie_mes_11 <> 0;
          when 12 then
            select 'X'
              into result
              from acumulados_mensuales a
             where a.compania = p_compania
               and a.trabajador = p_trabajador
               and a.agr_conceptos = p_agrupacion
               and a.anio = p_anio
               and a.acum_tie_mes_12 <> 0;
          else
            Raise_application_error(-20010, 'Mes incorrecto');
        end case;
      else
        Raise_application_error(-20010, 'Opcion incorrecta');
    end case;
  exception
    when no_data_found then
      result := ' ';
  end;
  return(Result);
end fn_fco_nov;
/
