~~ODT~~
Relatório de Turmas
Este caso de uso permite ao Coordenador ou Secretário de um determinado curso de graduação a visualização das turmas por curso, departamento ou centro.
Descrição do Caso de Uso
O presente caso de uso gera um relatório a partir de uma série de filtros descritos abaixo:
- Ano-Período
- Unidade (Centro)
- Departamento
- Situação da Turma
- Curso (curso ao qual se destina a reserva de turma)
A listagem das turmas é agrupado pelas seguintes informações:
- Ano-Período no qual a turma foi oferecida;
- Unidade (Centro) ao qual a turma está vinculada;
- Departamento no qual a turma está vinculada;
O relatório contém os seguintes dados:
- Componente curricular;
- Situação da Turma;
- Turma com ou sem reserva;
- Docente(s);
Além de outras informações como:
- Código da Turma (CT);
- Nº de alunos aprovados (AP);
- Nº de alunos reprovados (RP)
- Nº de alunos reprovados por falta (RF);
- Nº de alunos trancados (TR);
- Nº de alunos cancelados (CA);
- Nº de alunos matriculados (MA);
- Nº de alunos em espera (ES);
- Percentuais;
- Total (quantificação total dos montantes parciais AP,RP,RF,TR,CA,MA,ES referente a cada turma listada)
Ao final do relatório é mostrado algumas totalizações gerais das seguintes entidades:
- Componentes
- Aprovados
- Reprovados por Nota
- Reprovados por Falta
- Trancados
- Matriculados
- Em Espera
- Cancelados
Principais Regras de Negócio
Não se aplica.
Classes Persistentes e Tabelas Envolvidas
Classe | Tabela |
---|---|
br.ufrn.sigaa.ensino.dominio.SituacaoTurma | sigaa.ensino.situacao_turma |
br.ufrn.sigaa.ensino.dominio.Turma | sigaa.ensino.turma |
Plano de Teste
Sistema: SIGAA
Módulo: Portal do Coord. Graduação
Link(s): SIGAA → Portal do Coord. Graduação → Consultas → Relatório de Turmas
Usuário: candida (Secretária) , ademirac (Coordenador)
Papel que usuário deve ter: SigaaPapeis.COORDENADOR_CURSO, SigaaPapeis.SECRETARIA_COORDENACAO
Cenários de Teste
Realizar o seguinte UC Criar Turma e verificar a Turma criada no relatório.
Dados para o Teste
Exemplo de consulta para o login ademirac:
select t.id_turma, t.id_situacao_turma, t.codigo as turma_codigo, t.ano, t.periodo, un_centro.id_unidade as id_centro, un_centro.sigla as centro_depto, un_dep.id_unidade as id_departamento, un_dep.nome as departamento, st.descricao as situacao_turma_desc, ccd.codigo as componente_codigo, ccd.nome as componente_nome, ccd.ch_total, array_to_string(array( select pessoa.nome||' ('||ch_dedicada_periodo||'h)' from ensino.turma inner join ensino.docente_turma using (id_turma) left join rh.servidor sin on (id_docente = id_servidor) left join ensino.docente_externo dex using (id_docente_externo) left join comum.pessoa on (sin.id_pessoa = pessoa.id_pessoa or dex.id_pessoa = pessoa.id_pessoa) where id_turma = t.id_turma), ', ') as docentes_turma, un_curso.sigla as unidade_curso, c.nome||coalesce('-'||r_habilitacao.nome,)||coalesce('-'||r_turno.sigla,
)||coalesce('-'||r_grau.descricao,'') as curso_reserva, rc.numero_vagas, rc.vagas_atendidas, rc.vagas_ocupadas, cast(sum( case when mc.id_situacao_matricula = 4 then 1 else 0 end) as double precision) as aprovados, cast(sum( case when mc.id_situacao_matricula = 6 then 1 else 0 end) as double precision) as reprovados_nota, cast(sum( case when mc.id_situacao_matricula = 7 then 1 else 0 end) as double precision) as reprovados_falta, cast(sum( case when mc.id_situacao_matricula = 5 then 1 else 0 end) as double precision) as trancados, cast(sum( case when mc.id_situacao_matricula = 3 then 1 else 0 end) as double precision) as cancelados, cast(sum( case when mc.id_situacao_matricula = 1 then 1 else 0 end) as double precision) as espera, cast(sum( case when mc.id_situacao_matricula = 2 then 1 else 0 end) as double precision) as matriculados, cast(sum( case when mc.id_situacao_matricula = 10 then 1 else 0 end) as double precision) as excluidos from ensino.turma t join ensino.situacao_turma st on t.id_situacao_turma = st.id_situacao_turma join ensino.componente_curricular cc on t.id_disciplina = cc.id_disciplina join ensino.componente_curricular_detalhes ccd on cc.id_detalhe = ccd.id_componente_detalhes join comum.unidade un_dep on cc.id_unidade = un_dep.id_unidade join comum.unidade un_centro on un_dep.id_gestora = un_centro.id_unidade left join graduacao.reserva_curso rc on rc.id_turma = t.id_turma left join graduacao.matriz_curricular matriz on rc.id_matriz_curricular = matriz.id_matriz_curricular left join curso c_reserva on c_reserva.id_curso = rc.id_curso left join graduacao.habilitacao r_habilitacao on matriz.id_habilitacao = r_habilitacao.id_habilitacao left join ensino.turno r_turno on r_turno.id_turno = matriz.id_turno left join ensino.grau_academico r_grau on r_grau.id_grau_academico = matriz.id_grau_academico left join curso c on matriz.id_curso = c.id_curso left join comum.municipio m on c.id_municipio = m.id_municipio left join comum.unidade un_curso on c.id_unidade = un_curso.id_unidade left join ensino.matricula_componente mc on mc.id_turma = t.id_turma where cc.nivel = 'G' and t.id_situacao_turma not in ( 4 ) and un_dep.id_unidade = 142 and t.ano = 2010 and t.periodo = 1 group by t.id_turma, t.id_situacao_turma, t.codigo, t.ano, t.periodo, un_centro.id_unidade, un_centro.sigla, un_centro.nome, un_dep.id_unidade, un_dep.nome, st.descricao, ccd.codigo, ccd.nome, ccd.ch_total, un_curso.sigla, c.nome, rc.numero_vagas, rc.vagas_atendidas, rc.vagas_ocupadas, r_habilitacao.nome, r_turno.sigla, r_grau.descricao order by un_centro.nome, un_dep.nome, un_dep.id_unidade, t.ano, t.periodo, ccd.nome, ccd.codigo, t.id_turma, curso_reserva, c.nome