public void finalizarEncuesta() throws DAOException {

    if (irPreguntaSiguiente()) {

      encuestadoDto.setEstadoDto(
          ApplicationHelper.obtenerParametroPorId(
              ConstantesClima.Parametro.ENCUESTADO_ESTADO_TERMINADO));
      encuestadoDto.setEncuestaDto(dto);

      encuestadoManager.editar(encuestadoDto);

      // validar si la encuesta tiene aun pendientes de encuestar, sino se cierra la encuesta.
      List<EncuestadoDto> listEncuestados =
          encuestadoManager.obtenerEncuestadosNoTerminadosXEncuesta(dto);
      if (listEncuestados == null || listEncuestados.isEmpty()) {

        dto.setEstadoDto(
            ApplicationHelper.obtenerParametroPorId(
                ConstantesClima.Parametro.ENCUESTA_ESTADO_TERMINADO));
        manager.editar(dto);
      }
      RequestContext.getCurrentInstance().addCallbackParam("ok", true);

      try {
        this.lista = encuestadoManager.obtenerEncuestasxPersona(dtoFiltro, personaDto);
      } catch (DAOException ex) {
        logger.error("ERROR DE SISTEMA", ex);
        showError(ex.getMessage());
      }
    } else {
      RequestContext.getCurrentInstance().addCallbackParam("ok", false);
    }
  }
  public String iniciar() {
    this.dto = null;
    this.lista = null;
    this.dtoFiltro = new EncuestaDto();
    this.dtoFiltro.setEstadoDto(
        ApplicationHelper.obtenerParametroPorId(
            ConstantesClima.Parametro.ENCUESTA_ESTADO_GENERADO));

    // buscar(null);
    personaDto = new PersonaDto();
    if (sessionMBean.getSessionUsuarioDto() != null) {
      PersonaDto persDto =
          this.obtenerPersonaPorUsuarioConectado(sessionMBean.getSessionUsuarioDto());
      if (persDto != null) {
        personaDto.setId(persDto.getId());
        try {
          this.lista = encuestadoManager.obtenerEncuestasxPersona(dtoFiltro, personaDto);
        } catch (DAOException ex) {
          logger.error("ERROR DE SISTEMA", ex);
          showError(ex.getMessage());
        }
      }
    }

    return ConstantesClima.UrlNavegacion.URL_LISTA_ENCUESTA_PENDIENTE;
  }
  /**
   * Metodo que permite instanciar todos los objetos al iniciar el formulario
   *
   * @since 28/01/2014
   */
  public String iniciar() {
    try {
      this.lista = null;
      this.dto = null;
      this.empresaId = new EmpresaDto();
      /*
      if(this.manager.obtenerEmpresaIdSessionUsuario()!=null){

      this.tipoDeUsuario = Boolean.TRUE;
      this.empresaId = this.empresaManager.obtenerPorId(this.manager.obtenerEmpresaIdSessionUsuario());
      this.listaEmpresaUbigeo = this.empresaUbigeoManager.obtenerTodosPorEmpresa(this.empresaId);
      this.ubigeos = this.manager.cargarUbigeosUsuarioAdministrador(this.listaEmpresaUbigeo);

      }else{

      this.tipoDeUsuario = Boolean.FALSE;
      this.empresaId = new EmpresaDto(this.manager.getIdUbigeoEmpresaPrincipal());
      this.ubigeos = this.cargarUbigeos(this.manager.obtenerPorId(this.manager.getIdUbigeoPrincipal()));

      }*/
      this.ubigeos =
          this.cargarUbigeos(this.manager.obtenerPorId(this.manager.getIdUbigeoPrincipal()));

    } catch (DAOException ex) {
      showError("ERROR_SISTEMA", ex.getMessage());
    }

    return manager.getUrlLista();
  }
 public void buscar(ActionEvent ae) {
   try {
     this.lista = this.manager.obtenerEncuestas(dtoFiltro);
   } catch (DAOException ex) {
     logger.error("ERROR DE SISTEMA", ex);
     showError(ex.getMessage());
   }
 }
  /**
   * Metodo que permite cargar los ubigeos por empresa
   *
   * @since 28/01/2014
   */
  public void filtroEmpresa() {
    try {
      if (this.empresaId != null) {
        this.listaEmpresaUbigeo = this.empresaUbigeoManager.obtenerTodosPorEmpresa(this.empresaId);
        this.ubigeos = this.manager.cargarUbigeosUsuarioAdministrador(this.listaEmpresaUbigeo);
      } else {
        this.empresaId = new EmpresaDto(this.manager.getIdUbigeoEmpresaPrincipal());
        this.ubigeos =
            this.cargarUbigeos(this.manager.obtenerPorId(this.manager.getIdUbigeoPrincipal()));
      }

    } catch (DAOException ex) {
      showError("ERROR_SISTEMA", ex.getMessage());
    }
  }
  /**
   * Metodo que permite instanciar todos los objetos de la entidad por empresa
   *
   * @param empresaDto objeto a instanciar
   * @since 28/01/2014
   */
  public String iniciarUbigeoEmpresa(EmpresaDto empresaDto) {
    try {
      this.lista = null;
      this.dto = null;

      this.lista = this.manager.obtenerPaisesActivos();
      this.listaEmpresaUbigeo = this.empresaUbigeoManager.obtenerTodosPorEmpresa(empresaDto);

      this.ubigeos = this.manager.cargarProcesoInicialDesdeEmpresa(this.listaEmpresaUbigeo);

    } catch (DAOException ex) {
      showError("ERROR_SISTEMA", ex.getMessage());
    }

    return manager.getUrlLista();
  }
  public void rellenar() {

    try {
      List<EncuestadoDto> listEncuestados =
          encuestadoManager.obtenerEncuestadoxPersona(personaDto, this.dto);
      if (listEncuestados != null && listEncuestados.size() > 0) {
        encuestadoDto = listEncuestados.get(0);
      }
    } catch (DAOException ex) {
      logger.error("ERROR DE SISTEMA", ex);
      showError(ex.getMessage());
    }
    Collections.sort(this.dto.getListaPreguntas(), new Comparador("orden"));

    cantTotalPreguntas = this.dto.getListaPreguntas().size();
    for (int i = 0; i < this.dto.getListaEncuestados().size(); i++) {
      if (this.dto
          .getListaEncuestados()
          .get(i)
          .getPersonaDto()
          .getId()
          .equals(personaDto.getId())) {
        // Si el usuario aun no respondio ninguna pregunta
        if (this.dto.getListaEncuestados().get(i).getPreguntaDto() == null) {
          preguntaDto = this.dto.getListaPreguntas().get(0);
          preguntaActual = 1;
        } else {
          preguntaDto = this.dto.getListaEncuestados().get(i).getPreguntaDto();
          preguntaActual = this.dto.getListaEncuestados().get(i).getNumeroPregunta().intValue();

          cargarRespuestasPregunta();
        }
      }
    }
    cantTotalOpciones = preguntaDto.getListaOpcionesResp().size();
  }