~~ODT~~
====== Anulações Pendentes de Registro ======
Este caso de uso tem a finalidade de identificar Anulações de Empenhos Pendentes de Registro no SIAFI mas que ainda não foram lançados no SIPAC. Contudo, para cada um destas anulações é possível efetuar o seu registro.
Envolvidos: Departamento de Contabilidade e Finanças (DCF) para a administração central e os Setores de Execução Orçamentária nos âmbitos dos centros.
Pré-condições:
* O Usuário deve possuir perfil de EXECUTOR DE ORÇAMENTO ou EXECUTOR DE ORÇAMENTO GLOBAL; Existir registros de anulações pendentes.
===== Descrição do Caso de Uso =====
Este caso de uso inicia quando o usuário acessa a opção: SIPAC -> Orçamento -> Aba Movimentações -> Empenho -> Integração SIAFI -> Anulações Pendentes de Registro.
O sistema exibe opção de consulta:
* **Unidade**: Tipo - TEXTO.
* **Período**: Tipo - DATA. Formato - DD/MM/AAAA a DD/MM/AAAA.
**PASSO 1**
O sistema lista todos as anulações pendentes de registro no SIPAC com os campos descritos abaixo:
* **__Documento__**: Formato - NÚMERO / ANO, Tipo - NUMÉRICO. Número do documento.
* **__Empenho__**: Formato - NOME (NÚMERO DO REGISTO), Tipo - TEXTO. Número da Nota de Empenho.
* **__Doc. Estornado__**:
* **__Credor__**: Formato - NOME (CPF/CNPJ), Tipo - TEXTO.
* **__Valor(R$)__**: Tipo - NUMÉRICO.
* Opção de anular empenho.
**PASSO 2**
Os procedimentos são realizados no caso de uso [[desenvolvimento:especificacoes:sipac:orcamentario:casos_de_uso:movimentacoes:empenho:anular_empenho|Anular Empenho]]:
Ao selecionar a Anulação pendente (Passo 1), o sistema exibe automaticamente os dados da anulação e solicita a confirmação do usuário para a importação do registro.
O caso de uso é finalizado.
===== Principais Regras de Negócio =====
Não se aplica.
==== Resoluções/Legislações Associadas ====
* **RN01** - Para registrar a anulação no SIPAC é necessário que o empenho seja registrado primeiro.
===== Classes Persistentes e Tabelas Envolvidas =====
^ Classe ^ Tabela |
|br.ufrn.sipac.siafi.dominio.AnulacaoEmpenhoSIAFI|administrativo.siafi.anulacao_empenho|
====== Plano de Teste ======
Sistema: SIPAC
Módulo: Orçamento
Link(s): Movimentações → Empenho → Integração SIAFI → Anulações Pendentes de Registro.
Usuário: larrubia2, seocchla01
Papel que usuário deve ter: ScoPapeis.EXECUTOR_ORCAMENTO_GLOBAL, ScoPapeis.EXECUTOR_ORCAMENTO
===== Cenários de Teste =====
Acessar o caso de uso e selecionar uma anulação para ser direcionado para a[[desenvolvimento:especificacoes:sipac:orcamentario:casos_de_uso:movimentacoes:empenho:anular_empenho| Anulação do Empenho]] selecionada, ou ser direcionado para a página de consolidação, caso a anulação já se encontre no SCO.
Verificar se o registro de anulação está sendo exibido em consultas -> Empenho -> Anulação de Empenho.
===== Dados para o Teste =====
Caso o link do caso de uso não apareça será necessário alterar o ano orçamentário ou então realizar a importação das anulações através da aba de Integração SIAFI → Leitura de Arquivos do SIAFI com os arquivos que foram baixados do SIAFI.
Consulta padrão assim que o caso de uso é acessado:
SELECT ae.id_anulacao,
ae.cod_associado,
ae.ano_associado,
ae.cod_anulacao,
ae.ano,
ae.data_transacao,
ev.id_evento AS idEvento,
ev.codigo AS codEvento,
ev.descricao AS descricaoEvento,
ae.observacoes,
ae.tipo,
ae.id_celula_orcamentaria,
ae.valor,
ae.id_unidade_gestora,
ae.tentativas_consolidacao,
ae.data_migracao,
ae.id_importacao,
ae.migrado,
ae.cod_unidade_gestora,
ae.cod_unidade_gestao,
ug.nome,
e.id_empenho,
e.valor AS valorEmpenho,
e.saldo,
e.id_unidade_gestora AS idUnidadeEmpenho,
credor.nome AS credorNome,
credor.cpf_cnpj,
credor.tipo AS credorTipo,
COUNT(*) AS COUNT
FROM siafi.anulacao_empenho ae
LEFT JOIN siafi.evento ev ON ((ae.id_evento = ev.id_evento)
AND ev.id_classificacao_evento_siafi = 2)
LEFT JOIN sco.empenho e ON (ae.cod_associado = e.cod_empenho
AND ae.ano_associado = e.ano
AND e.id_registro_estorno IS NULL
AND ae.id_unidade_gestora = e.id_unidade_gestora)
LEFT OUTER JOIN sco.sub_empenho se ON (e.id_empenho = se.id_empenho
AND se.id_registro_estorno IS NULL)
JOIN comum.unidade ug ON ae.id_unidade_gestora = ug.id_unidade
LEFT OUTER JOIN comum.pessoa credor ON (e.id_credor = credor.id_pessoa)
WHERE ae.data_consolidacao IS NULL
AND ae.ano = 2016
GROUP BY ae.id_anulacao,
ae.cod_associado,
ae.ano_associado,
ae.cod_anulacao,
ae.ano,
ae.data_transacao,
ev.id_evento,
ev.codigo,
ev.descricao,
ae.observacoes,
ae.tipo,
ae.id_celula_orcamentaria,
ae.valor,
ae.id_unidade_gestora,
ae.tentativas_consolidacao,
ae.data_migracao,
ae.id_importacao,
ae.migrado,
ae.cod_unidade_gestora,
ae.cod_unidade_gestao,
ug.nome,
e.id_empenho,
e.valor,
e.saldo,
e.id_unidade_gestora,
e.ano,
credor.nome,
credor.cpf_cnpj,
credor.tipo
ORDER BY ae.cod_anulacao;
Consulta por unidade gestora e período de transação:
SELECT ae.id_anulacao,
ae.cod_associado,
ae.ano_associado,
ae.cod_anulacao,
ae.ano,
ae.data_transacao,
ev.id_evento AS idEvento,
ev.codigo AS codEvento,
ev.descricao AS descricaoEvento,
ae.observacoes,
ae.tipo,
ae.id_celula_orcamentaria,
ae.valor,
ae.id_unidade_gestora,
ae.tentativas_consolidacao,
ae.data_migracao,
ae.id_importacao,
ae.migrado,
ae.cod_unidade_gestora,
ae.cod_unidade_gestao,
ug.nome,
e.id_empenho,
e.valor AS valorEmpenho,
e.saldo,
e.id_unidade_gestora AS idUnidadeEmpenho,
credor.nome AS credorNome,
credor.cpf_cnpj,
credor.tipo AS credorTipo,
COUNT(*) AS COUNT
FROM siafi.anulacao_empenho ae
LEFT JOIN siafi.evento ev ON ((ae.id_evento = ev.id_evento)
AND ev.id_classificacao_evento_siafi = 2)
LEFT JOIN sco.empenho e ON (ae.cod_associado = e.cod_empenho
AND ae.ano_associado = e.ano
AND e.id_registro_estorno IS NULL
AND ae.id_unidade_gestora = e.id_unidade_gestora)
LEFT OUTER JOIN sco.sub_empenho se ON (e.id_empenho = se.id_empenho
AND se.id_registro_estorno IS NULL)
JOIN comum.unidade ug ON ae.id_unidade_gestora = ug.id_unidade
LEFT OUTER JOIN comum.pessoa credor ON (e.id_credor = credor.id_pessoa)
WHERE ae.data_consolidacao IS NULL
AND ae.id_unidade_gestora IN (2)
AND ae.ano = 2016
AND ae.data_transacao BETWEEN 'Thu Sep 01 00:00:00 BRT 2016' AND 'Thu Sep 29 23:59:59 BRT 2016'
GROUP BY ae.id_anulacao,
ae.cod_associado,
ae.ano_associado,
ae.cod_anulacao,
ae.ano,
ae.data_transacao,
ev.id_evento,
ev.codigo,
ev.descricao,
ae.observacoes,
ae.tipo,
ae.id_celula_orcamentaria,
ae.valor,
ae.id_unidade_gestora,
ae.tentativas_consolidacao,
ae.data_migracao,
ae.id_importacao,
ae.migrado,
ae.cod_unidade_gestora,
ae.cod_unidade_gestao,
ug.nome,
e.id_empenho,
e.valor,
e.saldo,
e.id_unidade_gestora,
e.ano,
credor.nome,
credor.cpf_cnpj,
credor.tipo
ORDER BY ae.cod_anulacao;