Histórico da Página
Este documento é material de especificação dos requisitos de inovação, trata-se de conteúdo extremamente técnico. |
---|
Informações Gerais
Especificação | |||
Produto | Microsiga Protheus | Módulo | SIGAFIN |
Segmento Executor | Serviços & Juridico | ||
Projeto1 | M_CTR0 | IRM1 | PCREQ-3780 |
Requisito1 | PCREQ-7721 | Subtarefa1 | M_CTR010- |
Chamado2 |
| ||
Release de Entrega Planejada | 12.1.8 | Réplica |
|
País | ( ) Brasil ( ) Argentina ( ) Mexico ( ) Chile ( ) Paraguai ( ) Equador ( ) USA ( ) Colombia ( x ) Outro: Todos. | ||
Outros | <Caso necessário informe outras referências que sejam pertinentes a esta especificação. Exemplo: links de outros documentos ou subtarefas relacionadas>. |
Legenda: 1 – Inovação 2 – Manutenção (Os demais campos devem ser preenchidos para ambos os processos).
Objetivo
Adicionar tratamento de cálculo de juros e multas variáveis na rotina de liquidação e recebimentos de títulos e permitir a simulação de valores negociados.
Rotina | Tipo de Operação | Opção de Menu | Regras de Negócio |
FINA460 - Liquidação a Receber | Alteração | Atualizações -> Contas a Receber -> Liquidação a Receber | - |
FINA460A - Simulação de liquidação a Receber | Criação | Atualizações -> Contas a Receber -> Simulação de Liquidação | - |
FINR460A - Acordos de liquidação | Criação | Relatórios -> Contas a Receber -> Acordos de Liquidação | - |
Definição da Regra de Negócio
Liquidação de títulos a receber
No processo de liquidação de títulos, quando o usuário selecionar títulos em atraso, será aplicado um percentual fixo de multa e calculado os juros sobre o período em atraso, conforme percentual listado na inclusão do título (padrão existente no sistema).
Configuração para cálculo de multa:
MV_JURTIPO = L (SIGALOJA)
MV_LJMULTA = Percentual de multa
MV_LJINTFS = .T. (Usa cálculo do SIGALOJA)
MV_TXPER = Percentual de Juros
MV_LJJUROS = Percentual de Juros
Será possível informar uma outra taxa de multa e/ou juros, que serão aplicadas no momento da simulação da liquidação, caso uma outra taxa seja negociada com o cliente.
Após a marcação dos títulos e seleção da condição de pagamento, quando necessário, haverá novo cálculo de juros sobre o valor negociado e este será corrigido. Abaixo um exemplo desta negociação.
Exemplo:
Filial | Título | Cliente/Loja | Data de Vencimento | Valor | Percentual de Juros a.d |
Matriz | UNI0000001NF | T00001/01 | 01/08/2015 | R$ 5.000,00 | 0,0333 |
Matriz | UNI0000002NF | T00001/01 | 10/08/2015 | R$ 10.000,00 | 0,0333 |
Matriz | UNI0000003NF | T00001/01 | 20/08/2015 | R$ 3.000,00 | 0,0333 |
No dia 20/08/15, cliente entra em contato com a cobrança e solicita renegociação dos valores em aberto:
Título | Data de Vencimento | Data de Liquidação | Valor | Juros | Multa | Total para renegociação |
UNI0000001NF | 01/08/2015 | 20/08/15 | 5.000,00 | 31,64 | 100,00 | 5.131,64 |
UNI0000002NF | 10/08/2015 | 20/08/15 | 10.000,00 | 33,30 | 200,00 | 10.233,30 |
UNI0000003NF | 20/08/2015 | 20/08/15 | 3.000,00 | 0 | 0 | 3.000,00 |
Total Renegociado | 18.364,94 |
Cliente solicita um parcelamento dos valores em aberto em duas parcelas, a primeira a vista e a segunda para 30 dias.
Título | Data de Vencimento | Valor do Inicial | Valor de Juros | Valor da Parcela |
LIQ0000001DP | 20/08/2015 | 9.182,47 | 0 | 9.182,47 |
LIQ0000002DP | 20/09/2015 | 9.182,47 | 94,82 | 9.277,29 |
Total Renegociado | 18.459,76 |
No momento do parcelamento, os valores serão sugeridos pelo sistema, mas o usuário de cobrança poderá alterar o valor de juros, conforme a negociação com o cliente.
A alteração dos valores poderá ocorrer parcela a parcela da renegociação ou sobre o total renegociado, sendo este último aplicado à todos os títulos pertencentes à uma negociação.
Os títulos gerados de uma liquidação serão corrigidos quando baixados em uma data posterior ao vencimento negociados.
Após a negociação com o cliente o usuário poderá:
Liquidação
Gravar todos os passos da liquidação, baixar os títulos selecionados e gerar novos títulos com os valores acordados.
Os valores gravados ficarão disponível no relatório Acordos de Liquidação.
Simulação
Gravar todos os passos da liquidação com uma data de validade. Sendo assim, enquanto a simulação estiver vigente (dentro do prazo de validade), o usuário poderá alterar a simulação, alterar e efetivar a simulação.
Os valores gravados ficarão disponíveis no relatório Acordos de Liquidação.
Detalhamento técnico.
FINA460 - Liquidação a Receber
Função genérica para montagem de tela.
A funcionalidade da liquidação será disponibilizada para o módulo de Telecobrança, onde serão selecionados os títulos para um atendimento/cobrança e utilizaram a rotina de liquidação nas telas dos protótipos 01 e 02.
Para isso, reestruturar a função A460Liquid, dividindo-a em:
- Seleção de dados (tela inicial);
- Montagem do arquivo temporário, com dados coletados da seleção de títulos;
- Montagem da tela de seleção de título;
- Montagem da tela de geração de títulos.
Importante: Manter todas as validações e gravações existentes.
Após a reestruturação, o módulo de telecobrança deverá chamar a função de montagem da tela de seleção de títulos.
Tela de Seleção
Ajustar a tela de seleção de títulos, conforme protótipo de tela 01, para adicionar as informações:
No cabeçalho da tela:
- Adicionar o campo %Multa, iniciando com o percentual do parâmetro MV_LJMULTA;
- Adicionar o campo % Juros, iniciando com o percentual do parâmetro MV_TXPER/MV_LJJUROS.
Validações:
Os campos serão editáveis e quando manipulados serão replicados para os seus respectivos campos no grid da tela.
No botão EDITAR localizado em ações relacionadas deverá retirar o campo Juros.
No grid da tela:
- Adicionar o campo %Multa, iniciando com o percentual do parâmetro MV_LJMULTA;
- Adicionar o campo % Juros, iniciando com o percentual do parâmetro MV_TXPER/MV_LJJUROS;
- Adicionar o campo Acréscimo, iniciando com o valor do campo E1_SDACRES e retirar a soma do seu conteúdo ao campo VALOR JUROS;
- Adicionar o campo Decréscimo, iniciando com o valor do campo E1_SDDECRE e retirar a soma do seu conteúdo ao campo VALOR DESCONTO;
- Adicionar os campos E1_EMISSAO e E1_BAIXA.
Ordenação da tela: similar a tela de geração título descrita abaixo.
Validações:
- Os campos da grid serão editáveis, sempre que alterados deverão recalcular os campos de juros/multa do título.
- Os campos de juros/multa deverão iniciar com o cálculo de juros/multa, com os percentuais de seus respectivos parâmetros.
- Os campos Juros/Multa serão somados ao campo Valor a liquidar.
Regra de Cálculo:
- Multa - Chamar a função LojxRMul() para calcular a multa conforme percentual informado pelo usuário.
- Juros - Chamar a função LojxRJur() para calcular os juros com percentual informado pelo usuário.
- Valor a Liquidar - Saldo do título + Multa + Juros + Acréscimo - Decréscimo - Desconto - Abatimento
Tela de Geração de título
Ajustar a tela de geração de títulos, conforme protótipo de tela 02, para adicionar as informações:
No cabeçalho da tela:
- Adicionar o campo % Juros, iniciando com o percentual do parâmetro MV_TXPER/MV_LJJUROS.
Validações:
O campo será editável e quando manipulado será replicado para os seus respectivos campos no grid da tela.
No grid da tela, será reformulado de deverá conter os campos:
Campo | Ação | Obrigatório | Editável |
---|---|---|---|
Prefixo | Informado pelo usuário, deverá ser replicado para todos os títulos gerados | Sim | Sim |
Número | Número do título informado pelo usuário, deverá ser replicado para todos os títulos gerados | Sim | Sim |
Parcela | Parcela do título, será replicado para todos os títulos sempre incrementando 1 (MV_1DUP) | Sim | Sim |
Tipo | Tipo de título informado pelo usuário na tela de cabeçalho, deverá ser replicado para todos os títulos gerados | Sim | Não |
Natureza | Natureza do títulos, definido pelo usuário na abertura da tela, deverá ser replicado para todos os títulos gerados | Sim | Não |
Data de Vencimento | Data calculada, conforme condição de pagamento. | Sim | Sim |
Valor da Parcela | Valor calculado conforme a condição de pagamento listado pelo usuário | Sim | Sim |
% Juros | Percentual de juros, será replicado com o % Juros do cabeçalho da tela | Não | Sim |
Juros | Juros calculado pela função LojxRJur(), baseado na data de vencimento e % de Juros | Não | Não |
Acréscimo | Acréscimo do título informado pelo usuário | Não | Não |
Decréscimo | Decréscimo do título informado pelo usuário | Não | Não |
Valor da Total | Resultado do cálculo dos campos: Valor da Parcela + Juros + Acréscimo - Decréscimo | Sim | Não |
Banco do cheque | Banco do cheque informado pelo usuário | Não | Sim |
Agencia do cheque | Agencia do cheque informado pelo usuário | Não | Sim |
Conta do Cheque | Número da conta do cheque informado pelo usuário | Não | Sim |
Número do Cheque | Número do cheque informado pelo usuário | Não | Sim |
Emitente | Campo iniciará com o Nome reduzido do cliente | Não | Sim |
Validações:
Quando o parâmetro MV_GRSEFLQ = .T.:
- Só irá gerar cheques a receber caso o tipo de título for igual a CH, caso o usuário informe outro tipo de título, deverá apresentar uma mensagem informando que não será gerado o cheque, para essa liquidação;
- Os campos Banco cheque, Agencia cheque, Conta cheque e Número cheque, serão obrigatórios quando o tipo de título for CH.
Ao alterar o campo % Juros deverá recalcular os campos de Juros e Valor da Parcela.
Ao alterar os campos acréscimos, decréscimos deverá recalcular o campo valor da parcela.
Ao alterar a data de vencimento do título deverá recalcular os campos de Juros e Valor da Parcela.
Ao alterar o valor da parcela para um valor menor, deverá ajustar a parcela seguinte, para somar o saldo retirado e recalcular seus valores de juros e total da parcela, caso altere para valor maior, deverá subtrair da próxima parcela e recalcular seus valores de juros e total da parcela.
Regra de Cálculo
Juros - Chamar a função LojxRJur() para calcular os juros com percentual informado pelo usuário.
Será calculado o juros desde a data de negociação (data base), até a data de vencimento da nova parcela.
Função FA460Can
Ao cancelar a liquidação que possua simulação, apresentar a pergunta:
Cancela a simulação:
Se sim, deverá limpar o campo FO0_NUMLIQ e alterar o campo FO0_STATUS = 3 cancelado.
Se não, deverá limpar o campo FO0_NUMLIQ.
FINA460A - Simulação de liquidação a receber
Criar uma rotina com browse conforme protótipo de dela 03, com os botões:
Incluir
Incluir uma simulação, irá apresentar os parâmetros iniciais da rotina FINA460, para seleção dos títulos, após preenchimentos dos parâmetros será apresentada o protótipo de tela 01 e 07.
Na tela de seleção de título será alterado apenas o título para SIMULAÇÃO DE LIQUIDAÇÃO, deverá usar a mesma função do fonte FINA460, apenas com essa alteração.
Na tela de geração de títulos adicionar o campo DATA VALIDADE, que será replicado para o campo FO0_DTVALID e o botão EFETIVAR SIMULAÇÃO que irá efetuar liquidação dos títulos selecionados e gerar os novos conforme a simulação.Alterar - Altera a simulação
Alterar
Irá abrir os protótipos de tela 01 e 07, com os dados gravados das tabelas FO0, FO1, FO2, caso o usuário altere as informações será criada uma nova versão nas tabelas envolvidas.
Efetivar
Visualizar
Bloquear
Relatório
Função de Gravação.
Ao confirmar uma liquidação serão gravadas as tabelas:
FO0 - Cabeçalho da Liquidação
Campo | Conteúdo |
---|---|
FO0_FILIAL | Filial da Liquidação |
FO0_PROCES | Processo Simulação (autonumeração) |
FO0_VERSAO | Versão da Simulação (autonumeração) |
FO0_NUMLIQ | Número da liquidação |
FO0_DATA | Data da Simulação |
FO0_DTVALID | Data de validade da simulação |
FO0_COND | Condição de Pagamento |
FO0_TXJUR | Taxa de Juros informada na tela de negociação de títulos |
FO0_TXMUL | Taxa da Multa informada na tela de negociação de títulos |
FO0_TXJRG | Taxa de Juros informada na tela de geração de títulos |
FO0_CLIENTE | Código do cliente utilizado na geração do título |
FO0_LOJA | Loja do cliente utilizado na geração do título |
FO0_NATUREZ | Natureza do título |
FO0_STATUS | Status da negociação que poderá ser: 1 - Ativo 2 - Versionado 3 - Cancelado |
FO1 - Títulos Selecionados
Campo | Conteúdo |
---|---|
FO1_FILIAL | Filial da Liquidação |
FO1_PROCES | Processo Simulação (FO0_PROCES) |
FO1_VERSAO | Versão da Simulação (FO0_VERSAO) |
FO1_IDDOC | Identificação do título (FK7_IDDOC) |
FO1_SALDO | Saldo do título na data da negociação |
FO1_TXJUR | Taxa de Juros da negociação |
FO1_VLJUR | Valor do Juros calculado |
FO1_TXMUL | Taxa da multa da negociação |
FO1_VLMUL | Valor da multa calculada. |
FO1_DESCON | Desconto informado pelo usuário |
FO1_ACRESC | Saldo de Acréscimo do título (E1_SDACRES) |
FO1_DECRES | Saldo de Decréscimo do título (E1_SDDECRE) |
FO1_VLABT | Valor de Abatimento do título (SomaAbat()) |
FO1_TOTAL | Resultado do cálculo: FO1_SALDO + FO1_VLMUL + FO1_VLJUR + FO1_ACRESC - FO1_DESCON - FO1_DECRES - FO1_VLABT |
FO2 - Títulos Gerados
Campo | Conteúdo |
---|---|
FO2_FILIAL | Filial da Liquidação |
FO2_PROCES | Processo Simulação (FO0_PROCES) |
FO2_VERSAO | Versão da Simulação (FO0_VERSAO) |
FO2_IDSIM | Identificação do título gerado (FWUUIDV4()) |
FO2_PREFIXO | Prefixo do título |
FO2_NUM | Número do título |
FO2_PARCELA | Parcela do título |
FO2_TIPO | Tipo do título |
FO2_VENCTO | Vencimento do título |
FO2_VALOR | Valor calculado da Parcela |
FO2_ACRESC | Acréscimo do título |
FO2_DECRESC | Decréscimo do título |
FO2_TXJUR | Taxa de Juros |
FO2_VLJUR | Valor do Juros calculado |
FO2_BANCO | Banco do cheque |
FO2_AGENCI | Agencia do cheque |
FO2_CONTA | Conta do cheque |
FO2_NUMCH | Número do cheque |
FO2_EMITENT | Emitente do cheque |
FO2_TOTAL | Resultado do cálculo: FO2_VALOR + FO2_VLJUR + FO2_ACRESC - FO2_DECRES |
Ao finalizar a gravação das tabelas FO0, FO1 e FO2, será apresentado uma mensagem se deseja ou não imprimir o relatório FINR460A.
Botão Gravar Simulação
Ao selecionar essa opção o sistema deverá apresentar uma pergunta de data de validade da simulação, conforme protótipo de tela 03:
A data digitada pelo usuário não poderá ultrapassar o limite definido no parâmetro MV_LMVLDLQ, ou seja, a data de validade não pode ser maior que a data da negociação somados o limite definido no parâmetro.
Após a confirmação da data de validade deverá chamar a gravação das tabelas FO0, FO1, FO2 e não deverá realizar alteração nos títulos envolvidos, ou seja, a rotina de liquidação será abortada.
Botão Restaurar Simulação
Ao selecionar essa opção será apresentado o grupo de perguntas FINA460A:
Pergunta | Conteúdo | Critério de Busca |
---|---|---|
Número da Simulação | Número do processo de liquidação | igual a FO0_PROCES |
Cliente da Liquidação | Código do cliente usado para gerar os títulos | igual a FO0_CLIENTE |
Loja | Loja do cliente usado para gerar os títulos | igual a FO0_LOJA |
Data de Negociação | Data da Negociação dos títulos | igual a FO0_DATA |
Data de Validade | Data da validade da negociação. | igual a FO0_DTVALID |
Validações:
Se a pergunta número da simulação estiver em branco, deverá considerar todas.
As perguntas cliente da liquidação, loja poderão ficar vazio apenas se a pergunta número da simulação estiver preenchida, caso ocorra notificar o usuário.
A pergunta data da negociação poderá ficar vazia se o número do processo e/ou data de validade estiverem preenchidos, caso ocorra notificar o usuário.
A pergunta data da validade poderá ficar vazia se o número do processo e/ou data de negociação estiverem preenchidos, caso ocorra notificar o usuário.
Será considerado apenas as simulações ativas, ou seja, FO0_STATUS = 1.
Caso não localize uma simulação para restaurar o usuário deverá ser notificado.
Verificar se a simulação estiver vencida, ou seja, FO0_DTVALID menor que a data base do sistema, o usuário não poderá dar continuidade a simulação, caso ocorra notificar o usuário.
Ações:
Após a seleção da simulação sistema deverá efetuar uma varredura nos títulos selecionados e verificar se houve alteração de saldo, caso ocorra deverá notificar o usuário, informando que houve movimentação dos títulos negociados, se deseja recalcular ou abondar a simulação.
Se a somatória do saldos dos títulos envolvidos na liquidação for igual a zero, notificar o usuário que não pendencias de recebimentos para essa simulação.
Caso não haja alterações de saldos nos títulos envolvidos ou solicitado recalculo, deverá carregar os dados das telas da liquidação conforme os protótipos 01 e 02, para conferencia e/ou manipulação do usuário:
- Caso o usuário altere e clique novamente em GRAVAR SIMULAÇÃO, sistema irá gravar uma nova versão.
- Caso o usuário altere e clique novamente em SALVAR, sistema irá gravar uma nova versão e efetuar a liquidação normalmente.
Recalculo:
Recalcular os valores de juros e multas, título a título, caso o título esteja com o saldo zero, será retirado do processo de negociação, para gravar o processo o usuário deverá selecionar a opção SALVAR ou GRAVAR SIMULAÇÃO.
Gravação do Versão:
A simulação selecionada terá o campo FO0_STATUS alterado para 2 = VERSIONADO.
Será gravado uma nova versão da simulação com dados da tela, mantendo o mesmo número de processo (FO0_PROCES) e incrementando apenas o campo FO0_VERSAO, ou seja, será realizada a gravação das tabelas FO0, FO1, FO2 com os dados em tela com o mesmo número do processo restaurado, com uma versão diferente.
FINR460A - Relatório de simulação
Emitir o relatório baseado nas tabelas FO0, FO1, FO2, conforme protótipo de tela 06, com a estrutura abaixo em formato de paisagem.
FO0 - Cabeçalho do processo
Coluna | Conteúdo |
---|---|
Processo | FO0_PROCES |
Condição de Pagamento | FO0_COND |
Data de Negociação | FO0_DATA |
Data de Validade | FO0_DTVALID |
Número da Liquidação | FO0_NUMLIQ |
FO0, FO1, FK7, SE1 - Títulos selecionados
Coluna | Conteúdo |
---|---|
Filial | FO1_FILIAL |
Prefixo/Número/Parcela/Tipo | E1_PREFIXO/E1_NUMERO/E1_PARCELA/TIPO |
Cliente/Loja | FO1_CLIENTE/FO1_LOJA |
Natureza | E1_NATUREZ |
Vencimento | E1_VENCREA |
Saldo | FO1_SALDO |
% Multa | FO1_TXMUL |
Multa | FO1_VLMUL |
% Juros | FO1_TXJUR |
Juros | FO1_VLJUR |
Acréscimo | FO1_ACRESC |
Decréscimo | FO1_DECRES |
Desconto | FO1_DESCON |
Abatimento | FO1_VLABT |
Valor total | FO1_TOTAL |
FO0, FO2 - Títulos Gerados
Coluna | Conteúdo |
---|---|
Filial | FO2_FILIAL |
Prefixo | FO2_PREFIXO |
Número | FO2_NUM |
Parcela | FO2_PARCELA |
Tipo | FO2_TIPO |
Cliente/Loja | FO0_CLIENTE/FO0_LOJA |
Natureza | FO0_NATUREZ |
Vencimento | FO2_VENCTO |
Valor Calculado | FO2_VALOR |
% Juros | FO2_TXJUR |
Juros | FO2_VLJUR |
Acréscimo | FO2_ACRESC |
Decréscimo | FO2_DECRES |
Valor da Parcela | FO2_TOTAL |
O relatório será quebrado por processo de negociação, divididos em três sessões (FO0, FO1, FO2), irá buscar dados conforme grupo de perguntas FINR460A, demonstrado no protótipo de tela 05.
Pergunta | Conteúdo |
---|---|
Data de Negociação de | Início do range de data de negociação (FO0_DATA) |
Data de Negociação até | Final do range de data de negociação (FO0_DATA) |
Data de Validade de | Início do range das datas de validade (FO0_VENCTO) |
Data de Validade até | Final do range das datas de validade (FO0_VENCTO) |
Cliente de | Início do range de cliente utilizado para geração dos títulos negociados (FO0_CLIENTE) |
Cliente até | Final do range de cliente utilizado para geração dos títulos negociados (FO0_CLIENTE) |
Loja de | Início do range de loja de clientes utilizado para geração dos títulos negociados (FO0_LOJA) |
Loja até | Final do range de loja de clientes utilizado para geração dos títulos negociados (FO0_LOJA) |
Considera negociações | Define se irá trazer apenas as simulações pendentes de liquidação, as já liquidadas ou todas. 1 = Pendentes de Liquidação (FO0_NUMLIQ em branco) 2 = Liquidadas (FO0_NUMLIQ preenchidas) 3 = Todos |
Seleciona Filiais | 1 = Sim, 2 = Não Usar a função AdmSelecFil , para retornar as filiais. |
Selecionar movimentos na FO0, que estejam entre os ranges estabelecidos nas perguntas, com o campo FO0_STATUS como 1 - Ativo.
Tabelas Utilizadas
- FK1 - Baixas a Receber
- SE1 - Contas a Receber
- FK6 - Valores acessórios
- FO0 - Cabeçalho da Liquidação
- FO1 - Títulos Negociados
- FO2 - Títulos gerados
Opcional
Protótipo de Tela
Protótipo 01
Protótipo 02
Protótipo de tela 03
Protótipo de tela 04
Protótipo de Tela 05
Protótipo de Tela 06
Protótipo de Tela 07
...