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); }
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()); }
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); }
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) }); }
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); }
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"); }
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); }