~~ODT~~
Evolução do Número de Bolsas
Essa funcionalidade é utilizada pelos gestores de bolsas com a finalidade de gerar planilhas para acompanhamento da evolução do número de bolsas por tipo em cada ano.
Descrição do Caso de Uso
Este caso de uso inicia quando o usuário acessa a opção: SIPAC → Bolsas → Aba de cadastros → Operações → Relatórios - > Evolução do Número de Bolsas.
Passo 1
Ao acessar o caso de uso, apresenta-se ao usuário os seguintes dados que servem como filtros para a geração do relatório:
- Período*:
- Ano Início: Formato - AAAA, Tipo - NUMÉRICO.
- Ano Fim: Formato - AAAA, Tipo - NUMÉRICO.
- Tipo de Bolsa: Formato - <DENOMINAÇÃO DO TIPO> - (<SIGLA DA UNIDADE PAGADORA>), Tipo - TEXTO (RN02).
- Nível de Ensino: Tipo - TEXTO.
- Considerar Também Bolsas de Convênio: Formato - SIM/NÃO, Tipo - LÓGICO, indica se o relatório deve incluir as bolsa de convênio.
- Formato do Relatório: Formato -
HTML
ouExcel
, Tipo - TEXTO.
Ao selecionar a opção Gerar Relatório o sistema irá gerar o relatório no formato selecionado pelo usuário.
Passo 2
Se o usuário selecionou a opção de gerar o relatório no formato HTML, o relatório é exibido em formato de impressão.
Se o usuário escolheu gerar o relatório no formato Excel, o sistema retorna para o usuário um arquivo de planilha, que pode ser aberto com o Excel da Microsoft ou com o Calc do BrOffice.
Modelo do relatório:
EVOLUÇÃO DO NÚMERO DE BOLSAS (<ANO_INICIO> - <ANO_FIM>) | ||||
---|---|---|---|---|
Período: <ANO_INICIO> a <ANO_FIM> | ||||
Tipo de Bolsa: <TIPO_DE_BOLSA> | ||||
Nível de Ensino: <NIVEL_DE_ENSINO> | ||||
Considerar Bolsas de Convênio: <SIM/NÃO> | ||||
Tipo de Bolsa | <ANO 1> | <ANO 2> | <ANO …> | <ANO N> |
<DENOMINAÇÃO DO TIPO DE BOLSA> - (<SIGLA DA UNIDADE PAGADORA>) | <QUANTIDADE DE BOLSAS ANO 1> | <QUANTIDADE DE BOLSAS ANO 1> | <QUANTIDADE DE BOLSAS ANO …> | <QUANTIDADE DE BOLSAS ANO N> |
Com isto, o caso de uso é finalizado.
Principais Regras de Negócio
- RN01 - Se o usuário possuir somente o papel GESTOR_TIPOS_BOLSA o sistema exibirá apenas os resultados para os tipos de bolsa associado ao usuário logado, conforme a restrição da tabela administrativo.bolsas.restricao_tipo_bolsa .
- RN02 - Se o usuário possuir somente o papel GESTOR_TIPOS_BOLSA o sistema exibirá apenas os tipos de bolsa associados ao usuário logado, conforme a restrição da tabela administrativo.bolsas.restricao_tipo_bolsa .
Resoluções/Legislações Associadas
Não se aplica.
Classes Persistentes e Tabelas Envolvidas
Classe | Tabela |
---|---|
br.ufrn.sipac.bolsas.dominio.Bolsa | administrativo.bolsas.bolsa |
br.ufrn.sipac.bolsas.dominio.TipoBolsa | administrativo.bolsas.tipo_bolsa |
br.ufrn.sipac.bolsas.dominio.Bolsista | administrativo.bolsas.bolsista |
Plano de Teste
Sistema: SIPAC.
Módulo: Bolsas
Link(s): Operações → Relatórios - > Evolução do Número de Bolsas.
Usuário: rcn (GESTOR_BOLSAS_GLOBAL), cunha (SipacPapeis.GESTOR_BOLSAS_CENTRO), flaums (SipacPapeis.GESTOR_TIPOS_BOLSA)
Papel que usuário deve ter:
- SipacPapeis.GESTOR_BOLSAS_GLOBAL
- SipacPapeis.GESTOR_BOLSAS_CENTRO
- SipacPapeis.GESTOR_TIPOS_BOLSA
Cenários de Teste
- Verificar se o fluxo do caso de uso está funcionando corretamente.
- Testar a geração do relatório para diferentes períodos.
- Testar o uso do filtro Tipo de Bolsa.
- Entrar com um usuário com papel GESTOR_TIPOS_BOLSA e verificar se o resultado do relatório foi restrito para os tipos de bolsas associados ao usuário. RN01
- Entrar com um usuário com papel GESTOR_TIPOS_BOLSA e verificar se os tipos de bolsa exibidos no combobox do filtro Tipo de Bolsa estão restritos. RN02
Dados para o Teste
Para conferir os tipos de bolsas associados a um usuário com o papel GESTOR_TIPOS_BOLSA:
SELECT tb.denominacao FROM bolsas.restricao_tipo_bolsa AS r, bolsas.tipo_bolsa AS tb WHERE tb.id = r.id_tipo_bolsa AND r.id_usuario = <ID_USUARIO>
SQL usado para conferir os dados do relatório:
SELECT ano.ano, tb.id, tb.denominacao, ( SELECT COUNT(*) FROM bolsas.bolsa bx LEFT JOIN bolsas.bolsista AS bs ON (bx.id_bolsista = bs.id) LEFT JOIN academico.curso AS cr ON (bs.id_curso = cr.id_curso) WHERE ( ( YEAR(bx.inicio) BETWEEN ano.ano - 1 AND ano.ano + 1) OR ( YEAR(bx.fim) BETWEEN ano.ano - 1 AND ano.ano + 1) OR ( YEAR(bx.inicio ) < ano.ano - 1 AND YEAR(bx.fim) > ano.ano + 1 ) ) AND bx.id_tipo_bolsa = tb.id AND cr.nivel = [? Nível de Ensino] ) AS quantidade FROM generate_series(2011,2011) AS ano, bolsas.tipo_bolsa tb, bolsas.restricao_tipo_bolsa r WHERE tb.convenio = FALSE AND tb.id = r.id_tipo_bolsa AND r.id_usuario = [?] AND tb.codigo = [? CODIGO TIPO BOLSA] GROUP BY ano.ano, tb.id, tb.denominacao ORDER BY ano.ano, tb.denominacao;