| Linha de Produto: | Microsiga Protheus® |
|---|---|
| Segmento: | Backoffice |
| Módulo: | Financeiro |
| Função: | Baixas a Pagar (FINA080) |
Este Ponto de Entrada (P.E.) tem como objetivo principal permitir a manipulação de valores residuais durante a baixa total de títulos no módulo Financeiro.
Ele é especialmente útil para tratar diferenças de arredondamento originadas pela variação da taxa de moeda.
Regra de Ativação: Este P.E. é executado exclusivamente na rotina FINA080 (Baixa a Pagar), para localizações no Brasil, e apenas quando a taxa da moeda for diferente de 1,00. |
Ao ativar este Ponto de Entrada, o comportamento do sistema em relação ao parâmetro MV_TOLERCP (Tolerância na baixa do título) seguirá as seguintes regras:
P.E. Ativo com retorno maior que Zero: O parâmetro MV_TOLERCP será desconsiderado pelo sistema, prevalecendo o valor retornado pela customização.
P.E. Ativo com retorno igual a Zero: O parâmetro MV_TOLERCP será utilizado com suas características originais, mantendo o comportamento padrão do sistema como se o P.E. não estivesse interferindo no limite.
2. Lógica de Retorno e Funcionamento
O Ponto de Entrada deve retornar obrigatoriamente um valor numérico. Esse valor define o limite de tolerância para o ajuste de arredondamento.
3. Exemplo Prático de Cenário
Imagine a inclusão de um título com os seguintes valores:
No momento da baixa (com uma nova taxa informada):
Comparativo de Comportamento:
Considere um título com resíduo de arredondamento de R$ 0,07.
Item 01: Com o P.E. configurado para retornar 0,10
Como o resíduo de 0,07 é inferior ao limite definido pelo P.E. (0,10), o sistema absorve a diferença e o registro de desconto de R$ 0,07 não será criado. O parâmetro MV_TOLERCP é ignorado.
Item 02: Com o P.E. configurado para retornar 0,00 (Zero)
Neste cenário, o sistema utiliza o parâmetro padrão:
Se o MV_TOLERCP for igual a 0,10: O sistema gera o desconto e zera o título.
Se o MV_TOLERCP for igual a 0,00: O sistema não gera o desconto e o título ficará com saldo de 0,07.
Os dados são passados ao P.E. através do array PARAMIXB. Abaixo, a descrição detalhada de cada posição:
| Nome | Tipo | Descrição |
|---|---|---|
| PARAMIXB[1] | Numérico | Tipo de Movimento - 1 = Baixa, 2 = Cancelamento/Exclusão de Baixa |
| PARAMIXB[2] | Caracter | Código da filial onde o título está registrado. |
| PARAMIXB[3] | Caracter | Prefixo do título no Contas a Pagar. |
| PARAMIXB[4] | Caracter | Número identificador do título. |
| PARAMIXB[5] | Caracter | Código da parcela do título. |
| PARAMIXB[6] | Caracter | Tipo do título (exemplo: NF, duplicata, etc.). |
| PARAMIXB[7] | Caracter | Código do fornecedor vinculado ao título. |
| PARAMIXB[8] | Caracter | Loja do fornecedor. |
| PARAMIXB[9] | Numérico | Valor do saldo do título disponível no momento exato da baixa ou valor do movimento na exclusão/estorno da baixa. |
| PARAMIXB[10] | Numérico | Taxa utilizada no cálculo do saldo para a baixa. Em casos de cancelamento, o sistema retorna a taxa utilizada na inclusão original. |
Nome | Tipo | Descrição |
nValArren | Numérico | Valor Numérico. Esse valor define o limite de tolerância para o ajuste de arredondamento. |
#Include "protheus.ch"
//-------------------------------------------------------------------
/*/{Protheus.doc} user function F080ARRE
Este Ponto de Entrada (P.E.) tem como objetivo principal permitir a manipulação de valores residuais
durante a baixa total de títulos no módulo Financeiro.
Especialmente útil para tratar diferenças de arredondamento originadas pela variação da taxa de moeda.
@author Francisco Oliveira
@since 17/03/2026
@version 12.1.2510
@return nValArrend numerico. Valor calculado para arrendamento do titulo conforme regra de negócio.
/*/
//-------------------------------------------------------------------
User Function F080ARRE() As Numeric
Local nValArrend As Numeric
Local nTipMovim As Numeric
Local cFilTit As Character
Local cPrefixo As Character
Local cNumero As Character
Local cParcela As Character
Local cTipo As Character
Local cFornece As Character
Local cLoja As Character
Local nSaldo As Numeric
Local nTxMoeda As Numeric
nValArrend := 0
nTipMovim := PARAMIXB[1] // Tipo de Movimento - 1 = Baixa, 2 = Cancelamento/Exclusão de Baixa
cFilTit := PARAMIXB[2] // Filial do titulo
cPrefixo := PARAMIXB[3] // Prefixo do titulo
cNumero := PARAMIXB[4] // Numero do titulo
cParcela := PARAMIXB[5] // Parcela do titulo
cTipo := PARAMIXB[6] // Tipo do titulo
cFornece := PARAMIXB[7] // Fornecedor do titulo
cLoja := PARAMIXB[8] // Loja do fornecedor do titulo
nSaldo := PARAMIXB[9] // Valor do saldo do título disponível no momento exato da baixa ou valor do movimento na exclusão/estorno da baixa.
nTxMoeda := PARAMIXB[10] // Taxa da moeda usada no calculo do saldo para a Baixa. Se for Cancelamento/Exclusão de Baixa, a taxa será a cadastrada na inclusão.
If nTipMovim == 1 // Baixa
// Regra de negócio para baixa
nValArrend := 0.10 // Valor para arrendamento do titulo na baixa
Else // Cancelamento/Exclusão de Baixa
// Regra de negócio para Cancelamento/exclusão de baixa
nValArrend := 0.10 // Valor para arrendamento do titulo no Cancelamento/exclusão de baixa
Endif
Return nValArrend // Valor para arrendamento do titulo na baixa e/ou exclusão/extorno |