CalcularValoresCP

Esta função visa calcular os valores multimoeda dos títulos: juros, multa, encargos, correção monetária (positiva), encargos, outros acréscimos, descontos, outros descontos e o valor líquido.

Sintaxe: Função CalcularValoresCP(Alfa Cursor, Data DatBas, Numero TipVct, Numero ConDbc, Numero end VlrJrs, Numero end VlrMul, Numero end VlrCor, Numero end VlrEnc, Numero end VlrOac, Numero end VlrDsc, Numero end VlrOde, Numero end VlrLiq);

Parâmetros de entrada:

Nome Tipo Descrição
Cursor Alfa Nome do cursor com os dados do título
DataBas Data Data base de cálculo (obrigatório)
TipVct Numero Tipo de vencimento. Se for igual a 2 será utilizado o vencimento prorrogado, caso não seja, será utilizada a data de provável pagamento
ConDbc Numero Indica se considerará a data base na correção monetária. Se for igual a 1 considera a data base, caso não seja considera o vencimento (de acordo com o tipo)

Parâmetros de saída:

Nome Tipo Descrição
VlrJrs Numero Valor calculado de juros
VlrMul Numero Valor calculado de multa
VlrCor Numero Valor calculado (positivo) de correção monetária
VlrEnc Numero Valor calculado de encargos
VlrOac Numero Valor calculado de outros acréscimos
VlrDsc Numero Valor calculado de descontos
VlrOde Numero Valor calculado de outros descontos, incluindo valor negativo de correção monetária
VlrLiq Numero Valor líquido calculado para o título (valor aberto + juros + multa + encargos + correção monetária + encargos + outros acréscimos - descontos - outros descontos)

Exemplo:

MontaData(31, 12, 2020, xVencimentoMaximo);

xVlrLiquidoTotal = 0;

DataHoje(xDataBase);

Definir Cursor Cur_E501TCP;

Cur_E501TCP.Sql "SELECT CODEMP, CODFIL, NUMTIT, CODTPT, CODFOR, CODTNS, VCTORI, \

VCTPRO, DATDSC, VLRDSC, PERDSC, TOLMUL, PERMUL, VLRABE, PERJRS, JRSDIA, TIPJRS, \

TOLJRS, DATCJM, VLRORI, DATEMI, CODMOE, COTEMI, DATNEG, MULNEG, JRSNEG, DSCNEG, \

ANTDSC, COTNEG, DATNEG, OUTNEG, DATPPT, VLRABE \

FROM E501TCP WHERE VLRABE > 0 AND VCTPRO <= :xVencimentoMaximo \

ORDER BY CODEMP";

Cur_E501TCP.AbrirCursor();

Enquanto(Cur_E501TCP.Achou) {

CalcularValoresCP("Cur_E501TCP", xDataBase,

2, @1 - Vencimento Prorrogado ou 2 - Provável pagamento@

0, @Considera data base na correção monetária: 1 - Sim ou 0 - Não@

VlrJrs, VlrMul, VlrCor, VlrEnc, VlrOac, VlrDsc, VlrOde, VlrLiq);

xVlrLiquidoTotal = xVlrLiquidoTotal + VlrLiq;

Cur_E501TCP.Proximo();

}

Cur_E501TCP.FecharCursor();

Definir Alfa xStrValor;

FormatarN(xVlrLiquidoTotal, "%3.2f", ",", xStrValor);

xStrValor = "Valor Total a Pagar: " + xStrValor;

mensagem(retorna, xStrValor);

Utilização: Esta função utiliza os dados dos títulos disponíveis no SQL dos cursores para calcular os valores multimoeda de cada título. Assim, alguns campos dos títulos obrigatoriamente devem existir no SQL de um cursor para ser possível utilizar as novas funções (as funções irão consistir que esses campos existam no SQL):

CODEMP, CODFIL, NUMTIT, CODTPT, CODFOR, CODTNS, VCTORI, VCTPRO, DATDSC, VLRDSC, PERDSC, TOLMUL, PERMUL, VLRABE, PERJRS, JRSDIA, TIPJRS, TOLJRS, DATCJM, VLRORI, DATEMI, CODMOE, COTEMI, DATNEG, MULNEG, JRSNEG, DSCNEG, ANTDSC, COTNEG, DATNEG, OUTNEG, DATPPT, VLRABE.

Observações:

Este artigo ajudou você?