public String listarDiscente() throws ArqException { if (!getDiscenteUsuario().getCurso().isLato()) { addMensagemErro("A lista de mensalidades está disponível apenas para discentes de lato sensu"); return null; } MensalidadeCursoLatoDao dao = getDAO(MensalidadeCursoLatoDao.class); CursoLato cursoLato = dao.findByPrimaryKey(getDiscenteUsuario().getCurso().getId(), CursoLato.class); if (cursoLato.getValor() <= 0 || cursoLato.getQtdMensalidades() <= 0) { addMensagemErro("O seu curso não possui mensalidades"); return null; } else if (cursoLato.getIdConfiguracaoGRUMensalidade() == null) { addMensagemErro("As mensalidades não podem ser geradas automaticamente. Entre em contato com a secretaria do seu curso para o pagamento das mensalidades."); return null; } resultadosBusca = dao.findAllByDiscente(getDiscenteUsuario().getId()); // se não há mensalidade cadastrada, chamar o processador para criar em banco. if (isEmpty(resultadosBusca)) { MovimentoCadastro mov = new MovimentoCadastro(); mov.setObjMovimentado(getDiscenteUsuario()); mov.setCodMovimento(SigaaListaComando.CRIAR_MENSALIDADES_CURSO_LATO); prepareMovimento(SigaaListaComando.CRIAR_MENSALIDADES_CURSO_LATO); try { execute(mov); } catch (Exception e) { if (e instanceof NegocioException) addMensagemErro(e.getMessage()); else addMensagemErroPadrao(); notifyError(e); return null; } resultadosBusca = dao.findAllByDiscente(getDiscenteUsuario().getId()); } // carrega os objetos GRU transientes Collection ids = new ArrayList(); for (MensalidadeCursoLato mensalidade : resultadosBusca) ids.add(mensalidade.getIdGRU()); for (GuiaRecolhimentoUniao gru : GuiaRecolhimentoUniaoHelper.getGRUByID(ids)) { for (MensalidadeCursoLato mensalidade : resultadosBusca) { if (mensalidade.getIdGRU() == gru.getId()) mensalidade.setGru(gru); } } return forward("/lato/mensalidade/lista_discente.jsp"); }