private IndicativoFrequenciaDto ObterIndicativoFrequencia(AlunoPorTurmaResposta aluno, string disciplinaId, PeriodoEscolarDto bimestre, int percentualAlerta, int percentualCritico)
        {
            var frequenciaAluno = repositorioFrequenciaAlunoDisciplinaPeriodo.Obter(aluno.CodigoAluno, disciplinaId, bimestre.PeriodoInicio, bimestre.PeriodoFim, TipoFrequenciaAluno.PorDisciplina);

            // Frequencia não calculada
            if (frequenciaAluno == null)
            {
                return(null);
            }

            int percentualFrequencia = (int)Math.Round(frequenciaAluno.PercentualFrequencia, 0);

            // Critico
            if (percentualFrequencia <= percentualCritico)
            {
                return new IndicativoFrequenciaDto()
                       {
                           Tipo = TipoIndicativoFrequencia.Critico, Percentual = percentualFrequencia
                       }
            }
            ;

            // Alerta
            if (percentualFrequencia <= percentualAlerta)
            {
                return new IndicativoFrequenciaDto()
                       {
                           Tipo = TipoIndicativoFrequencia.Alerta, Percentual = percentualFrequencia
                       }
            }
            ;

            return(null);
        }
Exemplo n.º 2
0
 private void IncluirEventoMatricula(AlunoPorTurmaResposta aluno)
 {
     repositorioEventoMatricula.Salvar(new EventoMatricula()
     {
         CodigoAluno = aluno.CodigoAluno,
         DataEvento  = aluno.DataSituacao,
         Tipo        = aluno.CodigoSituacaoMatricula,
         // Tranferencia interna e Remanejamento detalham escola e turma
         NomeEscola = aluno.EscolaTransferencia,
         NomeTurma  = !string.IsNullOrEmpty(aluno.TurmaTransferencia) ?
                      aluno.TurmaTransferencia : aluno.TurmaRemanejamento
     });
 }
Exemplo n.º 3
0
        private IndicativoFrequenciaDto ObterIndicativoFrequencia(AlunoPorTurmaResposta aluno, string disciplinaId, PeriodoEscolar bimestre, int percentualAlerta, int percentualCritico)
        {
            var frequenciaAluno = repositorioFrequenciaAlunoDisciplinaPeriodo.Obter(aluno.CodigoAluno, disciplinaId, bimestre.Id, TipoFrequenciaAluno.PorDisciplina, aluno.CodigoTurma.ToString());

            // Frequencia não calculada
            if (frequenciaAluno == null)
            {
                if (aluno.PodeEditarNotaConceito())
                {
                    return new IndicativoFrequenciaDto()
                           {
                               Tipo = TipoIndicativoFrequencia.Info, Percentual = 100
                           }
                }
                ;

                return(null);
            }

            int percentualFrequencia = (int)Math.Round(frequenciaAluno.PercentualFrequencia, 0);

            // Critico
            if (percentualFrequencia <= percentualCritico)
            {
                return new IndicativoFrequenciaDto()
                       {
                           Tipo = TipoIndicativoFrequencia.Critico, Percentual = percentualFrequencia
                       }
            }
            ;

            // Alerta
            if (percentualFrequencia <= percentualAlerta)
            {
                return new IndicativoFrequenciaDto()
                       {
                           Tipo = TipoIndicativoFrequencia.Alerta, Percentual = percentualFrequencia
                       }
            }
            ;

            return(new IndicativoFrequenciaDto()
            {
                Tipo = TipoIndicativoFrequencia.Info, Percentual = percentualFrequencia
            });
        }
Exemplo n.º 4
0
        public MarcadorFrequenciaDto ObterMarcadorAluno(AlunoPorTurmaResposta aluno, PeriodoEscolar bimestre, bool ehInfantil = false)
        {
            MarcadorFrequenciaDto marcador = null;

            string dataSituacao = $"{aluno.DataSituacao.Day}/{aluno.DataSituacao.Month}/{aluno.DataSituacao.Year}";

            switch (aluno.CodigoSituacaoMatricula)
            {
            case SituacaoMatriculaAluno.Ativo:
                // Macador "Novo" durante 15 dias se iniciou depois do inicio do bimestre
                if ((aluno.DataSituacao > bimestre.PeriodoInicio) && (aluno.DataSituacao.AddDays(15) >= DateTime.Now.Date))
                {
                    marcador = new MarcadorFrequenciaDto()
                    {
                        Tipo      = TipoMarcadorFrequencia.Novo,
                        Descricao = $"{(ehInfantil ? "Criança Nova" : "Estudante Novo")}: Data da matrícula {dataSituacao}"
                    }
                }
                ;
                break;

            case SituacaoMatriculaAluno.Transferido:
                var detalheEscola = aluno.Transferencia_Interna ?
                                    $"para escola {aluno.EscolaTransferencia} e turma {aluno.TurmaTransferencia}" :
                                    "para outras redes";

                marcador = new MarcadorFrequenciaDto()
                {
                    Tipo      = TipoMarcadorFrequencia.Transferido,
                    Descricao = $"{(ehInfantil ? "Criança Transferida" : "Estudante Transferido")}: {detalheEscola} em {dataSituacao}"
                };

                break;

            case SituacaoMatriculaAluno.RemanejadoSaida:
                marcador = new MarcadorFrequenciaDto()
                {
                    Tipo      = TipoMarcadorFrequencia.Remanejado,
                    Descricao = $"{(ehInfantil ? "Criança Remanejada" : "Estudante Remanejado")}: turma {aluno.TurmaRemanejamento} em {dataSituacao}"
                };

                break;

            case SituacaoMatriculaAluno.Desistente:
            case SituacaoMatriculaAluno.VinculoIndevido:
            case SituacaoMatriculaAluno.Falecido:
            case SituacaoMatriculaAluno.NaoCompareceu:
            case SituacaoMatriculaAluno.Deslocamento:
            case SituacaoMatriculaAluno.Cessado:
            case SituacaoMatriculaAluno.ReclassificadoSaida:
                marcador = new MarcadorFrequenciaDto()
                {
                    Tipo      = TipoMarcadorFrequencia.Inativo,
                    Descricao = $"{(ehInfantil ? "Criança Inativa" : "Estudante Inativo")} em {dataSituacao}"
                };

                break;

            default:
                break;
            }

            return(marcador);
        }
Exemplo n.º 5
0
        private void TrataPeriodosEscolaresParaAluno(FechamentoFinalConsultaFiltroDto filtros, AlunoPorTurmaResposta aluno, ref int totalAusencias, ref int totalAusenciasCompensadas, ref int totalDeAulas, PeriodoEscolar periodo)
        {
            var frequenciaAluno = repositorioFrequenciaAlunoDisciplinaPeriodo.ObterPorAlunoData(aluno.CodigoAluno, periodo.PeriodoFim, TipoFrequenciaAluno.PorDisciplina, filtros.DisciplinaCodigo.ToString());

            if (frequenciaAluno != null)
            {
                totalAusencias            += frequenciaAluno.TotalAusencias;
                totalAusenciasCompensadas += frequenciaAluno.TotalCompensacoes;
                totalDeAulas += frequenciaAluno.TotalAulas;
            }
        }
Exemplo n.º 6
0
        private async Task <FechamentoFinalConsultaRetornoAlunoDto> TrataFrequenciaAluno(FechamentoFinalConsultaFiltroDto filtros, IEnumerable <PeriodoEscolar> periodosEscolares, AlunoPorTurmaResposta aluno, Turma turma)
        {
            var frequenciaAluno = await consultasFrequencia.ObterFrequenciaGeralAlunoPorTurmaEComponente(aluno.CodigoAluno, turma.CodigoTurma, filtros.DisciplinaCodigo.ToString());

            var percentualFrequencia = frequenciaAluno?.PercentualFrequencia ?? 100;

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

            var fechamentoFinalAluno = new FechamentoFinalConsultaRetornoAlunoDto
            {
                Nome = aluno.NomeAluno,
                TotalAusenciasCompensadas = frequenciaAluno?.TotalCompensacoes ?? 0,
                Frequencia    = percentualFrequencia,
                TotalFaltas   = frequenciaAluno?.TotalAusencias ?? 0,
                NumeroChamada = aluno.NumeroAlunoChamada
            };

            return(fechamentoFinalAluno);
        }
        private static NotaConceito ObterNotaParaVisualizacao(IEnumerable <NotaConceito> notas, AlunoPorTurmaResposta aluno, AtividadeAvaliativa atividadeAvaliativa)
        {
            var notaDoAluno = notas.FirstOrDefault(a => a.AlunoId == aluno.CodigoAluno && a.AtividadeAvaliativaID == atividadeAvaliativa.Id);

            return(notaDoAluno);
        }
Exemplo n.º 8
0
        private static bool PodeEditarNotaOuConceito(Usuario usuarioLogado, string professorTitularDaTurmaDisciplinaRf,
                                                     AtividadeAvaliativa atividadeAvaliativa, AlunoPorTurmaResposta aluno)
        {
            if (atividadeAvaliativa.DataAvaliacao >= aluno.DataSituacao &&
                (aluno.CodigoSituacaoMatricula != SituacaoMatriculaAluno.Ativo &&
                 aluno.CodigoSituacaoMatricula != SituacaoMatriculaAluno.PendenteRematricula &&
                 aluno.CodigoSituacaoMatricula != SituacaoMatriculaAluno.Rematriculado &&
                 aluno.CodigoSituacaoMatricula != SituacaoMatriculaAluno.SemContinuidade))
            {
                return(false);
            }

            if (atividadeAvaliativa.DataAvaliacao.Date > DateTime.Today)
            {
                return(false);
            }

            if (usuarioLogado.PerfilAtual == Perfis.PERFIL_CJ)
            {
                if (atividadeAvaliativa.CriadoRF != usuarioLogado.CodigoRf)
                {
                    return(false);
                }
            }
            else
            {
                if (usuarioLogado.CodigoRf != professorTitularDaTurmaDisciplinaRf)
                {
                    return(false);
                }
            }

            return(true);
        }