public void habilitarPanelInferior() {
    try {
      cargarUsuario();
      registrarNuevo = Boolean.TRUE;
      mostrarPanelInferior = Boolean.TRUE;
      deshabilitarNuevo = Boolean.FALSE;
      mostrarImportarDatos = Boolean.FALSE;

      solicitudPersonalNuevo = new SolicitudPersonal();
      solicitudPersonalNuevo.getId().setIntPersEmpresa(EMPRESA_USUARIO);
      solicitudPersonalNuevo.setTsFechaRegistro(MyUtil.obtenerFechaActual());
      solicitudPersonalNuevo.setSucursal(
          MyUtil.obtenerSucursalDeLista(
              usuario.getSucursal().getId().getIntIdSucursal(), listaSucursal));
      solicitudPersonalNuevo.setSubsucursal(
          MyUtil.obtenerSubsucursalDeLista(
              usuario.getSubSucursal().getId().getIntIdSubSucursal(),
              solicitudPersonalNuevo.getSucursal().getListaSubSucursal()));
      solicitudPersonalNuevo.setBdMontoTotalSolicitud(new BigDecimal(0));
      solicitudPersonalNuevo.setIntPersEmpresaUsuario(EMPRESA_USUARIO);
      solicitudPersonalNuevo.setIntPersPersonaUsuario(PERSONA_USUARIO);
      solicitudPersonalNuevo.setIntParaEstado(Constante.PARAM_T_ESTADOUNIVERSAL_ACTIVO);
      solicitudPersonalNuevo.setIntParaEstadoPago(Constante.PARAM_T_ESTADOPAGO_PENDIENTE);
      solicitudPersonalNuevo.setIntSucuIdSucursal(usuario.getSucursal().getId().getIntIdSucursal());
      solicitudPersonalNuevo.setIntSudeIdSubsucursal(
          usuario.getSubSucursal().getId().getIntIdSubSucursal());

      habilitarGrabar = Boolean.TRUE;
    } catch (Exception e) {
      log.error(e.getMessage(), e);
    }
  }
  public void agregarSolicitudPersonalDetalle() {
    try {
      strMensajeDetalle = "";
      mostrarMensajeDetalle = Boolean.TRUE;
      if (solicitudPersonalDetalleNuevo.getPersona() == null) {
        strMensajeDetalle = "Debe de agregar una persona.";
        return;
      }
      if (solicitudPersonalDetalleNuevo.getIntSudeIdSubsucursal() == null
          || Integer.signum(solicitudPersonalDetalleNuevo.getIntSudeIdSubsucursal()) == 0) {
        strMensajeDetalle = "Debe de seleccionar una subsucursal valida.";
        return;
      }
      if (solicitudPersonalDetalleNuevo.getIntIdArea() == null
          || Integer.signum(solicitudPersonalDetalleNuevo.getIntIdArea()) == 0) {
        strMensajeDetalle = "Debe de seleccionar un área valida.";
        return;
      }
      if (solicitudPersonalDetalleNuevo.getBdMonto() == null
          || solicitudPersonalDetalleNuevo.getBdMonto().signum() <= 0) {
        strMensajeDetalle = "Debe de ingresar un monto válido.";
        return;
      }
      if (solicitudPersonalDetalleNuevo.getPlanCuenta() == null) {
        strMensajeDetalle = "Debe de agregar un plan de cuenta.";
        return;
      }

      solicitudPersonalDetalleNuevo.setSubsucursal(
          MyUtil.obtenerSubsucursalDeLista(
              solicitudPersonalDetalleNuevo.getIntSudeIdSubsucursal(),
              solicitudPersonalDetalleNuevo.getSucursal().getListaSubSucursal()));
      solicitudPersonalDetalleNuevo.setArea(
          MyUtil.obtenerAreaDeLista(
              solicitudPersonalDetalleNuevo.getIntIdArea(),
              solicitudPersonalDetalleNuevo.getSucursal().getListaArea()));

      solicitudPersonalNuevo.getListaSolicitudPersonalDetalle().add(solicitudPersonalDetalleNuevo);
      calcularMonto();
      mostrarMensajeDetalle = Boolean.FALSE;
    } catch (Exception e) {
      log.error(e.getMessage(), e);
    }
  }
  public void verRegistro() {
    try {
      if (registroSeleccionado
          .getIntParaEstado()
          .equals(Constante.PARAM_T_ESTADOUNIVERSAL_ACTIVO)) {
        deshabilitarNuevo = Boolean.FALSE;
        habilitarGrabar = Boolean.TRUE;
      } else {
        deshabilitarNuevo = Boolean.TRUE;
        habilitarGrabar = Boolean.FALSE;
      }
      mostrarPanelInferior = Boolean.TRUE;

      solicitudPersonalNuevo = registroSeleccionado;

      if (solicitudPersonalNuevo.getIntItemArchivoSustento() != null)
        solicitudPersonalNuevo.setArchivo(obtenerArchivo(solicitudPersonalNuevo));

      for (SolicitudPersonalDetalle solicitudPersonalDetalle :
          solicitudPersonalNuevo.getListaSolicitudPersonalDetalle()) {
        solicitudPersonalDetalle.setPersona(
            personaFacade.devolverPersonaCargada(
                solicitudPersonalDetalle.getIntPersPersonaAbonado()));
        solicitudPersonalDetalle.setPlanCuenta(obtenerPlanCuenta(solicitudPersonalDetalle));
        if (solicitudPersonalDetalle.getIntSucuIdSucursal() != null)
          solicitudPersonalDetalle.setSucursal(
              MyUtil.obtenerSucursalDeLista(
                  solicitudPersonalDetalle.getIntSucuIdSucursal(), listaSucursal));
        if (solicitudPersonalDetalle.getIntSudeIdSubsucursal() != null)
          solicitudPersonalDetalle.setSubsucursal(
              MyUtil.obtenerSubsucursalDeLista(
                  solicitudPersonalDetalle.getIntSudeIdSubsucursal(),
                  solicitudPersonalDetalle.getSucursal().getListaSubSucursal()));
        if (solicitudPersonalDetalle.getIntIdArea() != null)
          solicitudPersonalDetalle.setArea(
              MyUtil.obtenerAreaDeLista(
                  solicitudPersonalDetalle.getIntIdArea(),
                  solicitudPersonalDetalle.getSucursal().getListaArea()));
      }
    } catch (Exception e) {
      log.error(e.getMessage(), e);
    }
  }
  public void mostrarListaSolicitudPersonalCarga() {
    try {
      listaSolicitudPersonalCarga =
          ((FileUploadController) getSessionBean("fileUploadController"))
              .getListaSolicitudPersonal();
      listaSolicitudPersonalDetalleCarga = new ArrayList<SolicitudPersonalDetalle>();

      for (SolicitudPersonal solicitudPersonal : listaSolicitudPersonalCarga) {
        solicitudPersonal.setPersona(
            personaFacade.devolverPersonaCargada(solicitudPersonal.getIntPersPersonaGiro()));
        for (SolicitudPersonalDetalle solicitudPersonalDetalle :
            solicitudPersonal.getListaSolicitudPersonalDetalle()) {
          solicitudPersonalDetalle.setPersona(
              personaFacade.devolverPersonaCargada(
                  solicitudPersonalDetalle.getIntPersPersonaAbonado()));
          solicitudPersonalDetalle.setSucursal(
              MyUtil.obtenerSucursalDeLista(
                  solicitudPersonalDetalle.getIntSucuIdSucursal(), listaSucursal));
          solicitudPersonalDetalle.setSubsucursal(
              MyUtil.obtenerSubsucursalDeLista(
                  solicitudPersonalDetalle.getIntSudeIdSubsucursal(),
                  solicitudPersonalDetalle.getSucursal().getListaSubSucursal()));
          solicitudPersonalDetalle.setArea(
              MyUtil.obtenerAreaDeLista(
                  solicitudPersonalDetalle.getIntIdArea(),
                  solicitudPersonalDetalle.getSucursal().getListaArea()));
          listaSolicitudPersonalDetalleCarga.add(solicitudPersonalDetalle);
        }
      }

    } catch (Exception e) {
      mostrarMensaje(
          Boolean.FALSE, "Hubo un error durante la muestra de carga de Solicitud Personal.");
      log.error(e.getMessage(), e);
    }
  }
  public void buscar() {
    try {
      cargarUsuario();
      solicitudPersonalFiltro.getId().setIntPersEmpresa(EMPRESA_USUARIO);

      listaSolicitudPersonal = new ArrayList<SolicitudPersonal>();
      listaPersonaFiltroBuqueda = new ArrayList<Persona>();
      if (personaFiltroBusqueda.getStrEtiqueta() != null
          && !personaFiltroBusqueda.getStrEtiqueta().isEmpty()) {
        personaFiltroBusqueda.getStrEtiqueta().trim();
        listaPersonaFiltroBuqueda =
            personaFacade.buscarListaPersonaParaFiltro(
                personaFiltroBusqueda.getIntEstadoCod(), personaFiltroBusqueda.getStrEtiqueta());
        if (listaPersonaFiltroBuqueda.isEmpty()) return;
      }

      for (Persona persona : listaPersonaFiltroBuqueda) {
        log.info(persona);
      }

      if (solicitudPersonalFiltro.getIntAño().equals(Constante.OPCION_SELECCIONAR)) {
        solicitudPersonalFiltro.setIntAño(null);
        solicitudPersonalFiltro.setIntMes(null);
      } else {
        if (solicitudPersonalFiltro.getIntMes().intValue() < 10)
          solicitudPersonalFiltro.setIntPeriodoPago(
              Integer.parseInt(
                  solicitudPersonalFiltro.getIntAño() + "0" + solicitudPersonalFiltro.getIntMes()));
        else
          solicitudPersonalFiltro.setIntPeriodoPago(
              Integer.parseInt(
                  solicitudPersonalFiltro.getIntAño() + "" + solicitudPersonalFiltro.getIntMes()));
      }

      if (solicitudPersonalFiltro.getIntParaDocumentoGeneral().equals(Constante.OPCION_SELECCIONAR))
        solicitudPersonalFiltro.setIntParaDocumentoGeneral(null);

      if (solicitudPersonalFiltro
          .getIntParaEstado()
          .equals(Constante.PARAM_T_ESTADOUNIVERSAL_TODOS))
        solicitudPersonalFiltro.setIntParaEstado(null);

      if (solicitudPersonalFiltro.getIntParaEstadoPago().equals(Constante.OPCION_SELECCIONAR))
        solicitudPersonalFiltro.setIntParaEstadoPago(null);

      listaSolicitudPersonal =
          egresoFacade.buscarSolicitudPersonal(solicitudPersonalFiltro, listaPersonaFiltroBuqueda);

      for (SolicitudPersonal solicitudPersonal : listaSolicitudPersonal) {
        solicitudPersonal.setPersona(
            personaFacade.devolverPersonaCargada(solicitudPersonal.getIntPersPersonaGiro()));
        if (solicitudPersonal.getIntSucuIdSucursal() != null)
          solicitudPersonal.setSucursal(
              MyUtil.obtenerSucursalDeLista(
                  solicitudPersonal.getIntSucuIdSucursal(), listaSucursal));
        if (solicitudPersonal.getIntSudeIdSubsucursal() != null)
          solicitudPersonal.setSubsucursal(
              MyUtil.obtenerSubsucursalDeLista(
                  solicitudPersonal.getIntSudeIdSubsucursal(),
                  solicitudPersonal.getSucursal().getListaSubSucursal()));
      }

      Collections.sort(
          listaSolicitudPersonal,
          new Comparator<SolicitudPersonal>() {
            public int compare(SolicitudPersonal uno, SolicitudPersonal otro) {
              return uno.getId()
                  .getIntItemSolicitudPersonal()
                  .compareTo(otro.getId().getIntItemSolicitudPersonal());
            }
          });
      ocultarMensaje();
    } catch (Exception e) {
      log.error(e.getMessage(), e);
    }
  }