~~ODT~~ echo "
"; echo "Última atualização: "; ver('', false); echo "
";
====== Transferência de Orçamento de Bolsas ====== Este caso de uso tem como finalidade realizar transferências orçamentárias de gastos de unidades com bolsas, para uma outra unidade de destino. Essas transferências orçamentárias estão ligadas a operação de pagamento, ou seja, é um processo de transferência entre células orçamentárias de unidades distintas onde o valor transferido não deve ser devolvido. As unidades das células de origem e destino são subordinadas à unidade gestora que está executando o orçamento. O impacto resultante dessa operação é o aumento do total transferido e a diminuição do saldo da célula de origem e o aumento do total recebido e do saldo da célula de destino. O Departamento de Contabilidade e Finanças(DCF) e os SEOs (Setor de Execução Orçamentária) são os responsáveis por utilizar esta funcionalidade. Pré-condições: Para executar esta funcionalidade é necessário que a natureza de despeza (origem e destino), PTRES (origem e destino), Fonte (origem e destino), Esfera (origem e destino) estejam cadastrados no sistema. ===== Descrição do Caso de Uso ===== Este caso de uso inicia quando o usuário acessa a opção //SIPAC -> Orçamento -> Movimentações -> Movimentações Orçamentárias -> Transferências -> Transferência de Orçamento de Bolsas.// === Passo 1 === O sistema busca as unidades com gastos para um tipo de bolsa num determinado período, sendo informados: * **Período ***: Formato - MÊS/AAAA, Tipo - TEXTO. Por padrão o sistema já preenche como mês/ano atual. * **Tipo de Bolsa ***: Formato - NOME DO TIPO (SIGLA UNIDADE PAGADORA), Tipo - TEXTO. * **Considerar Apenas os Valores Excedentes**: Tipo - LÓGICO. === Passo 2 === O sistema exibe o mês e ano da transferência orçamentária: * **__Mês/Ano__**: Formato - MÊS/AAAA, Tipo - TEXTO e NUMÉRICO. O sistema solicita os dados das células orçamentárias de origem: ([[#principais_regras_de_negócio|RN01]]) * **Natureza de Despesa da Célula de Origem***: Formato - NOME DA NATUREZA DE DESPESA (CÓDIGO), Tipo - AUTOCOMPLETE. Entrada de Dados: CÓDIGO ou NOME DA NATUREZA. * **PTRes da Célula de Origem***: Formato - NOME DO PROGRAMA (CÓDIGO), Tipo - AUTOCOMPLETE. Entrada de Dados: CÓDIGO ou NOME DA NATUREZA. * **Fonte da Célula de Origem***: Formato - NOME DA FONTE (CÓDIGO), Tipo - AUTOCOMPLETE. Entrada de Dados: CÓDIGO ou NOME DA FONTE. * **Esfera da Célula de Origem***: Formato - NOME DA ESFERA (CÓDIGO), Tipo - AUTOCOMPLETE. Entrada de Dados: CÓDIGO ou NOME DA ESFERA. * **Plano Interno de Origem**: Formato - NOME DO PLANO INTERNO (CÓDIGO), Tipo - AUTOCOMPLETE. Entrada de Dados: CÓDIGO ou NOME DO PLANO INTERNO. O sistema apresenta uma lista das unidades orçamentárias com os gastos com bolsas, onde estas podem ser selecionadas como unidades de origem para a transferência. Para cada unidade são exibidos os seguintes dados: * **__Unidade__**: Formato - NOME UNIDADE (CÓDIGO UNIDADE). Tipo - TEXTO. * **____**: gasto da unidade no tipo de bolsa. Tipo - NUMÉRICO. * **__Total__**: Tipo - NUMÉRICO. * No final é mostrado o **__Total__** dos gastos de todas as unidades. O sistema solicita ao Gestor que informe os dados da célula orçamentária de destino: ([[#principais_regras_de_negócio|RN02]]) * **Unidade de Destino***: Formato - NOME UNIDADE(CÓDIGO UNIDADE), Tipo - AUTOCOMPLETE. Entrada de Dados: NOME ou CÓDIGO DA UNIDADE. * **Natureza de Despesa***: Formato - NOME DA NATUREZA DE DESPESA (CÓDIGO), Tipo: AUTOCOMPLETE. Entrada de Dados: CÓDIGO ou NOME DA NATUREZA. * **PTRes***: Formato - NOME DO PROGRAMA (CÓDIGO), Tipo - AUTOCOMPLETE. Entrada de Dados: CÓDIGO ou NOME DA NATUREZA. * **Fonte***: Formato - NOME DA FONTE (CÓDIGO), Tipo - AUTOCOMPLETE. Entrada de Dados: CÓDIGO ou NOME DA FONTE. * **Esfera***: Formato - NOME DA ESFERA (CÓDIGO), Tipo: AUTOCOMPLETE. Entrada de Dados: CÓDIGO ou NOME DA ESFERA. * **Plano Interno**: Formato - NOME DO PLANO INTERNO (CÓDIGO), Tipo - AUTOCOMPLETE. Entrada de Dados: CÓDIGO ou NOME DO PLANO INTERNO. O sistema solicita ao Gestor as informações sobre pagamentos, com os seguintes dados: * **Ano Orçamentário***: Tipo - NUMÉRICO. O ano corrente vem marcado como padrão. * **Observação**: Tipo - TEXTO. Ao serem fornecidas as informações acima o processo de transferência pode ser realizado Registrando o Pagamento. ([[#principais_regras_de_negócio|RN03, RN04, RN05, RN06]]) Confirmado o registro de pagamento, o sistema exibe a lista com os últimos pagamentos realizados, mostrando para cada um os dados: * **__Mês/An__o**: Formato - MÊS/AAAA. Tipo - TEXTO e NUMÉRICO. * **__Data__**: Formato - DD/MM/AAAA, Tipo - DATA * **__Tipo de Pagamento__**: Tipo - TEXTO * **__Detalhamento__**: Tipo - TEXTO * **__Total__**: Tipo - NUMÉRICO. * **__Usuário__**: Tipo - TEXTO === Passo 3 === Confirmado o registro da transferência orçamentária, o sistema exibe o comprovante de pagamento com a Lista de Gastos para Unidades Orçamentárias: * Para cada unidade são exibidos: * **__Unidade__**: Formato - NOME UNIDADE (CÓDIGO UNIDADE), Tipo - TEXTO. * **__Código da Transferência__**: Tipo - NUMÉRICO. * **____**: Gasto da unidade no tipo de bolsa. Tipo - NUMÉRICO. * **__Valor__**: Total dos gastos da unidade. Tipo - NUMÉRICO. * **__Realizada__**: Informa para esta unidade se a transferência foi realizada ou não. Tipo - LÓGICO. * No final é mostrado o **Total** dos gastos de todas as unidades. O sistema também exibirá os seguintes dados: * **__Mês/Ano__**: Formato - MÊS/AAAA, Tipo - TEXTO/NUMÉRICO. * **__Unidade de Destino__**: Formato - NOME UNIDADE(CÓDIGO UNIDADE), Tipo - TEXTO * **__Observação__**: Tipo - TEXTO. O caso de uso é finalizado. ===== Principais Regras de Negócio ===== * **RN01** - Caso a célula orçamentária de origem não exista, ela é criada automaticamente. * **RN02** - Caso a célula orçamentária de destino não exista, ela é criada automaticamente. * **RN03** - Não é permitido transferência entre células de anos orçamentários distintos. * **RN04** - Não é permitido a transferência de uma da célula para ela mesma. * **RN05** - O Valor transferido deve ser maior que zero. * **RN06** - A unidade gestora do usuário deve ter saldo suficiente para registrar o débito nos centros de custo escolhidos como unidades de origem. ==== Resoluções/Legislações Associadas ==== Não se aplica. ===== Classes Persistentes e Tabelas Envolvidas ===== ^ Classe ^ Tabela | | br.ufrn.sipac.bolsas.dominio.TipoBolsa | administrativo.bolsas.tipo_bolsa | | br.ufrn.sipac.bolsas.dominio.Bolsa | administrativo.bolsas.bolsa | | br.ufrn.sipac.arq.interop.orcamento.TransferenciaAdapter | administrativo.sco.transferencia | ===== Plano de Teste ===== Sistema: SIPAC Módulo: Orçamento Link(s): Módulos -> Orçamento -> Movimentações Orçamentárias -> Movimentações -> Transferências -> Transferência de Orçamento de Bolsas Usuário: larrubia2 Papel que usuário deve ter: EXECUTOR_ORCAMENTO_GLOBAL ===== Cenários de Teste ===== Ao realizar a transferência, essa pode se consultada pelos relatórios de Movimentações Orçamentárias do menu de orçamento: * Orçamento -> Relatórios -> Movimentações Orçamentárias Como, por exemplo: * Orçamento -> Relatórios -> Movimentações Orçamentárias -> Transferências Entre Unidades Onde são informados as unidades de origem e destino informadas na transferência e o período quando ela foi realizada. A transferência pode ser consultada também pelo seu código, o código é mostrado após a realização a transferência, pelo caminho: * Orçamento -> Consultas -> Transferência -> Restituição Onde o código é informado no campo //Número do Documento// **IMPORTANTE**: Ao consultar as transferências observar o ano orçamentário, o qual é informado no próprio menu de orçamento. Só serão mostradas as transferências feitas no ano orçamentário informado. Verificar na hora da transferência o ano orçamentário informado. ===== Dados para o Teste ===== As unidades de origem serão aquelas que aparecem no relatório de Demonstrativo de Excedentes de Cotas de Bolsas. * Módulos -> Bolsas -> Operações -> Relatórios -> Demonstrativo de Excedentes de Cotas de Bolsas Os valores transferidos serão de acordo com a seguinte regra: * Se o usuário não escolheu a opção //Considerar Apenas os Valores Excedentes//, os valores serão os mesmos da coluna "Valor Atual" do Demonstrativo de Excedentes * Se o usuário escolheu a opção //Considerar Apenas os Valores Excedentes//, os valores serão os mesmos da coluna "Valor Excedente Atual" do Demonstrativo de Excedentes Com a consulta abaixo obtemos os tipos de bolsas que apresentam unidades com gastos de bolsas a partir do mês e ano informados: SELECT tipo_bolsa.denominacao AS tipo_bolsa, pagadora.sigla AS sigla_pagadora, gestora.nome AS unidade_gestora, COUNT(bolsa.id) AS total_bolsas, cota.cota, CASE WHEN COUNT(bolsa.id) - cota.cota > 0 THEN COUNT(bolsa.id) - cota.cota ELSE 0 END AS excedente, (tipo_bolsa.valor * COUNT(bolsa.id) ) AS gasto_total, (tipo_bolsa.valor * CASE WHEN COUNT(bolsa.id) - cota.cota > 0 THEN COUNT(bolsa.id) - cota.cota ELSE 0 END) AS gasto_excedente, DATE_PART('MONTH', (date '01//' )) AS mes, cota.ano AS ano FROM bolsas.cota_bolsa AS cota INNER JOIN comum.unidade AS gestora ON gestora.id_unidade = cota.id_unidade, comum.unidade AS unidade_bolsa LEFT JOIN bolsas.bolsa AS bolsa ON bolsa.id_unidade = unidade_bolsa.id_unidade INNER JOIN bolsas.tipo_bolsa AS tipo_bolsa ON tipo_bolsa.id = bolsa.id_tipo_bolsa INNER JOIN comum.unidade AS pagadora ON pagadora.id_unidade = tipo_bolsa.id_unidade_pagadora WHERE gestora.tipo = 2 /* Unidade Gestora */ AND cota.ano = AND cota.id_tipo_bolsa = tipo_bolsa.id /* Os gastos com bolsas num mês serão das bolsas não finalizadas até o mês passado, pois o pagamentos é no mês seguinte */ AND (bolsa.fim IS NULL OR bolsa.fim >= (date '01//' - interval '1 month' )) AND unidade_bolsa.hierarquia LIKE '%.'||gestora.id_unidade||'.%' GROUP BY cota.ano, tipo_bolsa.denominacao, pagadora.sigla, cota.cota, tipo_bolsa.valor, gestora.nome HAVING COUNT(bolsa.id) > 0 ORDER BY tipo_bolsa.denominacao, gestora.nome