01. VISÃO GERAL
Retorna o saldo do título a pagar ou receber em uma data retroativa. Função de uso interno.
Abatimentos
A função SaldoTit() não retorna o valor considerando os abatimentos("AB-", "FB-", "FC-", "IR-", "IN-", "IS-", "PI-", "CF-", "CS-", "FU-" ,"FE-", entre outros).
O valor dos abatimentos do título pode ser calculado utilizando a função SomaAbat().
Títulos compensados em outras filiais
Essa função não considera movimentações originadas de compensações realizadas em outras filiais para a recomposição do saldo do título.
Nesse caso, é necessário chamar a função complementar FRVlCompFil() para chegar no saldo correto (vide o código de exemplo mais abaixo).
Storage Procedure
Se o ambiente possui a storage procedure 10 instalada, a mesma será utilizada para o cálculo do saldo do título. Caso contrário, será utilizada uma função ADVPL interna do sistema (xSaldoTit).
02. PARÂMETROS DE UTILIZAÇÃO
Posição | Argumento | Descrição |
---|---|---|
1 | cPrefixo | Prefixo do título |
2 | cNumero | Número do título |
3 | cParcela | Parcela do título |
4 | cTipo | Tipo do título |
5 | cNatureza | Natureza do título |
6 | cCart | Carteira (R = Receber, P = Pagar) |
7 | cCliFor | Código do cliente ou do fornecedor (conforme posição 6) |
8 | nMoeda | Moeda em que o saldo será retornado |
9 | dData | Data para conversão de moeda |
10 | dDataBaixa | Data retroativa a ser considera |
11 | cLoja | Loja do fornecedor ou cliente do título |
12 | cFilTit | Filial do título |
13 | nTxMoeda | Taxa da moeda |
14 | nTipoData | Tipo de data a ser considerada 0 = Data Da Baixa (E5_DATA) (Default) |
15 | lFinR | Define se utilizar conceitos do FINR350 |
16 | __oTBxCanc | Objeto FWPrepareStatement que pode ser reutilizado. Enviar objeto não instanciado na primeira chamada e reutilizar o objeto para ganho de performance. |
17 | lIsTxContr | Define se a taxa é taxa contratada |
18 | lCmpMulFil | Uso interno |
03. EXEMPLO DE UTILIZAÇÃO
user function tstSaldo() local cFilTit as character local cFilOrig as character local cPrefixo as character local cNum as character local cParcela as character local cTipo as character local cNatureza as character local cCliente as character local cLoja as character local nSaldo as numeric local cCart as character local dDtRetro as date local nTipoData as numeric local lFinR as logical local lNovoCalc as logical local nMoeda as numeric local nMoedaTit as numeric cFilTit := 'D RJ 01 ' cPrefixo := 'FIN' cNum := 'FIN001023' cParcela := '1' cTipo := 'NF ' cCart := 'R' dDtRetro := CtoD('19/03/2020') nTipoData := 0 lFinR := .F. lNovoCalc := .T. SE1->(DbSetOrder(1))//E1_FILIAL+E1_PREFIXO+E1_NUM+E1_PARCELA+E1_TIPO if !SE1->(dbSeek(xfilial('SE1') + cPrefixo + cNum + cParcela + cTipo)) return .F. endIf cCliente := SE1->E1_CLIENTE cLoja := SE1->E1_LOJA cNatureza := SE1->E1_NATUREZ cFilOrig := SE1->E1_FILORIG nMoeda := nMoedaTit := SE1->E1_MOEDA nSaldo := SaldoTit(cPrefixo, cNum, cParcela, cTipo, cNatureza, cCart, cCliente, nMoeda, ; dDtRetro, dDtRetro, cLoja, cFilTit, /*nTxMoeda*/, nTipoData, lFinR, /*__oTBxCanc*/, /*lIsTxContr*/, /*lCmpMulFil*/) dDataBase := dDtRetro nSaldo -= FRVlCompFil(cCart, cPrefixo, cNum, cParcela, cTipo, cCliente, cLoja, nTipoData, ; /*aFilBaixa*/, /*cFilQry*/, /*lAS400*/, /*nMoeda*/, /*nMoedaTit*/, /*nTxMoeda*/, /*dDataTx*/, lNovoCalc) dDataBase := date() conOut("Saldo = " + cValToChar(nSaldo)) return .T.
04. MAIS INFORMAÇÕES
Stored procedures - Novo gerenciador de pacotes