MMCalcularValoresCR
Esta função, criada exclusivamente para modelos de relatórios, 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 MMCalcularValoresCR( Data aDatBas, Numero aTipVct, Numero aConDbc, Numero end aVlrJrs, Numero end aVlrMul, Numero end aVlrCor, Numero end aVlrEnc, Numero end aVlrOac, Numero end aVlrDsc, Numero end aVlrOde, Numero end aVlrLiq);
Parâmetros de entrada:
| Nome | Tipo | Descrição |
|---|---|---|
| aDataBas | Data | Data base de cálculo (obrigatório) |
| aTipVct | 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 |
| aConDbc | 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 |
|---|---|---|
| aVlrJrs | Numero | Valor calculado de juros |
| aVlrMul | Numero | Valor calculado de multa |
| aVlrCor | Numero | Valor calculado (positivo) de correção monetária |
| aVlrEnc | Numero | Valor calculado de encargos |
| aVlrOac | Numero | Valor calculado de outros acréscimos |
| aVlrDsc | Numero | Valor calculado de descontos |
| aVlrOde | Numero | Valor calculado de outros descontos, incluindo valor negativo de correção monetária |
| aVlrLiq | 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_E301TCR;
Cur_E301TCR.Sql "SELECT E301TCR.CODEMP, E301TCR.CODFIL, E301TCR.NUMTIT, E301TCR.CODTPT, E301TCR.CODTNS, E301TCR.VCTORI, \
E301TCR.VCTPRO, E301TCR.DATDSC, E301TCR.VLRDSC, E301TCR.PERDSC, E301TCR.TOLMUL, E301TCR.PERMUL, E301TCR.VLRABE, E301TCR.PERJRS, E301TCR.JRSDIA, E301TCR.TIPJRS, \
E301TCR.TOLJRS, E301TCR.DATCJM, E301TCR.VLRORI, E301TCR.DATEMI, E301TCR.CODMOE, E301TCR.COTEMI, E301TCR.DATNEG, E301TCR.MULNEG, E301TCR.JRSNEG, E301TCR.DSCNEG, \
E301TCR.ANTDSC, E301TCR.COTNEG, E301TCR.DATNEG, E301TCR.OUTNEG, E301TCR.DATPPT, E301TCR.VLRABE, E301TCR.PRDDSC, E301TCR.COTFRJ, E301TCR.CODFRJ, E301TCR.DSCPON, \
E085CLI.INICOB, E085CLI.CEPINI \
FROM E301TCR, E085CLI WHERE \
E301TCR.CODCLI = E085CLI.CODCLI AND \
E301TCR.VLRABE > 0 AND E301TCR.VCTPRO <= :xVencimentoMaximo \
ORDER BY E301TCR.CODEMP";
Cur_E301TCR.AbrirCursor();
Enquanto(Cur_E301TCR.Achou) {
CalcularValoresCR("Cur_E301TCR", 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_E301TCR.Proximo();
}
Cur_E301TCR.FecharCursor();
Definir Alfa xStrValor;
FormatarN(xVlrLiquidoTotal, "%3.2f", ",", xStrValor);
xStrValor = "Valor Total a Receber: " + 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, 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, PRDDSC, COTFRJ, CODFRJ, DSCPON.
Observações:
- Para o contas a receber também serão exigidos os campos INICOB e CEPINI da tabela de clientes (E085CLI).
- Caso o identificador de regra CRE-301INVCR01 esteja ativo, será necessário garantir que todos os campos do título utilizados pela regra também estejam presentes no SQL do modelo, visto que não é possível criar uma consistência automática disso.
- Se os campos forem incluídos manualmente no SQL do modelo de relatório, é necessário adicionar o prefixo E301TCR na label do campo. Ex.: E301TCRCODEMP.
English
Español
English
Español


