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 eliminarRegistro() {
    try {
      SolicitudPersonal solicitudPersonalEliminar = registroSeleccionado;
      solicitudPersonalEliminar.setListaSolicitudPersonalPago(
          egresoFacade.getListaSolicitudPersonalPago(solicitudPersonalEliminar));
      if (solicitudPersonalEliminar.getListaSolicitudPersonalPago() != null
          && !solicitudPersonalEliminar.getListaSolicitudPersonalPago().isEmpty()) {
        mostrarMensaje(
            Boolean.TRUE,
            "No se puede eliminar la Solicitud Personal, posee un egreso de Pago asociado.");
        return;
      }

      solicitudPersonalEliminar.setIntParaEstado(Constante.PARAM_T_ESTADOUNIVERSAL_ANULADO);
      solicitudPersonalEliminar.setIntPersEmpresaElimina(EMPRESA_USUARIO);
      solicitudPersonalEliminar.setIntPersPersonaElimina(PERSONA_USUARIO);
      solicitudPersonalEliminar.setTsFechaEliminacion(MyUtil.obtenerFechaActual());

      egresoFacade.modificarSolicitudPersonaDirecto(solicitudPersonalEliminar);

      buscar();
      mostrarMensaje(Boolean.TRUE, "Se eliminó correctamente la Solicitud Personal.");
    } catch (Exception e) {
      mostrarMensaje(
          Boolean.FALSE, "Hubo un error durante la eliminación de la Solicitud Personal.");
      log.error(e.getMessage(), e);
    }
  }
 public void seleccionarSucursalDetalle() {
   try {
     solicitudPersonalDetalleNuevo.setSucursal(
         MyUtil.obtenerSucursalDeLista(
             solicitudPersonalDetalleNuevo.getIntSucuIdSucursal(), listaSucursal));
   } 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 abrirPopUpBuscarPlanCuenta() {
   try {
     planCuentaFiltro = new PlanCuenta();
     planCuentaFiltro.setId(new PlanCuentaId());
     planCuentaFiltro.getId().setIntPeriodoCuenta(MyUtil.obtenerAñoActual());
     planCuentaFiltro.setIntTipoBusqueda(Constante.PARAM_T_FILTROSELECTPLANCUENTAS_DESCRIPCION);
     // listaPlanCuenta = planCuentaFacade.getListaPlanCuentaBusqueda(planCuentaFiltro);
     buscarPlanCuenta();
   } catch (Exception e) {
     log.error(e.getMessage(), e);
   }
 }
  public void buscarPersona() {
    try {
      if (personaFiltro.getIntTipoPersonaCod().equals(Constante.PARAM_T_TIPOPERSONA_JURIDICA)) {
        listaPersonaBuscar =
            personaFacade.buscarListaPersonaParaFiltro(
                Constante.PARAM_T_OPCIONPERSONABUSQ_RUC, personaFiltro.getStrRuc());
        List<Persona> listaTemp = new ArrayList<Persona>();
        for (Persona persona : listaPersonaBuscar) {
          if (persona.getIntTipoPersonaCod().equals(Constante.PARAM_T_TIPOPERSONA_JURIDICA)) {
            persona.setJuridica(personaFacade.getJuridicaPorPK(persona.getIntIdPersona()));
            listaTemp.add(persona);
          } else if (persona.getIntTipoPersonaCod().equals(Constante.PARAM_T_TIPOPERSONA_NATURAL)) {
            persona.setDocumento(
                contactoFacade.getDocumentoPorIdPersonaYTipoIdentidad(
                    persona.getIntIdPersona(), Constante.PARAM_T_INT_TIPODOCUMENTO_DNI));
            persona.setNatural(personaFacade.getNaturalPorPK(persona.getIntIdPersona()));
            MyUtil.agregarNombreCompleto(persona);
            listaTemp.add(persona);
          }
        }
        listaPersonaBuscar = listaTemp;

      } else if (personaFiltro
          .getIntTipoPersonaCod()
          .equals(Constante.PARAM_T_TIPOPERSONA_NATURAL)) {
        listaPersonaBuscar =
            personaFacade.buscarListaPersonaParaFiltro(
                Constante.PARAM_T_OPCIONPERSONABUSQ_DNI, personaFiltro.getStrRuc());
        for (Persona persona : listaPersonaBuscar) {
          persona.setDocumento(
              contactoFacade.getDocumentoPorIdPersonaYTipoIdentidad(
                  persona.getIntIdPersona(), Constante.PARAM_T_INT_TIPODOCUMENTO_DNI));
          persona.setNatural(personaFacade.getNaturalPorPK(persona.getIntIdPersona()));
          MyUtil.agregarNombreCompleto(persona);
        }
      }
    } 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 cargarValoresIniciales() {
    try {
      personaFacade = (PersonaFacadeRemote) EJBFactory.getRemote(PersonaFacadeRemote.class);
      empresaFacade = (EmpresaFacadeRemote) EJBFactory.getRemote(EmpresaFacadeRemote.class);
      logisticaFacade = (LogisticaFacadeLocal) EJBFactory.getLocal(LogisticaFacadeLocal.class);
      generalFacade = (GeneralFacadeRemote) EJBFactory.getRemote(GeneralFacadeRemote.class);
      contactoFacade = (ContactoFacadeRemote) EJBFactory.getRemote(ContactoFacadeRemote.class);
      tablaFacade = (TablaFacadeRemote) EJBFactory.getRemote(TablaFacadeRemote.class);
      planCuentaFacade =
          (PlanCuentaFacadeRemote) EJBFactory.getRemote(PlanCuentaFacadeRemote.class);
      egresoFacade = (EgresoFacadeLocal) EJBFactory.getLocal(EgresoFacadeLocal.class);

      listaTablaDocumentoGeneral =
          tablaFacade.getListaTablaPorAgrupamientoA(
              Integer.parseInt(Constante.PARAM_T_DOCUMENTOGENERAL), "P");
      personaFiltroBusqueda = new Persona();
      solicitudPersonalFiltro = new SolicitudPersonal();
      solicitudPersonalFiltro.setIntAño(Constante.OPCION_SELECCIONAR);
      listaSucursal = MyUtil.cargarListaSucursalConSubsucursalArea(EMPRESA_USUARIO);
      listaAnios = MyUtil.obtenerListaAnios();
    } catch (Exception e) {
      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);
    }
  }