~~ODT~~ echo "
"; echo "Última atualização: "; ver('', false); echo "
";
====== 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 - - (), Tipo - TEXTO ([[#Principais Regras de Negócio|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'' ou ''Excel'', 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 ( - ) ^^^^^ ^ Período: a ^^^^^ ^ Tipo de Bolsa: ^^^^^ ^ Nível de Ensino: ^^^^^ ^ Considerar Bolsas de Convênio: ^^^^^ ^ Tipo de Bolsa ^ ^ ^ ^ | | - ()| | | | | ===== ===== 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. [[#Principais Regras de Negócio|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. [[#Principais Regras de Negócio|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 = 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;