public void grabar() {
    log.info("--grabar");
    try {
      if (mostrarPanelInferior) {
        if (solicitudPersonalNuevo.getBdMontoTotalSolicitud() == null
            || solicitudPersonalNuevo.getBdMontoTotalSolicitud().signum() <= 0) {
          mostrarMensaje(Boolean.FALSE, "Debe de haber un Monto Total válido.");
          return;
        }
        if (solicitudPersonalNuevo.getPersona() == null) {
          mostrarMensaje(Boolean.FALSE, "Debe de seleccionar una Entidad de Pago.");
          return;
        }
        if (solicitudPersonalNuevo.getStrObservacion() == null
            || solicitudPersonalNuevo.getStrObservacion().isEmpty()) {
          mostrarMensaje(Boolean.FALSE, "Debe de ingresar una observación.");
          return;
        }
        if (solicitudPersonalNuevo.getArchivo() == null) {
          mostrarMensaje(Boolean.FALSE, "Debe de agregar un archivo de Sustento de Autorización.");
          return;
        }
        /*if(solicitudPersonalNuevo.getIntPeriodoPago()==null){
        	mostrarMensaje(Boolean.FALSE, "Debe de ingresar un Periodo."); return;
        }*/
        if (solicitudPersonalNuevo.getListaSolicitudPersonalDetalle().isEmpty()) {
          mostrarMensaje(Boolean.FALSE, "Debe de agregar al menos un Detalle de Solicitud.");
          return;
        }

        if (!solicitudPersonalNuevo
            .getIntParaDocumentoGeneral()
            .equals(Constante.PARAM_T_DOCUMENTOGENERAL_REMUNERACION)) {
          solicitudPersonalNuevo.setIntParaSubTipoDocumentoPlanilla(null);
        }
        if (solicitudPersonalNuevo
                .getIntParaAgrupacionPago()
                .equals(Constante.PARAM_T_OPERACIONPAGOPLANILLA_INDIVIDUAL)
            && solicitudPersonalNuevo.getListaSolicitudPersonalDetalle().size() > 1) {
          mostrarMensaje(
              Boolean.FALSE,
              "Si el tipo de operación es Individual, solo puede tener 1 detalle asociado.");
          return;
        }

        if (solicitudPersonalNuevo.getId().getIntItemSolicitudPersonal() == null) {
          egresoFacade.grabarSolicitudPersonal(solicitudPersonalNuevo);
          buscar();
          mostrarMensaje(Boolean.TRUE, "Se registró correctamente la Solicitud Personal.");
        } else {
          egresoFacade.modificarSolicitudPersonal(solicitudPersonalNuevo);
          buscar();
          mostrarMensaje(Boolean.TRUE, "Se modificó correctamente la Solicitud Personal.");
        }
      }

      if (mostrarImportarDatos) {
        if (listaSolicitudPersonalCarga != null && !listaSolicitudPersonalCarga.isEmpty()) {
          for (SolicitudPersonal solicitudPersonal : listaSolicitudPersonalCarga) {
            egresoFacade.grabarSolicitudPersonal(solicitudPersonal);
          }
          buscar();
          mostrarMensaje(
              Boolean.TRUE, "Se registraron correctamente las Solicitudes Personales cargadas.");
          ((FileUploadController) getSessionBean("fileUploadController"))
              .setListaSolicitudPersonal(null);
        }
      }

      habilitarGrabar = Boolean.FALSE;
      deshabilitarNuevo = Boolean.TRUE;
    } catch (Exception e) {
      mostrarMensaje(
          Boolean.FALSE,
          "Ocurrio un error durante el proceso de registro de la Solicitud Personal.");
      log.error(e.getMessage(), e);
    }
  }