Exemplo n.º 1
0
 public ObterPendenciaAulaPorTurmaIdDisciplinaIdQuery(string turmaId, string disciplinaId, string professorRf, TipoPendencia tipoPendencia)
 {
     TurmaId       = turmaId;
     DisciplinaId  = disciplinaId;
     ProfessorRf   = professorRf;
     TipoPendencia = tipoPendencia;
 }
 public VerificaExclusaoPendenciasAusenciaAvaliacaoCommand(string turmaCodigo, string[] componentesCurriculares, TipoPendencia tipoPendencia, DateTime dataAvaliacao)
 {
     TurmaCodigo             = turmaCodigo;
     ComponentesCurriculares = componentesCurriculares;
     TipoPendencia           = tipoPendencia;
     DataAvaliacao           = dataAvaliacao;
 }
Exemplo n.º 3
0
 public ObterPendenciasProfessorPorTurmaEComponenteQuery(long turmaId, long[] componentesCurriculares, long?periodoEscolarId, TipoPendencia tipoPendencia)
 {
     TurmaId = turmaId;
     ComponentesCurriculares = componentesCurriculares;
     PeriodoEscolarId        = periodoEscolarId;
     TipoPendencia           = tipoPendencia;
 }
Exemplo n.º 4
0
 public ObterPendenciaPorTurmaCCPeriodoEscolarQuery(long turmaId, long componenteCurricularId, long periodoEscolarId, TipoPendencia tipoPendencia)
 {
     TurmaId = turmaId;
     ComponenteCurricularId = componenteCurricularId;
     PeriodoEscolarId       = periodoEscolarId;
     TipoPendencia          = tipoPendencia;
 }
 public SalvarPendenciaCommand(TipoPendencia tipoPendencia, string descricao = "", string instrucao = "", string titulo = "")
 {
     TipoPendencia = tipoPendencia;
     Titulo        = titulo;
     Descricao     = descricao;
     Instrucao     = instrucao;
 }
Exemplo n.º 6
0
 public Pendencia(TipoPendencia tipo, string titulo = "", string descricao = "", string instrucao = "")
 {
     Situacao  = SituacaoPendencia.Pendente;
     Tipo      = tipo;
     Titulo    = titulo;
     Descricao = descricao;
     Instrucao = instrucao;
 }
Exemplo n.º 7
0
 public SalvarPendenciaCalendarioUeCommand(long tipoCalendarioId, Ue ue, string descricao, string instrucao, TipoPendencia tipoPendencia)
 {
     TipoCalendarioId = tipoCalendarioId;
     Ue            = ue;
     Descricao     = descricao;
     Instrucao     = instrucao;
     TipoPendencia = tipoPendencia;
 }
Exemplo n.º 8
0
 public ExistePendenciaProfessorPorTurmaEComponenteQuery(long turmaId, long componenteCurricularId, long?peridoEscolarId, string professorRf, TipoPendencia tipoPendencia)
 {
     TurmaId = turmaId;
     ComponenteCurricularId = componenteCurricularId;
     PeridoEscolarId        = peridoEscolarId;
     ProfessorRf            = professorRf;
     TipoPendencia          = tipoPendencia;
 }
        private async Task RegistraPendencia(IEnumerable <Aula> aulas, TipoPendencia tipoPendenciaAula)
        {
            var pendenciaId = await mediator.Send(new SalvarPendenciaCommand(tipoPendenciaAula));

            await mediator.Send(new SalvarPendenciasAulasCommand(pendenciaId, aulas.Select(a => a.Id)));

            await SalvarPendenciaUsuario(pendenciaId, aulas.First().ProfessorRf);
        }
Exemplo n.º 10
0
        public async Task <IEnumerable <long> > ObterPendenciaIdPorAula(long aulaId, TipoPendencia tipoPendencia)
        {
            var query = @"select p.id 
                            from pendencia_aula pa  
                           inner join pendencia p on p.id = pa.pendencia_id and not p.excluido
                           where pa.aula_id  = @aulaId
                            and p.tipo = @tipoPendencia";

            return(await database.Conexao.QueryAsync <long>(query, new { aulaId, tipoPendencia }));
        }
        public async Task <long> ObterPendenciaIdPorTurma(long turmaId, TipoPendencia tipoPendencia)
        {
            var query = @"select pp.pendencia_id
                         from pendencia_professor pp
                        inner join pendencia p on p.id = pp.pendencia_id
                        where not p.excluido
                          and pp.turma_id = @turmaId
                          and p.tipo = @tipoPendencia";

            return(await database.Conexao.QueryFirstOrDefaultAsync <long>(query, new { turmaId, tipoPendencia }));
        }
        public void ExcluirPendenciasFechamento(long fechamentoId, TipoPendencia tipoPendencia)
        {
            var query = @"update pendencia p
                             set excluido = true
                         from pendencia_fechamento f
                        where not p.excluido
                          and p.situacao = 1
                          and p.id = f.pendencia_id
                          and p.tipo = @tipoPendencia
	                      and f.fechamento_turma_disciplina_id = @fechamentoId"    ;

            database.Conexao.Execute(query, new { fechamentoId, tipoPendencia });
        }
Exemplo n.º 13
0
        private async Task <string> ObterDescricao(AulaReduzidaDto aula, TipoPendencia tipoPendencia)
        {
            var componenteCurricular = await ObterComponenteCurricular(long.Parse(aula.DisciplinaId));

            var mensagem = new StringBuilder();

            mensagem.AppendLine($"<i>{tipoPendencia.Name()}</i>");
            mensagem.AppendLine("<br />");
            mensagem.AppendLine($"<i>Componente Curricular: {componenteCurricular?.Nome ?? aula.DisciplinaId}</i><br />");
            mensagem.AppendLine($"<i>Professor: {aula.Professor}({aula.ProfessorRf})</i><br />");

            return(mensagem.ToString());
        }
        private string[] ObterPerfisParaPendencia(TipoPendencia tipoPendencia)
        {
            switch (tipoPendencia)
            {
            case TipoPendencia.CalendarioLetivoInsuficiente:
                return(new string[] { "CP", "AD", "Diretor", "ADM UE" });

            case TipoPendencia.CadastroEventoPendente:
                return(new string[] { "ADM UE" });

            default:
                return(new string[] { });
            }
        }
        private string ObterDescricao(TipoPendencia tipoPendencia)
        {
            switch (tipoPendencia)
            {
            case TipoPendencia.AvaliacaoSemNotaParaNenhumAluno:
                return("");

            case TipoPendencia.AulasReposicaoPendenteAprovacao:
                return("");

            case TipoPendencia.AulasSemPlanoAulaNaDataDoFechamento:
                return("");

            case TipoPendencia.AulasSemFrequenciaNaDataDoFechamento:
                return("");

            case TipoPendencia.ResultadosFinaisAbaixoDaMedia:
                return("");

            case TipoPendencia.AlteracaoNotaFechamento:
                return("");

            case TipoPendencia.Frequencia:
                return("As seguintes aulas estão sem Frequência registradas");

            case TipoPendencia.PlanoAula:
                return("As seguintes aulas estão sem Plano de Aula registrados:");

            case TipoPendencia.DiarioBordo:
                return("As seguintes aulas estão sem Diario de Bordo registrados:");

            case TipoPendencia.Avaliacao:
                return("As seguintes aulas estão sem Avaliação registradas:");

            case TipoPendencia.AulaNaoLetivo:
                return("");

            case TipoPendencia.CalendarioLetivoInsuficiente:
                return("");

            case TipoPendencia.CadastroEventoPendente:
                return("");

            default:
                return("");
            }
        }
        private async Task GerarPendencia(long fechamentoId, TipoPendencia tipoPendencia, string mensagem, string professorRf)
        {
            using (var transacao = unitOfWork.IniciarTransacao())
            {
                repositorioPendencia.ExcluirPendenciasFechamento(fechamentoId, tipoPendencia);

                var pendencia = new Pendencia(tipoPendencia, tipoPendencia.Name(), mensagem);
                repositorioPendencia.Salvar(pendencia);

                var pendenciaFechamento = new PendenciaFechamento(fechamentoId, pendencia.Id);
                repositorioPendenciaFechamento.Salvar(pendenciaFechamento);

                await RelacionaPendenciaUsuario(pendencia.Id, professorRf);

                unitOfWork.PersistirTransacao();
            }
        }
Exemplo n.º 17
0
        public async Task <IEnumerable <Aula> > ListarPendenciasPorTipo(TipoPendencia tipoPendenciaAula, string tabelaReferencia, long[] modalidades)
        {
            var query = $@"select
	                        aula.id as Id
                        from
	                        aula
                        inner join turma on 
	                        aula.turma_id = turma.turma_id
                        left join pendencia_aula pa on
	                        aula.id = pa.aula_id
	                    left join pendencia p on p.id = pa.pendencia_id and p.tipo = @tipo and not p.excluido
                        left join {tabelaReferencia} on
	                        aula.id = {tabelaReferencia}.aula_id
                        where
	                        not aula.excluido
	                        and aula.data_aula < @hoje
	                        and turma.modalidade_codigo = ANY(@modalidades)
	                        and pendencia_aula.id is null
	                        and {tabelaReferencia}.id is null
                        group by
	                        aula.id"    ;

            return(await database.Conexao.QueryAsync <Aula>(query, new { hoje = DateTime.Today, tipo = tipoPendenciaAula, modalidades }));
        }
 public ExcluirPendenciaAulaCommand(long aulaId, TipoPendencia tipoPendenciaAula)
 {
     AulaId            = aulaId;
     TipoPendenciaAula = tipoPendenciaAula;
 }
Exemplo n.º 19
0
        public async Task <long> ObterPendenciaAulaPorTurmaIdDisciplinaId(string turmaId, string disciplinaId, string professorRf, TipoPendencia tipoPendencia)
        {
            var query = @"select p.id 
                            from pendencia p 
                           inner join pendencia_aula pa on p.id = pa.pendencia_id 
                           inner join aula a on pa.aula_id = a.id 
                           where not p.excluido
                             and a.turma_id = @turmaId 
                             and a.disciplina_id = @disciplinaId
                             and a.professor_rf = @professorRf
                             and p.tipo = @tipoPendencia";

            return(await database.Conexao.QueryFirstOrDefaultAsync <long>(query, new { turmaId, disciplinaId, tipoPendencia, professorRf }));
        }
Exemplo n.º 20
0
 public ObterPendenciaAulaPorAulaIdQuery(long aulaId, TipoPendencia tipoPendencia)
 {
     AulaId        = aulaId;
     TipoPendencia = tipoPendencia;
 }
        public async Task <IEnumerable <PendenciaCalendarioUe> > ObterPendenciasPorCalendarioUe(long tipoCalendarioId, long ueId, TipoPendencia tipoPendencia)
        {
            var query = @"select pc.* 
                        from pendencia_calendario_ue pc
                       inner join pendencia p on p.id = pc.pendencia_id
                        where not p.excluido 
                          and pc.tipo_calendario_id = @tipoCalendarioId 
                          and pc.ue_id = @ueId
                          and p.tipo = @tipoPendencia";

            return(await database.Conexao.QueryAsync <PendenciaCalendarioUe>(query, new { tipoCalendarioId, ueId, tipoPendencia }));
        }
 public ObterPendenciasAulasPorTipoQuery(TipoPendencia tipoPendenciaAula, string tabelaReferencia, long[] modalidades)
 {
     TipoPendenciaAula = tipoPendenciaAula;
     TabelaReferencia  = tabelaReferencia;
     Modalidades       = modalidades;
 }
Exemplo n.º 23
0
 public ObterPendenciasCalendarioUeQuery(long tipoCalendarioId, long ueId, TipoPendencia tipoPendencia)
 {
     TipoCalendarioId = tipoCalendarioId;
     UeId             = ueId;
     TipoPendencia    = tipoPendencia;
 }
        public void AtualizarPendencias(long fechamentoId, SituacaoPendencia situacaoPendencia, TipoPendencia tipoPendencia)
        {
            var query = @"update pendencia p
                           set situacao = @situacaoPendencia
                         from pendencia_fechamento f
                        where f.pendencia_id = p.id
	                        and p.tipo = @tipoPendencia
                            and f.fechamento_turma_disciplina_id = @fechamentoId                            
                            and not p.excluido ";

            database.Conexao.Execute(query, new { fechamentoId, situacaoPendencia, tipoPendencia });
        }
 public ExcluirPendenciaCalendarioUeCommand(long tipoCalendarioId, long ueId, TipoPendencia tipoPendencia)
 {
     TipoCalendarioId = tipoCalendarioId;
     UeId             = ueId;
     TipoPendencia    = tipoPendencia;
 }
        public async Task <IEnumerable <PendenciaProfessor> > ObterPendenciasProfessorPorTurmaEComponente(long turmaId, long[] componentesCurriculares, long?periodoEscolarId, TipoPendencia tipoPendencia)
        {
            var condicaoPeriodoEscolar = periodoEscolarId.HasValue ?
                                         "and pp.periodo_escolar_id = @periodoEscolarId" :
                                         "and pp.periodo_escolar_id is null";

            var query = $@"select pp.* 
                          from pendencia_professor pp 
                          inner join pendencia p on p.id = pp.pendencia_id
                          where not p.excluido
                            and p.tipo = @tipoPendencia
                            and pp.turma_id = @turmaId
                            and pp.componente_curricular_id = any(@componentesCurriculares)
                            {condicaoPeriodoEscolar}";

            return(await database.Conexao.QueryAsync <PendenciaProfessor>(query, new { turmaId, componentesCurriculares, tipoPendencia, periodoEscolarId }));
        }
        public async Task <long> ObterPendenciaIdPorTurmaCCPeriodoEscolar(long turmaId, long componenteCurricularId, long periodoEscolarId, TipoPendencia tipoPendencia)
        {
            var query = @"select pp.pendencia_id
                         from pendencia_professor pp
                        inner join pendencia p on p.id = pp.pendencia_id
                        where not p.excluido
                          and pp.turma_id = @turmaId
                          and pp.periodo_escolar_id = @componenteCurricularId
                          and pp.componente_curricular_id = @periodoEscolarId
                          and p.tipo = @tipoPendencia";

            return(await database.Conexao.QueryFirstOrDefaultAsync <long>(query, new { turmaId, componenteCurricularId, periodoEscolarId, tipoPendencia }));
        }
 private string ObterTitulo(TipoPendencia tipoPendencia) => tipoPendencia.Name();
        public async Task <bool> ExistePendenciaProfessorPorTurmaEComponente(long turmaId, long componenteCurricularId, long?periodoEscolarId, string professorRf, TipoPendencia tipoPendencia)
        {
            var query = new StringBuilder(@"select 1
                         from pendencia_professor pp
                        inner join pendencia p on p.id = pp.pendencia_id
                        where pp.turma_id = @turmaId
                          and pp.componente_curricular_id = @componenteCurricularId
                          and pp.professor_rf = @professorRf
                          and p.tipo = @tipoPendencia ");

            if (periodoEscolarId.HasValue)
            {
                query.Append("and pp.periodo_escolar_id = @periodoEscolarId");
            }
            else
            {
                query.Append("and pp.periodo_escolar_id is null");
            }


            return(await database.Conexao.QueryFirstOrDefaultAsync <bool>(query.ToString(), new { turmaId, componenteCurricularId, periodoEscolarId, professorRf, tipoPendencia }));
        }
 public ObterPendenciaIdPorTurmaQuery(long turmaId, TipoPendencia tipoPendencia)
 {
     TurmaId       = turmaId;
     TipoPendencia = tipoPendencia;
 }