public String jefeInmediato(String codUsuario, Solicitud solicitud) throws Exception {
   String montoMaximo = "";
   for (int i = 0; i < 10; i++) {
     montoMaximo =
         cartasRiesgosDAO.montoDelegacionUsuario(codUsuario, solicitud.getGrupoPersona());
     BigDecimal getMontoRiesgos = new BigDecimal(montoMaximo);
     if (getMontoRiesgos.compareTo(solicitud.getRiesgoTotal()) == 1
         || getMontoRiesgos.compareTo(solicitud.getRiesgoTotal()) == 0) {
       break;
     }
     codUsuario = usuarioDAO.codJefeInmediatoRiesgos(codUsuario);
   }
   return codUsuario;
 }
  // TODO si retorna 1 paso validacion si retorna 0 no paso validacion
  public int validacionMontosPlazos(Solicitud solicitud, String codGestor) throws Exception {

    String tipoPersona = usuarioDAO.getTipoPersona(codGestor);
    BigDecimal getMonto = BigDecimal.ZERO;
    String codCargo = solicitud.getGestorCod();
    String codOficina = solicitud.getCodOficina();
    if (tipoPersona.equals("O")) {
      String montoDelegacion =
          cartasRiesgosDAO.montoDelegacionUsuario(codGestor, solicitud.getGrupoPersona());
      if (montoDelegacion.equals("0")) {
        String codJefeOficina = usuarioDAO.getJefeOficina(codCargo, codOficina);
        String montoJefeOficina =
            cartasRiesgosDAO.montoDelegacionUsuario(codJefeOficina, solicitud.getGrupoPersona());
        if (!montoJefeOficina.equals("")) {
          getMonto = new BigDecimal(montoJefeOficina);
        }
        if (getMonto.compareTo(solicitud.getRiesgoTotal()) == 0
            || getMonto.compareTo(solicitud.getRiesgoTotal()) == 1) {
          return 1;
        }
      }
    } else if (tipoPersona.equals("R")) {
      String monto = "0";
      String montoDelegacion =
          cartasRiesgosDAO.montoDelegacionUsuario(codGestor, solicitud.getGrupoPersona());
      if (montoDelegacion.equals("0")) {
        String jefeInmediato = jefeInmediato(codGestor, solicitud);
        if (!jefeInmediato.equals("")) {
          monto =
              cartasRiesgosDAO.montoDelegacionUsuario(jefeInmediato, solicitud.getGrupoPersona());
        }
        BigDecimal getMontos = new BigDecimal(monto);
        if (getMontos.compareTo(solicitud.getRiesgoTotal()) == 1
            || getMontos.compareTo(solicitud.getRiesgoTotal()) == 0) {
          return 1;
        }
      } else {
        BigDecimal getMontos = new BigDecimal(montoDelegacion);
        if (getMontos.compareTo(solicitud.getRiesgoTotal()) == 1
            || getMontos.compareTo(solicitud.getRiesgoTotal()) == 0) {
          return 1;
        }
      }
    }
    return 0;
  }
  public List<Solicitud> consultarSolicitudAjax(
      String codCentral,
      String nroSolicitud,
      String fechaIngresoIni,
      String fechaIngresoFin,
      String fechaVencimiento,
      String usuario)
      throws Exception {
    HttpServletRequest request = WebContextFactory.get().getHttpServletRequest();
    Solicitud solicitudBean = new Solicitud();
    if (codCentral != null && !codCentral.equalsIgnoreCase(Constant.STR_VACIO)) {
      solicitudBean.setCodCentral(Constant.CHAR_PORCENTAJE + codCentral + Constant.CHAR_PORCENTAJE);
    }
    if (nroSolicitud != null && !nroSolicitud.equalsIgnoreCase(Constant.STR_VACIO)) {
      solicitudBean.setNroSolicitud(new Long(nroSolicitud));
    }
    if (fechaIngresoIni != null && !fechaIngresoIni.equalsIgnoreCase(Constant.STR_VACIO)) {
      solicitudBean.setFechaIngresoIni(UtilDate.stringToUtilDate(fechaIngresoIni, null));
    }
    if (fechaIngresoFin != null && !fechaIngresoFin.equalsIgnoreCase(Constant.STR_VACIO)) {
      solicitudBean.setFechaIngresoFin(UtilDate.stringToUtilDate(fechaIngresoFin, null));
    }
    solicitudBean.setEstadoSolicitud(
        Constant.TABLA_ESTADOS_SOLCITUD
            + Constant.CHAR_GUION
            + Constant.ESTADO_SOLICITUD_PENDIENTE);
    IILDPeUsuario usuarioSesion =
        (IILDPeUsuario) request.getSession().getAttribute("USUARIO_SESION");
    BancaSub subBancaBean = new BancaSub();
    subBancaBean.setCodUsuario(usuarioSesion.getUID());
    UsuarioSubanca bean = catalogoService.getSubancaPorUsuario(subBancaBean);
    if (bean != null) {
      solicitudBean.setCodBanca(bean.getCodBanca());
    }

    try {
      List<Solicitud> lstSolicitud = solicitudService.getLstSolicitudes(solicitudBean);
      if (usuario.equals(Constant.STR_VACIO)) {
        return lstSolicitud;
      } else {
        Usuario usuarioBean = new Usuario();
        usuarioBean.setCodigoUsuario(usuario);
        usuarioBean = catalogoService.getUsuarioMontos(usuarioBean);
        for (Solicitud solicitud : lstSolicitud) {
          if (solicitud.getGrupoPersona().equalsIgnoreCase(Constant.GRUPO_PER_NATUAL)) {
            if (solicitud.getRiesgoTotal().compareTo(usuarioBean.getMtoMaxPerNatual()) == -1) {
              lstSolicitud.remove(solicitud);
            }
          }
          if (solicitud.getGrupoPersona().equalsIgnoreCase(Constant.GRUPO_CON_RATING)) {
            if (solicitud.getRiesgoTotal().compareTo(usuarioBean.getMtoMaxRating()) == -1) {
              lstSolicitud.remove(solicitud);
            }
          }
          if (solicitud.getGrupoPersona().equalsIgnoreCase(Constant.GRUPO_SIN_RATING)) {
            if (solicitud.getRiesgoTotal().compareTo(usuarioBean.getMtoSinRating()) == -1) {
              lstSolicitud.remove(solicitud);
            }
          }
        }
        return lstSolicitud;
      }

    } catch (Exception e) {
      logger.error("BusquedaSolicitudAction.consultarSolicitudAjax " + e);
    }
    return new ArrayList<Solicitud>();
  }