~~ODT~~ echo "
"; echo "Última atualização: "; ver('', false); echo "
";
====== 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 [[desenvolvimento:especificacoes:sipac:orcamentario:casos_de_uso:movimentacoes:empenho:registrar_nota_de_empenho|empenho]] poderá ser anulado, quando: * A despesa empenhada não for totalmente utilizada (anulação parcial); * Não houver a prestação do serviço contratado (anulação total); * Não for entregue, no todo ou em parte, o material encomendado (anulação total ou parcial); * A obra não tenha sido executada (anulação total); * A Nota de Empenho for extraída incorreta ou indevidamente (anulação total). 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: * **Número***: Formato: 999999, tipo: NUMÉRICO [[desenvolvimento:especificacoes:sipac:orcamentario:casos_de_uso:movimentacoes:empenho:anular_empenho#Principais_regras_de_negócio| (RN03,RN08)]]. 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: * **__Empenho__**. Formato - . Tipo NUMÉRICO e TEXTO * **__Data__**. Tipo - DATA * **__Prog. de Trabalho Resumido__**. Formato - . Tipo NUMÉRICO e TEXTO * **__Fonte de Recurso__**. Formato - . Tipo NUMÉRICO e TEXTO * **__Plano Interno__**. Formato - . Tipo NUMÉRICO e TEXTO * **__Modalidade__**. Tipo - TEXTO * **__Categoria da Despesa__**. Tipo - NÚMERICO * **__Credor__**. Tipo - TEXTO * **__Observações__**. Tipo - TEXTO * **__Valor do Empenho__**. Formato - R$ 99,99. Tipo - NUMÉRICO * **__Valor Anulado__**. Formato - R$ 99,99. Tipo - NUMÉRICO * **__Valor Reforçado__**. Formato - R$ 99,99. Tipo - NUMÉRICO * **__Valor Cancelado__**. Formato - R$ 99,99. Tipo - NUMÉRICO * **__Registrado por__**. Formato - NOME(LOGIN). Tipo - TEXTO * **__Gestora__**. Formato - NOME(CÓDIGO). Tipo NUMÉRICO e TEXTO * **__Processo__**. Formato - 9/AAAA. Tipo NUMÉRICO e ANO * **__Natureza de Despesa__**. Formato - . Tipo NUMÉRICO e TEXTO * **__Esfera__** Formato - . Tipo NUMÉRICO e TEXTO * **__Licitação__** 9/AAAA. Tipo NUMÉRICO e ANO * **__Saldo do Empenho__** Formato - R$ 99,99. Tipo - NUMÉRICO * **__Centros de Custo__**, onde para cada centro de custo são exibidos: * **__Centro de Custo__**. Formato - . Tipo NUMÉRICO e TEXTO * **__Valor__** . Formato - R$ 99,99. Tipo - NUMÉRICO * **__Saldo__** . Formato - R$ 99,99. Tipo - NUMÉRICO * **__Totais__** . Formato - R$ 99,99. Tipo - NUMÉRICO É solicitado que o usuário informe: * **Documento***: Formato: 999999, Tipo - NUMÉRICO. Número do documento do reforço, onde este número será gerado no SIAFI (http://www.tesouro.fazenda.gov.br/SIAFI), a data, o valor e a unidade. Opcionalmente, pode-se anexar um arquivo no SIGED. Deverá ser selecionado uma unidade(subempenho) do empenho para ser anulado. * **Data***: Formato - DD/MM/AAAA, Tipo - DATA. * **Tipo de Anulação***: Tipo - TEXTO. São apresentadas as opções: ''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 ) * **Unidade***: . Tipo - TEXTO. * **Valor***: Formato: 9999,9999. Tipo - NUMÉRICO. [[#Principais_regras_de_negócio| (RN02,RN06,RN07,RN10)]] 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: * **__Requisição__**. Formato - <(CÓDIGO)NOME>. Tipo NUMÉRICO e TEXTO * **__Valor Empenhado__** . Formato - R$ 99,99. Tipo - NUMÉRICO * ** Valor Anulado ** . Formato - R$ 99,99. Tipo - NUMÉRICO (Visível para todos os tipos de anulação) * **Anexar Arquivo**: Tipo - UPLOAD DE ARQUIVO. [[desenvolvimento:especificacoes:sipac:orcamentario:casos_de_uso:movimentacoes:empenho:anular_empenho#Principais_regras_de_negócio| (RN05)]]. * **Observações**: Tipo - TEXTO. 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: * **__Número do Empenho__**. Formato - . Tipo NUMÉRICO e TEXTO * **__Número da Anulação__**. Formato - . Tipo NUMÉRICO e TEXTO * **__Data da Anulação__**. Tipo - DATA * **__Valor__**. Formato: 9999,9999. Tipo - NUMÉRICO. * **__Observações__**. Tipo - TEXTO O caso de uso é finalizado. ([[#Principais Regras de Negócio|RN09]]) ===== Principais Regras de Negócio ===== * **RN01** - Não pode ter o valor anulado menor ou igual a zero no caso de anulação parcial; * **RN02** - O valor da anulação não poderá ser maior que o saldo do subempenho selecionado para ser anulado; * **RN03** - O empenho não poderá estar anulado; * **RN04** - O ano da anulação deverá ser igual ao ano orçamentário em execução; * **RN04** - O ano da anulação deverá ser maior ou igual ao ano orçamentário em execução;(Adicionado em 07/10/2011 referente à tarefa 69825). * **RN05** - O campo Anexar Arquivo deverá armazenar o arquivo no [[https://docs.info.ufrn.br/doku.php?id=desenvolvimento:especificacoes:siged:casos_de_uso:documentos:cadastrar|SIGED]] somente se a operação estiver ativa no mesmo.(Alterado em 04/10/2011 referente à tarefa 66596) * **RN06** - O valor da anulação não poderá ser igual ao valor total do empenho. * **RN07** - Caso a anulação venha do SIAFI, não poderá ser alterado o seu valor. * **RN08** - O empenho não poderá ser anulado caso esteja com seu saldo zerado. * **RN09** - Os responsáveis das unidades movimentadas serão notificados via email. * **RN09** - Ao realizar movimentações orçamentárias no módulo orçamentário, automaticamente é gerado um email para o responsável da unidade para as operações de crédito e débito. Esta operação funciona com base nos parâmetros ENVIA_EMAIL_POR_MOVIMENTACAO_ORCAMENTARIA que permite a instituição configurar se serão gerados os emails após as movimentações orçamentarias e MOVIMENTACOES_ORCAMENTARIAS_ENVIAR_EMAIL que identifica quais as movimentações lançarão emails. Os parâmetros deverão estar configurados como true.(Adicionado em 12/07/2011 referente à tarefa 64945). * **RN10** - O campo do valor anulado só irá aparecer quando empenho não tiver requisições associadas. ==== 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. * Consulta que traz todos os empenhos de uma unidade gestora, ano, que não estão anulados totalmente: 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 * Consulta que traz todos os empenhos de uma unidade gestora, ano e que tenham minutas de licitações associadas: 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: * unidadeGestora: Código da unidade gestora do usuário logado; * anoOrcamentario: Ano de execução do orçamento; * Registrar uma anulação de empenho, informando um arquivo a ser anexo. Realizar a consulta dessa anulação e abrir o arquivo anexado através do **Download**. * Consulta que traz todos os responsáveis da unidade de acordo com o id: 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 ===== * SCO -> Consultas -> Empenho - Nesta consulta será possivel informar o número do empenho e visualizar todas as anulações, reforços, cancelamentos e lancamentos do empenho. * SCO -> Relatórios -> Saldos -> Saldo Orçamentário por Unidade - Deverá ser observado os campos total de empenhos e saldo da célula do subempenho. * Para consultar empenhos que possuam mais de um subempenho associado utilizar a sql abaixo: 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 * Script de ativação da Operação no SIGED em BDCOMUM: UPDATE comum.configuracoes_operacoes_siged SET ativo=true WHERE nome_operacao = 'br.ufrn.orcamento.movimentacoes.negocio.siged.EmpenhoSigedBuilder';