public void nuevaSolicitud() {
    if (login.getContacto().getRol().getId() == 5) // si es visitante
    {
      solicitante = service.getContactoByLogin(login.getLoggedUser());
      setSelectedDepartamento(solicitante.getDepartamentoId());
      municipios = service.getMunicipios(selectedDepartamento);
      setSelectedMunicipio(solicitante.getMunicipioId());
      setSelectedNivel(solicitante.getNivelAcademico());
    } else solicitante = new Contacto();

    solicitud = new Solicitud();
  }
  public String registrarSolicitud(Solicitud solicitud, Contacto solicitante) {

    // si el rol es visitante, antes de aplicar debe completar su portafolio

    if (login.getContacto().getRol().getId() == 5) {
      if (solicitante.getPrimerNombre() == null
          || solicitante.getPrimerApellido() == null
          || solicitante.getFechaNacimiento() == null
          || solicitante.getNumeroIdentificacion() == null
          || solicitante.getSexo() == null
          || solicitante.getCorreo1() == null
          || solicitante.getDireccionActual() == null
          ||
          // solicitante.getNacionalidadId() == null ||
          solicitante.getDepartamentoId() == null
          || solicitante.getMunicipioId() == null
          || solicitante.getNivelAcademico() == null) {
        FacesUtil.getMensaje(
            "SCCL - Mensaje: ", "Antes de aplicar debe completar su portafolio.", true);
        return null;
      }
    }

    // validar si tiene solicitudes pendientes
    if (service.tieneSolicitudesPendientes(
        solicitante.getNumeroIdentificacion(), selectedCertificacion.getId())) {
      FacesUtil.getMensaje(
          "SCCL - Mensaje: ",
          "El candidato ya aprobó esta certificación o tiene otra solicitud en proceso.",
          true);
      return null;
    }

    // validar la cedula del candidato
    if (!ValidatorUtil.validateCedula(solicitante.getNumeroIdentificacion())) {
      FacesUtil.getMensaje("SCCL - Mensaje: ", "La cedula es invalida.", true);
      return null;
    }

    // validar fecha de nacimiento
    if (!ValidatorUtil.validarEdadSolicitante(solicitante.getFechaNacimiento())) {
      FacesUtil.getMensaje(
          "SCCL - Mensaje: ", "La edad del canditato debe estar entre 18 y 45 años.", true);
      return null;
    }

    Date fecha =
        ValidatorUtil.obtenerFechaNacimientoDeCedula(solicitante.getNumeroIdentificacion());
    if (fecha.compareTo(solicitante.getFechaNacimiento()) != 0) {
      FacesUtil.getMensaje(
          "SCCL - Mensaje: ", "La fecha de nacimiento debe coincidir con la cédula.", true);
      return null;
    }

    solicitud.setCertificacion(selectedCertificacion);
    solicitante.setDepartamentoId(selectedDepartamento);
    solicitante.setMunicipioId(selectedMunicipio);
    solicitante.setNivelAcademico(selectedNivel);
    service.registrarSolicitud(solicitud, solicitante);
    return "/modulos/solicitudes/solicitudes?faces-redirect=true";
  }