public void changeListener(ValueChangeEvent e) { if ("filtroTurma".equals(e.getComponent().getId())) { setCodTurma((e.getNewValue() != null) ? Integer.valueOf(e.getNewValue().toString()) : null); setCodDiscTurma(null); setListaDePresenca(null); populaListaChamadaRealizada(null); populaChamadasRealizadas(null); return; } else if ("filtroDisciplina".equals(e.getComponent().getId())) { setCodDiscTurma( (e.getNewValue() != null) ? Integer.valueOf(e.getNewValue().toString()) : null); populaChamadasRealizadas(getCodDiscTurma()); } else if ("filtroData".equals(e.getComponent().getId())) { setDataAula((e.getNewValue() != null) ? (Date) e.getNewValue() : null); if (getCodTurma() == null || getCodDiscTurma() == null) { setListaDePresenca(null); populaListaChamadaRealizada(null); populaChamadasRealizadas(null); return; } } Frequencia frequenciaExistente = frequenciaDao.getChamada(getCodDiscTurma(), getDataAula()); if (frequenciaExistente == null) { // Ativa/desativa campos acessibilidadeCampos(null, null); // Esconde mensagem chamada realizada setChamadaRealizada(null); populaListaParaChamada(); } else { // Ativa/desativa campos acessibilidadeCampos( frequenciaExistente.getCodUsuario(), frequenciaExistente.getDataChamada()); // Mostra mensagem chamada realizada setChamadaRealizada(frequenciaExistente.getDataChamada()); populaListaChamadaRealizada(frequenciaExistente.getCodChamada()); } }
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 ""; }