MMCalcularValoresCP
Esta função, criada exclusivamente para modelos de relatórios do contas a pagar, 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 MMCalcularValoresCP( 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 SQLde detalhe do modelo 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:
- Caso o identificador de regra CPA-501INVCR01 esteja ativo, é 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 E501TCP na label do campo. Ex.: E501TCPCODEMP.
English
Español
English
Español


