public PendenciaRegistroIndividual(Pendencia pendencia, Turma turma)
 {
     SetPendencia(pendencia);
     SetTurma(turma);
 }
Example #2
0
 public Ocorrencia(DateTime dataOcorrencia, string horaOcorrencia, string titulo, string descricao, OcorrenciaTipo ocorrenciaTipo, Turma turma)
     : this(dataOcorrencia, titulo, descricao, ocorrenciaTipo, turma)
 {
     SetHoraOcorrencia(horaOcorrencia);
 }
        private async Task <IEnumerable <NotaConceito> > ValidarEObter(IEnumerable <NotaConceito> notasConceitos, AtividadeAvaliativa atividadeAvaliativa, IEnumerable <AlunoPorTurmaResposta> alunos, string professorRf, string disciplinaId,
                                                                       Usuario usuario, Turma turma)
        {
            var notasMultidisciplina     = new List <NotaConceito>();
            var alunosNotasExtemporaneas = new StringBuilder();
            var nota = notasConceitos.FirstOrDefault();

            var tipoNota = await TipoNotaPorAvaliacao(atividadeAvaliativa, atividadeAvaliativa.DataAvaliacao.Year != DateTime.Now.Year);

            var notaParametro = await repositorioNotaParametro.ObterPorDataAvaliacao(atividadeAvaliativa.DataAvaliacao);

            var dataAtual = DateTime.Now;

            // Verifica Bimestre Atual
            var dataPesquisa      = DateTime.Today;
            var periodosEscolares = await BuscarPeriodosEscolaresDaAtividade(atividadeAvaliativa);

            var periodoEscolarAtual     = periodosEscolares.FirstOrDefault(x => x.PeriodoInicio.Date <= dataPesquisa.Date && x.PeriodoFim.Date >= dataPesquisa.Date);
            var periodoEscolarAvaliacao = periodosEscolares.FirstOrDefault(x => x.PeriodoInicio.Date <= atividadeAvaliativa.DataAvaliacao.Date && x.PeriodoFim.Date >= atividadeAvaliativa.DataAvaliacao.Date);

            if (periodoEscolarAvaliacao == null)
            {
                throw new NegocioException("Período escolar da atividade avaliativa não encontrado");
            }

            var bimestreAvaliacao     = periodoEscolarAvaliacao.Bimestre;
            var existePeriodoEmAberto = periodoEscolarAtual != null && periodoEscolarAtual.Bimestre == periodoEscolarAvaliacao.Bimestre ||
                                        await repositorioPeriodoFechamento.ExistePeriodoPorUeDataBimestre(turma.UeId, DateTime.Today, bimestreAvaliacao);

            foreach (var notaConceito in notasConceitos)
            {
                if (notaConceito.Id > 0)
                {
                    notaConceito.Validar(professorRf);
                }

                var aluno = alunos.FirstOrDefault(a => a.CodigoAluno.Equals(notaConceito.AlunoId));

                if (aluno == null)
                {
                    throw new NegocioException($"Não foi encontrado aluno com o codigo {notaConceito.AlunoId}");
                }

                if (tipoNota.TipoNota == TipoNota.Nota)
                {
                    notaConceito.ValidarNota(notaParametro, aluno.NomeAluno);
                    if (notaParametro == null)
                    {
                        throw new NegocioException("Não foi possível localizar o parâmetro de nota.");
                    }
                }
                else
                {
                    var conceitos = await repositorioConceito.ObterPorData(atividadeAvaliativa.DataAvaliacao);

                    if (conceitos == null)
                    {
                        throw new NegocioException("Não foi possível localizar o parâmetro de conceito.");
                    }
                }

                notaConceito.TipoNota     = (TipoNota)tipoNota.Id;
                notaConceito.DisciplinaId = disciplinaId;
                if (atividadeAvaliativa.Categoria.Equals(CategoriaAtividadeAvaliativa.Interdisciplinar) && notaConceito.Id.Equals(0))
                {
                    var atividadeDisciplinas = repositorioAtividadeAvaliativaDisciplina.ListarPorIdAtividade(atividadeAvaliativa.Id).Result;
                    foreach (var atividade in atividadeDisciplinas)
                    {
                        if (!atividade.DisciplinaId.Equals(disciplinaId))
                        {
                            notasMultidisciplina.Add(new NotaConceito
                            {
                                AlunoId = notaConceito.AlunoId,
                                AtividadeAvaliativaID = notaConceito.AtividadeAvaliativaID,
                                DisciplinaId          = atividade.DisciplinaId,
                                Nota       = notaConceito.Nota,
                                ConceitoId = notaConceito.ConceitoId,
                                TipoNota   = notaConceito.TipoNota
                            });
                        }
                    }
                }

                if ((notaConceito.Id > 0) && (!existePeriodoEmAberto))
                {
                    alunosNotasExtemporaneas.AppendLine($"<li>{aluno.CodigoAluno} - {aluno.NomeAluno}</li>");
                }
            }

            if (alunosNotasExtemporaneas.ToString().Length > 0)
            {
                string mensagem = $"<p>Os resultados da atividade avaliativa '{atividadeAvaliativa.NomeAvaliacao}' da turma {turma.Nome} da {turma.Ue.Nome} (DRE {turma.Ue.Dre.Nome}) no bimestre {bimestreAvaliacao} de {turma.AnoLetivo} foram alterados " +
                                  $"pelo Professor {usuario.Nome} ({usuario.CodigoRf}) em {dataAtual.ToString("dd/MM/yyyy")} às {dataAtual.ToString("HH:mm")} para os seguintes alunos:</p><br/>{alunosNotasExtemporaneas.ToString()}" +
                                  $"<a href='{hostAplicacao}diario-classe/notas/{nota.DisciplinaId}/{bimestreAvaliacao}'>Clique aqui para visualizar os detalhes.</a>";

                foreach (var usuarioCP in usuariosCPs)
                {
                    NotificarUsuarioAlteracaoExtemporanea(atividadeAvaliativa, mensagem, usuarioCP.Id, turma.Nome);
                }

                NotificarUsuarioAlteracaoExtemporanea(atividadeAvaliativa, mensagem, usuarioDiretor.Id, turma.Nome);
            }

            var result = notasConceitos.ToList();

            result.AddRange(notasMultidisciplina);
            return(result);
        }
Example #4
0
 public Ocorrencia(DateTime dataOcorrencia, string titulo, string descricao, OcorrenciaTipo ocorrenciaTipo, Turma turma)
 {
     DataOcorrencia = dataOcorrencia;
     Titulo         = titulo;
     Descricao      = descricao;
     SetOcorrenciaTipo(ocorrenciaTipo);
     SetTurma(turma);
 }