~~ODT~~
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).
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:
PARCIAL - Valor Parcial de uma unidade, PARCIAL - Saldo de todas as unidades, TOTAL - Saldo de todas as unidades, INVALIDANDO o empenho.
(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)
Não se Aplica.
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 |
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
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
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';