@SuppressWarnings({"unchecked", "rawtypes"}) public void populaListaChamadaRealizada(Integer codChamada) { ArrayList<ChamadaWrapper> list = new ArrayList(); for (FrequenciaAluno fa : frequenciaAlunoDao.getByProperty("fa.codChamada=", codChamada)) { Boolean presente = ("s".equals(fa.getPresente())) ? true : false; Boolean faltaJustificada = ("s".equals(fa.getFaltaJustificada()) && !presente) ? true : false; list.add(new ChamadaWrapper(presente, faltaJustificada, fa.getObservacao(), fa.getAluno())); } setListaDePresenca(list); }
public String gravarChamada() { if (getDataAula().before(new Date())) { try { Frequencia frequenciaExistente = frequenciaDao.getChamada(getCodDiscTurma(), getDataAula()); if (frequenciaExistente == null) { Frequencia frequencia = new Frequencia(); frequencia.setCodDiscTurma(getCodDiscTurma()); frequencia.setDataAula(getDataAula()); frequencia.setDataChamada(new Date()); frequencia.setCodUsuario(usuarioLogado.getCodUsuario()); frequenciaDao.insert(frequencia); if (frequencia.getCodChamada() != null) { for (ChamadaWrapper c : getListaDePresenca()) { String presente = (c.estaPresente) ? "s" : "n"; String faltaJustificada = (c.faltaJustificada && !c.estaPresente) ? "s" : "n"; frequenciaAlunoDao.insert( new FrequenciaAluno( c.aluno.getCodAluno(), frequencia.getCodChamada(), presente, faltaJustificada, c.observacao)); } // Ativa/desativa campos acessibilidadeCampos(frequencia.getCodUsuario(), dataHoje()); populaListaChamadaRealizada(frequencia.getCodChamada()); populaChamadasRealizadas(frequencia.getCodDiscTurma()); Message.successMessage("Chamada gravada com sucesso"); } else { Message.errorMessage("Houve um erro ao gravar chamada"); } } else { // Garante que somente pessoas autorizadas podem editar a chamada if ("a".equals(usuarioLogado.getTipo()) || "s".equals(usuarioLogado.getTipo()) || usuarioLogado.getCodUsuario().equals(frequenciaExistente.getCodUsuario())) { for (ChamadaWrapper c : getListaDePresenca()) { String presente = (c.estaPresente) ? "s" : "n"; String faltaJustificada = (c.faltaJustificada && !c.estaPresente) ? "s" : "n"; frequenciaAlunoDao.update( new FrequenciaAluno( c.aluno.getCodAluno(), frequenciaExistente.getCodChamada(), presente, faltaJustificada, c.observacao)); } populaListaChamadaRealizada(frequenciaExistente.getCodChamada()); Message.successMessage("Chamada editada com sucesso"); } } } catch (Exception e) { Message.errorMessage(e.getMessage()); } } else { Message.warningMessage("Não é permitido fazer chamadas para datas futuras"); } return ""; }