~~ODT~~
Relatório de Passagens Nacionais Empenhadas
Este caso de uso tem a finalidade de gerar um relatório quantitativo exibindo o número de requisições de passagens nacionais que foram empenhadas e o valor total gasto. Essa funcionalidade é utilizada pelos gestores de passagem.
Precondições: Requisições de passagem nacionais empenhadas.
Descrição do Caso de Uso
Este caso de uso se inicia quando o usuário acessa a opção: SIPAC → Atendimento de Requisições → Aba Passagem → Relatórios → Passagens Nacionais Empenhadas.
Inicialmente o sistema requer a definição de uma unidade e exibe os seguintes filtros para a criação do relatório(lembrando que apenas um filtro é permitido por consulta):
- Unidade: Tipo NUMÉRICO e TEXTO, formato: DENOMINAÇÃO UNIDADE (CÓDIGO). Ao seleciona uma unidade, automaticamente o relatório deve trazer informações das subunidades.
- Ano: Tipo NUMÉRICO.
- Período: Tipo DATA, formato: DD/MM/AAAA a DD/MM/AAAA. (Selecionar ou o ano ou o período).
Se a unidade não for informada, exibir de todas as unidades, separadas por unidade gestora.
Então o sistema exibe os dados selecionados na consulta e uma listagem é exibida com os seguintes dados:
- Unidade: Tipo - TEXTO. Formato: NOME DA UNIDADE (CÓDIGO).
- Valor Total: Tipo - NUMÉRICO. Valor total de gastos da unidade no ano ou período selecionado.
- Total de Requisições: Tipo - NUMÉRICO.
Para cada item listado, é possível visualizar o resumo da requisição.
Modelo da listagem
Relatório de Passagens Internacionais Empenhadas | ||
---|---|---|
UNIDADE: 1135 - SUPERINTENDÊNCIA DE INFORMÁTICA | ||
PERÍODO DA BUSCA: De 01/01/2014 a 31/12/2014 | ||
ANO: 2014 | ||
Unidades | ||
Unidade | Quantidade de Requisições | Valor Total |
«NOME DA UNIDADE» | 99.999 | R$ 9.999,99 |
Unidades Subordinadas | ||
Unidade | Requisições | Valor |
«NOME DA UNIDADE» | 99.999 | R$ 9.999,99 |
«NOME DA UNIDADE» | 99.999 | R$ 9.999,99 |
«NOME DA UNIDADE» | 99.999 | R$ 9.999,99 |
O caso de uso é finalizado.
Principais Regras de Negócio
Não se aplica.
Resoluções/Legislações Associadas
Não se aplica.
Classes Persistentes e Tabelas Envolvidas
Classe | Tabela |
---|---|
sipac.requisicoes.passagens.dominio.RequisicaoPassagem | administrativo.requisicoes.requisicao_passagens |
Plano de Teste
Sistema: SIPAC
Módulo: Atendimento de Requisição
Link(s): Atendimento de Requisição → Aba de Passagem → Relatórios → Passagens Internacionais Empenhadas
Usuário: jbb
Papel que usuário deve ter: SipacPapeis.GESTOR_PASSAGEM
Cenários de Teste
Não se aplica.
Dados para o Teste
Busca por Unidades gestoras
SELECT e.id_unidade_gestora, u.codigo_unidade, u.nome, COUNT(DISTINCT(rp.*)) AS conta, SUM(valor_empenhado) AS total FROM sco.sub_empenho_requisicao sr JOIN sco.sub_empenho s USING(id_sub_empenho) JOIN sco.empenho e USING (id_empenho) JOIN comum.unidade u ON (u.id_unidade=e.id_unidade_gestora) JOIN requisicoes.requisicao_passagem rp ON (sr.id_requisicao=rp.id) WHERE data_invalidacao IS NULL --and e.id_unidade_gestora=2644 --busca por unidade --and e.data between 'ano-01-01' and 'ano-12-31' --busca por periodo AND e.ano=2014 --busca por ano AND rp.id IN (SELECT DISTINCT r.id FROM requisicoes.requisicao_passagem r JOIN requisicoes.trecho t ON (r.id = t.id_req_passagem) WHERE (t.cidade_externa_destino IS NULL AND t.cidade_externa_origem IS NULL) AND r.data BETWEEN '2014-01-01' AND '2014-12-31' --alterar ao buscar por periodo ) GROUP BY e.id_unidade_gestora, u.codigo_unidade, u.nome ORDER BY nome, total
Busca por Unidades Subordinadas
SELECT u.id_unidade AS UnidadeGestoraEmp,u.codigo_unidade AS codUnidade, u.nome AS nomeUnidade, COUNT(DISTINCT(rp.*)) AS quantidade, SUM(valor_empenhado) AS valor FROM sco.sub_empenho_requisicao sr JOIN sco.sub_empenho s USING(id_sub_empenho) JOIN sco.empenho e USING (id_empenho) JOIN requisicoes.requisicao_passagem rp ON (sr.id_requisicao=rp.id) JOIN comum.unidade u ON ( u.id_unidade=rp.id_unidade_req ) WHERE data_invalidacao IS NULL AND e.id_unidade_gestora=2644 --busca por unidade --and e.data between 'ano-01-01' and 'ano-12-31' --busca por periodo AND e.ano=2014 AND rp.id IN (SELECT DISTINCT r.id FROM requisicoes.requisicao_passagem r JOIN requisicoes.trecho t ON (r.id = t.id_req_passagem) WHERE (t.cidade_externa_destino IS NULL AND t.cidade_externa_origem IS NULL) AND r.data BETWEEN '2014-01-01' AND '2014-12-31' --alterar ao buscar por periodo ) GROUP BY u.codigo_unidade,u.nome,u.id_unidade ORDER BY u.nome, valor