Exemple #1
0
        public bool UsuarioNotificado(long usuarioId, TipoNotificacaoFrequencia tipo)
        {
            var query = @"select 0
                          from notificacao_frequencia f
                         inner join notificacao n on n.codigo = f.notificacao_codigo
                         where n.usuario_id = @usuarioId
                           and f.tipo = @tipo";

            return(database.Conexao.Query <int>(query, new { usuarioId, tipo }).Any());
        }
Exemple #2
0
        public IEnumerable <AulasPorTurmaDisciplinaDto> ObterAulasSemRegistroFrequencia(string turmaId, string disciplinaId, TipoNotificacaoFrequencia tipoNotificacao)
        {
            var query = @"select
	                        a.id,
	                        a.professor_rf as professorId,
	                        a.data_aula as dataAula,
	                        a.quantidade
                        from
	                        aula a
                        where
	                        not a.excluido
	                        and not a.migrado
	                        and not exists (
	                        select
		                        1
	                        from
		                        notificacao_frequencia n
	                        where
		                        n.aula_id = a.id
		                        and n.tipo = @tipoNotificacao)
	                        and not exists (
	                        select
		                        1
	                        from
		                        registro_frequencia r
	                        where
		                        r.aula_id = a.id)
	                        and a.data_aula < date(now())
	                        and a.turma_id = @turmaId
	                        and a.disciplina_id = @disciplinaId"    ;

            IEnumerable <AulasPorTurmaDisciplinaDto> lista = new List <AulasPorTurmaDisciplinaDto>();

            try
            {
                lista = database.Conexao.Query <AulasPorTurmaDisciplinaDto>(query, new { turmaId, disciplinaId, tipoNotificacao });
            }
            catch (Exception ex)
            {
                SentrySdk.CaptureEvent(new SentryEvent(ex));
                SentrySdk.CaptureEvent(new SentryEvent(new NegocioException($"ObterAulasSemRegistroFrequencia - {turmaId} - {disciplinaId}")));
            }
            return(lista);
        }
Exemple #3
0
 private void NotificarAusenciaFrequencia(TipoNotificacaoFrequencia tipo, ref List <(string, Cargo?)> cargosNotificados)
Exemple #4
0
        public IEnumerable <RegistroFrequenciaFaltanteDto> ObterTurmasSemRegistroDeFrequencia(TipoNotificacaoFrequencia tipoNotificacao)
        {
            var query = @"select
	                        distinct a.turma_id as CodigoTurma,
	                        t.nome as NomeTurma ,
	                        ue.ue_id as CodigoUe,
	                        ue.nome as NomeUe ,
	                        dre.dre_id as CodigoDre,
	                        dre.nome as NomeDre ,
	                        a.disciplina_id as DisciplinaId
                        from
	                        aula a
                        inner join turma t on
	                        t.turma_id = a.turma_id
                        inner join ue on
	                        ue.id = t.ue_id
                        inner join dre on
	                        dre.id = ue.dre_id
                        where
	                        not a.excluido
	                        and not a.migrado
	                        and not exists (
	                        select
		                        1
	                        from
		                        notificacao_frequencia n
	                        where
		                        n.aula_id = a.id
		                        and n.tipo = @tipoNotificacao)
	                        and not exists (
	                        select
		                        1
	                        from
		                        registro_frequencia r
	                        where
		                        r.aula_id = a.id)
	                        and a.data_aula < date(now())
                        order by
	                        dre.dre_id,
	                        ue.ue_id,
	                        a.turma_id"    ;

            return(database.Conexao.Query <RegistroFrequenciaFaltanteDto>(query, new { tipoNotificacao }, commandTimeout: 600));
        }
Exemple #5
0
        private IEnumerable <(Cargo?, Usuario)> BuscaUsuarioNotificacao(RegistroFrequenciaFaltanteDto turma, TipoNotificacaoFrequencia tipo)
        {
            IEnumerable <(Cargo?, Usuario)> usuarios = Enumerable.Empty <(Cargo?, Usuario)>();

            switch (tipo)
            {
            case TipoNotificacaoFrequencia.Professor:
                usuarios = BuscaProfessorAula(turma);
                break;

            case TipoNotificacaoFrequencia.GestorUe:
                usuarios = BuscaGestoresUe(turma.CodigoUe);
                break;

            case TipoNotificacaoFrequencia.SupervisorUe:
                usuarios = BuscaSupervisoresUe(turma.CodigoUe, usuarios.Select(u => u.Item1));
                break;

            default:
                usuarios = BuscaProfessorAula(turma);
                break;
            }
            return(usuarios);
        }