Exemple #1
0
 private ComponenteRegenciaComNotaBimestre ObterNotasRegencia(ComponenteCurricularPorTurma componenteCurricular, PeriodoEscolar periodoEscolar, IEnumerable <NotaConceitoBimestreComponente> notasConselhoClasse, IEnumerable <NotaConceitoBimestreComponente> notasFechamento, Turma turma)
 {
     return(new ComponenteRegenciaComNotaBimestre()
     {
         Componente = componenteCurricular.Disciplina,
         EhEja = turma.EhEja,
         NotaConceito = ObterNotasComponente(componenteCurricular, periodoEscolar, notasFechamento).FirstOrDefault()?.NotaConceito,
         NotaPosConselho = ObterNotaPosConselho(componenteCurricular, periodoEscolar?.Bimestre, notasConselhoClasse, notasFechamento)
     });
 }
        private async Task <ComponenteCurricularPorTurma> ObterComponenteRegenciaTurma(string turmaCodigo)
        {
            if (componenteRegencia == null)
            {
                var componentesTurma = await mediator.Send(new ObterComponentesCurricularesPorTurmaQuery(turmaCodigo));

                componenteRegencia = componentesTurma.FirstOrDefault(c => c.Regencia);
            }

            return(componenteRegencia);
        }
Exemple #3
0
        private string ObterNotaPosConselho(ComponenteCurricularPorTurma componenteCurricular, int?bimestre, IEnumerable <NotaConceitoBimestreComponente> notasConselhoClasseAluno, IEnumerable <NotaConceitoBimestreComponente> notasFechamentoAluno)
        {
            var componenteCurricularCodigo = componenteCurricular.CodDisciplina;
            // Busca nota do conselho de classe consultado
            var notaComponente = notasConselhoClasseAluno.FirstOrDefault(c => c.ComponenteCurricularCodigo == componenteCurricularCodigo);

            if (notaComponente == null)
            {
                // Sugere nota final do fechamento
                notaComponente = notasFechamentoAluno.FirstOrDefault(c => c.ComponenteCurricularCodigo == componenteCurricularCodigo && c.Bimestre == bimestre);
            }

            return(notaComponente?.NotaConceito.ToString());
        }
Exemple #4
0
        private List <NotaBimestre> ObterNotasComponente(ComponenteCurricularPorTurma componenteCurricular, PeriodoEscolar periodoEscolar, IEnumerable <NotaConceitoBimestreComponente> notasFechamentoAluno)
        {
            var notasFinais = new List <NotaBimestre>();

            if (periodoEscolar != null)
            {
                notasFinais.Add(ObterNotaFinalComponentePeriodo(componenteCurricular.CodDisciplina, periodoEscolar.Bimestre, notasFechamentoAluno));
            }
            else
            {
                notasFinais.AddRange(ObterNotasFinaisComponentePeriodos(componenteCurricular.CodDisciplina, notasFechamentoAluno));
            }

            return(notasFinais);
        }
Exemple #5
0
        private ComponenteRegenciaComNotaFinal ObterNotasRegencia(ComponenteCurricularPorTurma componenteCurricular, PeriodoEscolar periodoEscolar, IEnumerable <NotaConceitoBimestreComponente> notasConselhoClasse, IEnumerable <NotaConceitoBimestreComponente> notasFechamento, Turma turma)
        {
            var notasComponente = ObterNotasComponente(componenteCurricular, periodoEscolar, notasFechamento);

            return(new ComponenteRegenciaComNotaFinal()
            {
                Componente = componenteCurricular.Disciplina,
                EhEja = turma.EhEja,
                NotaConceitoBimestre1 = notasComponente.FirstOrDefault(n => n.Bimestre == 1)?.NotaConceito,
                NotaConceitoBimestre2 = notasComponente.FirstOrDefault(n => n.Bimestre == 2)?.NotaConceito,
                NotaConceitoBimestre3 = notasComponente.FirstOrDefault(n => n.Bimestre == 3)?.NotaConceito,
                NotaConceitoBimestre4 = notasComponente.FirstOrDefault(n => n.Bimestre == 4)?.NotaConceito,
                NotaFinal = ObterNotaPosConselho(componenteCurricular, periodoEscolar?.Bimestre, notasConselhoClasse, notasFechamento)
            });
        }
Exemple #6
0
        private async Task <ComponenteFrequenciaRegenciaFinal> ObterNotasFrequenciaRegencia(ComponenteCurricularPorTurma disciplina, FrequenciaAluno frequenciaAluno, PeriodoEscolar periodoEscolar, Turma turma, IEnumerable <NotaConceitoBimestreComponente> notasConselhoClasse, IEnumerable <NotaConceitoBimestreComponente> notasFechamento, Usuario usuario)
        {
            var percentualFrequencia = frequenciaAluno != null && frequenciaAluno.Id > 0 && frequenciaAluno.TotalAulas > 0 ? frequenciaAluno?.PercentualFrequencia ?? 100 : 100;

            //Frequência especifica para 2020.
            if (frequenciaAluno != null && turma.AnoLetivo.Equals(2020))
            {
                percentualFrequencia = frequenciaAluno.PercentualFrequenciaFinal;
            }

            var conselhoClasseComponente = new ComponenteFrequenciaRegenciaFinal()
            {
                Aulas  = frequenciaAluno?.TotalAulas ?? 0,
                Faltas = frequenciaAluno?.TotalAusencias ?? 0,
                AusenciasCompensadas = frequenciaAluno?.TotalCompensacoes ?? 0,
                Frequencia           = percentualFrequencia
            };

            var componentesRegencia = await mediator.Send(new ObterComponentesCurricularesRegenciaQuery()
            {
                Turma = turma,
                CdComponenteCurricular = disciplina.CodDisciplina,
                Usuario = usuario
            });

            foreach (var componenteRegencia in componentesRegencia)
            {
                conselhoClasseComponente.ComponentesCurriculares.Add(ObterNotasRegencia(componenteRegencia, periodoEscolar, notasConselhoClasse, notasFechamento, turma));
            }

            return(conselhoClasseComponente);
        }
Exemple #7
0
        private async Task <ComponenteComNotaFinal> ObterNotasFrequenciaComponenteComNotaFinal(ComponenteCurricularPorTurma disciplina, FrequenciaAluno frequenciaAluno, PeriodoEscolar periodoEscolar, Turma turma, IEnumerable <NotaConceitoBimestreComponente> notasConselhoClasseAluno, IEnumerable <NotaConceitoBimestreComponente> notasFechamentoAluno)
        {
            var percentualFrequencia = frequenciaAluno != null && frequenciaAluno.Id > 0 && frequenciaAluno.TotalAulas > 0 ? frequenciaAluno?.PercentualFrequencia ?? 100 : 100;

            if (frequenciaAluno != null && turma.AnoLetivo.Equals(2020))
            {
                percentualFrequencia = frequenciaAluno.PercentualFrequenciaFinal;
            }

            var notasComponente = ObterNotasComponente(disciplina, periodoEscolar, notasFechamentoAluno);

            var conselhoClasseComponente = new ComponenteComNotaFinal()
            {
                EhEja                 = turma.EhEja,
                Componente            = disciplina.Disciplina,
                Faltas                = frequenciaAluno?.TotalAusencias ?? 0,
                AusenciasCompensadas  = frequenciaAluno?.TotalCompensacoes ?? 0,
                Frequencia            = percentualFrequencia,
                NotaConceitoBimestre1 = notasComponente.FirstOrDefault(n => n.Bimestre == 1)?.NotaConceito,
                NotaConceitoBimestre2 = notasComponente.FirstOrDefault(n => n.Bimestre == 2)?.NotaConceito,
                NotaConceitoBimestre3 = notasComponente.FirstOrDefault(n => n.Bimestre == 3)?.NotaConceito,
                NotaConceitoBimestre4 = notasComponente.FirstOrDefault(n => n.Bimestre == 4)?.NotaConceito,
                NotaFinal             = ObterNotaPosConselho(disciplina, periodoEscolar?.Bimestre, notasConselhoClasseAluno, notasFechamentoAluno)
            };

            return(conselhoClasseComponente);
        }
        private async Task <FrequenciaAluno> ObterFrequenciaAluno(IEnumerable <FrequenciaAluno> frequenciaAlunos, string alunoCodigo, ComponenteCurricularPorTurma componenteCurricular, string turmaCodigo)
        {
            var componenteFrequencia = componenteCurricular.Regencia ?
                                       await ObterComponenteRegenciaTurma(turmaCodigo) :
                                       componenteCurricular;

            return(frequenciaAlunos.FirstOrDefault(c => c.CodigoAluno == alunoCodigo &&
                                                   c.DisciplinaId == componenteFrequencia.CodDisciplina.ToString()));
        }
 public async Task <string> ObterSinteseAluno(double?percentualFrequencia, ComponenteCurricularPorTurma componente)
 {
     return(percentualFrequencia >= await ObterFrequenciaMediaPorComponenteCurricular(componente.Regencia, componente.LancaNota) ?
            "Frequente" : "Não Frequente");
 }
Exemple #10
0
        private async Task <ComponenteComNotaBimestre> ObterNotasFrequenciaComponenteComNotaBimestre(ComponenteCurricularPorTurma disciplina, FrequenciaAluno frequenciaAluno, PeriodoEscolar periodoEscolar, Turma turma, IEnumerable <NotaConceitoBimestreComponente> notasConselhoClasseAluno, IEnumerable <NotaConceitoBimestreComponente> notasFechamentoAluno)
        {
            var percentualFrequencia = frequenciaAluno?.TotalAulas > 0 ? frequenciaAluno?.PercentualFrequencia ?? 100 : 100;

            if (frequenciaAluno != null && periodoEscolar != null && turma.AnoLetivo.Equals(2020))
            {
                frequenciaAluno.AdicionarFrequenciaBimestre(periodoEscolar.Bimestre, percentualFrequencia);
                percentualFrequencia = frequenciaAluno.PercentualFrequenciaFinal;
            }

            var conselhoClasseComponente = new ComponenteComNotaBimestre()
            {
                Componente           = disciplina.Disciplina,
                EhEja                = turma.EhEja,
                Aulas                = frequenciaAluno?.TotalAulas ?? 0,
                Faltas               = frequenciaAluno?.TotalAusencias ?? 0,
                AusenciasCompensadas = frequenciaAluno?.TotalCompensacoes ?? 0,
                Frequencia           = percentualFrequencia,
                NotaConceito         = ObterNotasComponente(disciplina, periodoEscolar, notasFechamentoAluno).FirstOrDefault()?.NotaConceito,
                NotaPosConselho      = ObterNotaPosConselho(disciplina, periodoEscolar?.Bimestre, notasConselhoClasseAluno, notasFechamentoAluno)
            };

            return(conselhoClasseComponente);
        }