~~ODT~~ echo "
"; echo "Última atualização: "; ver('', false); echo "
";
====== Consultar Ordem Bancária ====== Este caso de uso serve para que os responsáveis pelo orçamento das unidades realizem consultas às [[desenvolvimento:especificacoes:sipac:orcamentario:casos_de_uso:movimentacoes:empenho:liquidacao:registrar_ordem_bancaria|ordens bancárias]] registradas através do sistema, com o objetivo de visualizar todos os seus detalhes. Esta operação é utilizada pelos funcionários dos setores orçamentários que controlam a execução do orçamento de determinada unidade gestora. ===== Descrição do Caso de Uso ===== Este caso de uso inicia quando o usuário acessa a opção: //SIPAC → Orçamento → Aba Consultas → Empenho → Ordem Bancária//. O usuário pode realizar a consulta utilizando as seguintes informações (o sistema permite a seleção de mais de um campo para efetuar a busca): * **Número da Ordem Bancária**: Formato - 9…, Tipo - NUMÉRICO. * **Empenho**: Formato - 9…, Tipo - NUMÉRICO. * **Processo**: Formato - 99999.999999/AAAA-99 (radical.número/ano-dv) ou ATUAL, Tipo - TEXTO E NUMÉRICO. * **Credor**: Formato - NOME DO CREDOR, Tipo - TEXTO. * **Intervalo de Data**: Formato - DD/MM/AAAA a DD/MM/AAAA, Tipo - DATA. Com a confirmação da consulta, o sistema exibe uma lista de ordens bancárias, com os dados ([[desenvolvimento:especificacoes:sipac:orcamentario:casos_de_uso:consultas:empenho:pagamento:ordem_bancaria#principais_regras_de_negócio|RN01]]): ***__Documento__**: Formato - 999, Tipo - NUMÉRICO. ***__Credor__**: Formato - CREDOR da ORDEM BANCÁRIA, Tipo - TEXTO. ***__Data__**: Formato - DD/MM/AAAA, Tipo - DATA. ***__Processo__**: Formato - 99999.999999/9999-99, Tipo - NUMÉRICO. ***__Status__**: Formato - STATUS DA ORDEM BANCÁRIA, Tipo - TEXTO. ***__Valor (R$)__**: Formato 9,99 - Tipo - NUMÉRICO. * O Sistema apresenta opção para visualizar os dados da ordem bancária. Esta opção exibe os dados: * **__Ordem Bancária__**: Formato - 9…/AAAA, Tipo - NUMÉRICO. * **__Documento__**: Formato - 9/9999, Tipo - NUMÉRICO. * **__Credor__**: Formato - CREDOR da ORDEM BANCÁRIA, Tipo - TEXTO. * **__Data__**: Formato - DD/MM/AAAA, Tipo - DATA. * **__Status__**: Formato - STATUS DA ORDEM BANCÁRIA, Tipo - TEXTO. * **__Ordem Bancária (cancelamento)__**: Formato - 9…/AAAA, Tipo - NUMÉRICO. ([[desenvolvimento:especificacoes:sipac:orcamentario:casos_de_uso:consultas:empenho:pagamento:ordem_bancaria#principais_regras_de_negócio|RN02]]) * **__Valor (R$)__**: Tipo - NUMÉRICO. * **__Observações__**: Tipo - TEXTO. O Caso de Uso é finalizado. ===== Principais Regras de Negócio ===== * **RN01** - Não são apresentadas ordens bancárias com registro de estorno. * **RN02** - Só é exibida quando o status da ordem bancária for CANCELADA ou DE CANCELAMENTO. Quando o status for CANCELADA, a informação exibida é a do documento que cancelou a ordem bancária. Quando o status for DE CANCELAMENTO, a informação exibida é a do documento que foi cancelado pela ordem bancária. ===== Classes Persistentes e Tabelas Envolvidas ===== |^ Classe ^ Tabela | | br.ufrn.sipac.orcamento.movimentacoes.dominio.OrdemBancaria | administrativo.sco.ordem_bancaria | | br.ufrn.sipac.orcamento.movimentacoes.dominio.Lancamento | administrativo.sco.lancamento | | br.ufrn.sipac.orcamento.movimentacoes.dominio.Empenho | administrativo.sco.empenho | | br.ufrn.sipac.orcamento.movimentacoes.dominio.OrdemBancariaLancamento | administrativo.sco.ordem_bancaria_lancamento | ===== Plano de Teste ===== Sistema: SIPAC Módulo: Orçamento Link(s): Orçamento -> Consultas -> Empenho -> Pagamento -> Ordem Bancária Usuário: * falves (executor_orcamento_global) * suzana_macedo (executor_orcamento), * raiula (executor_convenio) Papel que usuário deve ter: ScoPapeis.EXECUTOR_ORCAMENTO, ScoPapeis.EXECUTOR_ORCAMENTO_GLOBAL,ScoPapeis.EXECUTOR_CONVENIO ===== Cenários de Teste ===== * Cadastrar Ordem Bancária através do caso de uso SCO -> Movimentações -> Empenho -> Liquidação/Pagamento -> Registrar Ordem Bancária e verificar se estão sendo exibidas na consulta. ===== Dados para o Teste ===== Pesquisar as ordens bancárias: SELECT ob.id_ordem_bancaria, ob.numero, ob.ano, ob.data, ob.valor, p.num_protocolo, p.ano AS ano_protocolo, s.nome FROM sco.ordem_bancaria ob LEFT OUTER JOIN sco.ordem_bancaria_lancamento obl ON (ob.id_ordem_bancaria = obl.id_ordem_bancaria) JOIN sco.lancamento l ON (obl.id_lancamento = l.id_lancamento) JOIN sco.sub_empenho se ON (l.id_sub_empenho = se.id_sub_empenho) JOIN sco.empenho e ON (se.id_empenho = e.id_empenho) JOIN comum.pessoa c ON (e.id_credor = c.id_pessoa) JOIN sco.status_ordem_bancaria s ON (ob.id_status = s.id_status_ordem_bancaria) LEFT JOIN protocolo.processo p ON (ob.id_processo = p.id_processo) WHERE ob.id_registro_estorno IS NULL AND e.id_registro_estorno IS NULL AND obl.id_registro_estorno IS NULL AND l.id_registro_estorno IS NULL AND se.id_registro_estorno IS NULL AND ob.ativo = trueValue() AND ob.id_unidade_gestora = ? AND ob.data between ? AND ? UNION SELECT ob.id_ordem_bancaria, ob.numero, ob.ano, ob.data, ob.valor, p.num_protocolo, p.ano AS ano_protocolo, s.nome FROM sco.ordem_bancaria ob LEFT OUTER JOIN sco.ordem_bancaria_lancamento obl ON (ob.id_ordem_bancaria = obl.id_ordem_bancaria) JOIN sco.lancamento l ON (obl.id_lancamento = l.id_lancamento) JOIN sco.empenho e ON (l.id_empenho = e.id_empenho) JOIN comum.pessoa c ON (e.id_credor = c.id_pessoa) JOIN sco.status_ordem_bancaria s ON (ob.id_status = s.id_status_ordem_bancaria) LEFT JOIN protocolo.processo p ON (ob.id_processo = p.id_processo) WHERE ob.id_registro_estorno IS NULL AND e.id_registro_estorno IS NULL AND obl.id_registro_estorno IS NULL AND l.id_registro_estorno IS NULL AND ob.ativo = trueValue() AND ob.id_unidade_gestora = ? AND ob.data between ? AND ? ORDER BY data limit 10