~~ODT~~ echo "
"; echo "Última atualização: "; ver('', false); echo "
";
====== Relatório de Passagens Internacionais Empenhadas ====== Este caso de uso tem a finalidade de gerar um relatório quantitativo exibindo o número de requisições de passagens internacionais que foram empenhadas e o valor total gasto. Essa funcionalidade é utilizada pelos gestores de passagem. Precondições: Requisições de passagem internacionais 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 Internacionais 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. ***Tipo de Passagem**:Tipo LÓGICO, AEREA ou TERRESTRE. ***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 ||| | TIPO DE PASSAGEM: AEREA ||| | PERÍODO DA BUSCA: De 01/01/2014 a 31/12/2014 ||| | ANO: 2014 ||| ^ Unidades ^^^ ^ Unidade ^ Quantidade de Requisições ^ Valor Total ^ | <> | 99.999 | R$ 9.999,99 | ^ Unidades Subordinadas ^^^ ^ Unidade ^ Requisições ^ Valor ^ | <> | 99.999 | R$ 9.999,99 | | <> | 99.999 | R$ 9.999,99 | | <> | 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): 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 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 not null or t.cidade_externa_origem is not null) and r.data between '2014-01-01' and '2014-12-31' --alterar ao buscar por periodo ) and rp.tipo_pasagem=1 --(0 aereo 1 terrestre) 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 rp.tipo_pasagem=1 --(0 aereo 1 terrestre) 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 not null or t.cidade_externa_origem is not 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 Buscar por Unidades que não são gestoras do empenho select u.id_unidade as UnidadeReq, u.codigo_unidade as codUnidade, u.nome as nomeUnidade, count(distinct(rp.*)) as quantidade, 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 requisicoes.requisicao_passagem rp on (sr.id_requisicao=rp.id) INNER JOIN comum.unidade u ON (u.id_unidade = rp.id_unidade_req) where data_invalidacao is null and u.id_unidade=2 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 '2002-01-31' and '2014-12-31' ) --and rp.tipo_passagem=1 --(0 aereo 1 terrestre) group by u.id_unidade, u.codigo_unidade, u.nome order by u.nome,total