Tabela de conteúdos

~~ODT~~

Última atualização: 2017/04/03 18:21 (edição externa)

Anular Empenho

Esse caso de uso tem como finalidade alterar (subtrair) o valor do saldo de um empenho. No caso da anulação total, esse saldo é zerado. Utilizado por usuários com habilitação para fazer registro de empenhos, ordem bancárias, acesso a relatórios, etc.

O empenho poderá ser anulado, quando:

Este caso de uso é utilizado pelos executores do orçamento dos SEOs (Setor de Execução Orçamentária), centros e hospitais e ainda pelo ordenador de despesa da organização, no caso da UFRN o DCF (Departamento de Contabilidade e Finanças).

Descrição do Caso de Uso

O caso de uso se inicia quando é acessado SIPAC → Orçamento → Movimentações → Empenho → Anular Empenho.

Para realizar uma anulação de empenho é necessário informar incialmente:

Só serão consultados os empenhos que tenham como unidade gestora a gestora do usuário logado. No caso de ser uma execução de convênio, a unidade gestora do empenho deverá ser a unidade do convênio. O ano do empenho será o ano orçamentário em execução.

Após ter sido escolhido o empenho, serão visualizadas informações do mesmo e de seus subempenhos:

É solicitado que o usuário informe:

(Visível apenas para o Tipo de Anulação: PARCIAL - Valor Parcial de uma unidade )

Caso exista requisições associada ao empenho serão listadas para que seja informada o valor da anulação por requisição. A listagem informa:

(Visível para todos os tipos de anulação)

Na operação de anulação parcial, a célula do subempenho selecionada terá seu saldo acrescido e o total de empenhos subtraido com o valor da anulação. O saldo do subempenho e do empenho também serão subtraídos com o valor da anulação. Será gerado uma movimentação de crédito do tipo Anulação de Empenho com o valor da anulação.

Na operação de anulação total, o total de todos os subempenhos serão zerados. Nas células dos subempenhos o saldo será acrescido e o total de empenhos será subtraído com o valor anulado. As requisições associadas ao empenho terão seu status atribuído como EMPENHO ANULADO. Se existirem Minutas de Licitações associadas ao empenho, aparecerá uma opção para questionando se deseja desassociar as Minutas de Licitações do empenho.

Existe uma terceira operação que é a anulação parcial zerando o saldo restante dos saldos dos subempenhos. A diferença desta opção para a anulação total, é que nesta opção o empenho não é marcado como anulado e nem tem suas Minutas de Licitações desassociados, já na anulação total o empenho e setado como anulado e tem todas as suas Minutas de Licitações desassociadas.

Na próxima etapa, serão exibidos os dados da Anulação do Empenho:

O caso de uso é finalizado. (RN09)

Principais Regras de Negócio

Resoluções/Legislações Associadas

Não se Aplica.

Classes Persistentes e Tabelas Envolvidas

Classe Tabela
br.ufrn.sipac.orcamento.movimentacoes.dominio.Empenho administrativo.sco.empenho
br.ufrn.sipac.orcamento.movimentacoes.dominio.SubEmpenho administrativo.sco.sub_empenho
br.ufrn.sipac.orcamento.movimentacoes.dominio.CelulaOrcamentaria administrativo.sco.celula_orcamentaria
br.ufrn.sipac.orcamento.movimentacoes.dominio.EventoEmpenho administrativo.sco.evento_empenho
br.ufrn.sipac.orcamento.movimentacoes.dominio.MovimentacaoOrcamentaria administrativo.sco.movimentacao_orcamentaria

Plano de Teste

Sistema: SIPAC

Módulo: Orçamento

Link(s): Movimentações → Empenho → Anular Empenho

Usuário: falves (pro-reitoria de planejamento - EXECUTOR_ORCAMENTO_GLOBAL), suzana_macedo (administração do ccet - EXECUTOR_ORCAMENTO), raiula (EXECUTOR_ORCAMENTO_GLOBAL e EXECUTOR_CONVENIO)

Papel que usuário deve ter: ScoPapeis.EXECUTOR_ORCAMENTO, ScoPapeis.EXECUTOR_ORCAMENTO_GLOBAL, ScoPapeis.EXECUTOR_CONVENIO

Cenários de Teste

Existem alguns cenários que podem ser testados:

Para todos os testes deverá ser selecionado um empenho que tenha como unidade gestora a gestora do usuário logado. A modalidade do empenho deverá ser estimativo ou global.

Existem alguns cenários que podem ser testados:

Para todos os testes deverá ser selecionado um empenho que tenha como unidade gestora a gestora do usuário logado.

Realizar Anulação Parcial

Realizar Anulação Parcial, zerando os saldos dos subempenhos

Realizar Anulação Total

1. Selecionar um empenho que tenha requisições associadas e verificar se o status destas requisições após a anulação foi alterada para EMPENHO ANULADO.
2. Selecionar um empenho que tenha minutas de licitações associadas e verificar se estás foram desassociadas após a anulação total.
select e.cod_empenho from sco.empenho e join sco.sub_empenho sub on (e.id_empenho = sub.id_empenho) where e.id_unidade_gestora = (select id_unidade from unidade where codigo_unidade = unidadeGestora) and e.ano = anoOrcamentario and e.anulado = false
SELECT e.cod_empenho FROM sco.empenho e	
  JOIN sco.sub_empenho sub ON (e.id_empenho = sub.id_empenho) 
  JOIN sco.empenho_minuta_licitacao sbp ON (sub.id_sub_empenho = sbp.id_sub_empenho)
WHERE e.id_unidade_gestora = (SELECT id_unidade FROM comum.unidade WHERE codigo_unidade = unidadeGestora)
AND e.ano = anoOrcamentario AND e.anulado = FALSE

Onde:

    SELECT DISTINCT RU.*, U.NOME AS NOME_UNIDADE,S.SIAPE AS MATRICULA,P.NOME AS NOME_SERVIDOR, P.ID_PESSOA AS ID_PESSOA, P.EMAIL AS EMAIL_PESSOA
    FROM COMUM.RESPONSAVEL_UNIDADE RU, COMUM.UNIDADE U,RH.SERVIDOR S,comum.PESSOA P
    WHERE S.ID_SERVIDOR = RU.ID_SERVIDOR AND S.ID_PESSOA = P.ID_PESSOA
    AND RU.ID_UNIDADE = ? AND U.ID_UNIDADE = RU.ID_UNIDADE AND RU.ID_REGISTRO_ENTRADA_EXCLUSAO IS NULL ORDER BY RU.DATA_FIM DESC,U.NOME ASC
* Consulta que buscar os empenho que possui mais de uma requisição associada.
  SELECT e.cod_empenho, e.ano, subEmpenho.id_sub_empenho , COUNT( subEmpenho.id_sub_empenho )  
  FROM sco.empenho e
  JOIN sco.sub_empenho subEmpenho ON (e.id_empenho=subEmpenho.id_empenho)
  JOIN sco.sub_empenho_requisicao subReq ON ( subEmpenho.id_sub_empenho = subReq.id_sub_empenho)
  WHERE e.ano= COLOCAR_ANO_UNIDADE 
  AND e.id_unidade_gestora= (SELECT id_unidade FROM comum.unidade WHERE codigo_unidade = COLOCAR_CÓDIGO_UNIDADE)
  GROUP BY e.cod_empenho, e.ano,subEmpenho.id_sub_empenho 
  HAVING COUNT( subEmpenho.id_sub_empenho) >1
  ORDER BY e.cod_empenho

Dados para o Teste

select e.cod_empenho, e.ano, e.id_unidade_gestora, count(id_sub_empenho) 
from sco.empenho e
join sco.sub_empenho sub using (id_empenho)
where e.data_estorno is not null
group by e.cod_empenho, e.ano, e.id_unidade_gestora
having count(id_sub_empenho) > 1
    UPDATE comum.configuracoes_operacoes_siged
    SET ativo=TRUE
    WHERE nome_operacao = 'br.ufrn.orcamento.movimentacoes.negocio.siged.EmpenhoSigedBuilder';