~~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;