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 boolean irPreguntaSiguiente() throws DAOException { if (ConstantesClima.Parametro.PREGUNTA_TIPO_RESPUESTA_UNICA_HORIZONTAL.equals( preguntaDto.getTipoPreguntaDto().getId()) || ConstantesClima.Parametro.PREGUNTA_TIPO_RESPUESTA_UNICA_VERTICAL.equals( preguntaDto.getTipoPreguntaDto().getId()) || ConstantesClima.Parametro.PREGUNTA_TIPO_RESPUESTA_UNICA_DESPLEGABLE.equals( preguntaDto.getTipoPreguntaDto().getId())) { if (preguntaDto.getEsObligatorio() && preguntaDto.getOpcionSeleted() == null) { showError( UtilCore.Internacionalizacion.getMensajeInternacional( "encuestado.mensaje.validacion.pregunta")); return false; } if (preguntaDto.getOpcionSeleted() != null) { RespuestaDto respuestaDto = new RespuestaDto(); for (int i = 0; i < preguntaDto.getListaOpcionesResp().size(); i++) { if (preguntaDto .getOpcionSeleted() .equals(preguntaDto.getListaOpcionesResp().get(i).getId())) { List<RespuestaDto> listResp = respuestaManager.obtenerRespuestaxPreguntaEncuestado(preguntaDto, encuestadoDto); if (listResp != null && listResp.size() > 0) { respuestaDto = listResp.get(0); respuestaDto.setOpcionDto(preguntaDto.getListaOpcionesResp().get(i)); respuestaManager.editar(respuestaDto); } else { respuestaDto.setOpcionDto(preguntaDto.getListaOpcionesResp().get(i)); respuestaDto.setPreguntaDto(preguntaDto); respuestaDto.setEncuestadoDto(encuestadoDto); respuestaManager.nuevo(respuestaDto); } encuestadoDto.setPreguntaDto(preguntaDto); encuestadoDto.setNumeroPregunta(new Long(preguntaActual)); encuestadoDto.setEncuestaDto(dto); encuestadoManager.editar(encuestadoDto); break; } } } else { // para las preguntas que no sean obligatorias, si es que habia algo en base de datos // se elimina List<RespuestaDto> listResp = respuestaManager.obtenerRespuestaxPreguntaEncuestado(preguntaDto, encuestadoDto); if (listResp != null && listResp.size() > 0) { respuestaManager.eliminar(listResp.get(0)); } } } else if (ConstantesClima.Parametro.PREGUNTA_TIPO_RESPUESTA_MULTIPLE_HORIZONTAL.equals( preguntaDto.getTipoPreguntaDto().getId()) || ConstantesClima.Parametro.PREGUNTA_TIPO_RESPUESTA_MULTIPLE_VERTICAL.equals( preguntaDto.getTipoPreguntaDto().getId())) { if (preguntaDto.getEsObligatorio()) { boolean sel = false; for (int i = 0; i < preguntaDto.getListaOpcionesResp().size(); i++) { // System.out.println("opcion: "+ i+ "==> // "+preguntaDto.getListaOpcionesResp().get(i).isSelected()); if (preguntaDto.getListaOpcionesResp().get(i).isSelected()) { // showError(UtilCore.Internacionalizacion.getMensajeInternacional("encuestado.mensaje.validacion.pregunta")); sel = true; break; } } if (!sel) { showError( UtilCore.Internacionalizacion.getMensajeInternacional( "encuestado.mensaje.validacion.pregunta")); return false; } } List<RespuestaDto> listResp = respuestaManager.obtenerRespuestaxPreguntaEncuestado(preguntaDto, encuestadoDto); for (int j = 0; j < listResp.size(); j++) { respuestaManager.eliminar(listResp.get(j)); } for (int i = 0; i < preguntaDto.getListaOpcionesResp().size(); i++) { if (preguntaDto.getListaOpcionesResp().get(i).isSelected()) { RespuestaDto respuestaDto = new RespuestaDto(); respuestaDto.setOpcionDto(preguntaDto.getListaOpcionesResp().get(i)); respuestaDto.setPreguntaDto(preguntaDto); respuestaDto.setEncuestadoDto(encuestadoDto); respuestaManager.nuevo(respuestaDto); } } encuestadoDto.setPreguntaDto(preguntaDto); encuestadoDto.setNumeroPregunta(new Long(preguntaActual)); encuestadoDto.setEncuestaDto(dto); encuestadoManager.editar(encuestadoDto); } else if (ConstantesClima.Parametro.PREGUNTA_TIPO_RESPUESTA_ABIERTA.equals( preguntaDto.getTipoPreguntaDto().getId())) { if (preguntaDto.getEsObligatorio()) { if (preguntaDto.getTextInserted() == null || preguntaDto.getTextInserted().trim().equals("")) { showError( UtilCore.Internacionalizacion.getMensajeInternacional( "encuestado.mensaje.validacion.pregunta")); return false; } } RespuestaDto respuestaDto = new RespuestaDto(); List<RespuestaDto> listResp = respuestaManager.obtenerRespuestaxPreguntaEncuestado(preguntaDto, encuestadoDto); if (listResp != null && listResp.size() > 0) { respuestaDto = listResp.get(0); respuestaDto.setValor(preguntaDto.getTextInserted()); respuestaManager.editar(respuestaDto); } else { respuestaDto.setValor( preguntaDto.getTextInserted() == null ? "" : preguntaDto.getTextInserted()); respuestaDto.setPreguntaDto(preguntaDto); respuestaDto.setEncuestadoDto(encuestadoDto); respuestaManager.nuevo(respuestaDto); } encuestadoDto.setPreguntaDto(preguntaDto); encuestadoDto.setNumeroPregunta(new Long(preguntaActual)); encuestadoDto.setEncuestaDto(dto); encuestadoManager.editar(encuestadoDto); } if (preguntaActual < cantTotalPreguntas) { preguntaDto = this.dto.getListaPreguntas().get(preguntaActual); preguntaActual = preguntaActual + 1; cantTotalOpciones = preguntaDto.getListaOpcionesResp().size(); } return true; }