Árvore de páginas

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çãoArgumentoDescrição
1cPrefixoPrefixo do título
2cNumeroNúmero do título
3cParcelaParcela do título
4cTipoTipo do título
5cNaturezaNatureza do título
6cCartCarteira (R = Receber, P = Pagar)
7cCliForCódigo do cliente ou do fornecedor (conforme posição 6)
8nMoedaMoeda em que o saldo será retornado
9dDataData para conversão de moeda
10dDataBaixaData retroativa a ser considera
11cLojaLoja do fornecedor ou cliente do título
12cFilTitFilial do título
13nTxMoedaTaxa da moeda
14nTipoData

Tipo de data a ser considerada

0 = Data Da Baixa (E5_DATA) (Default)
1 = Data de Disponibilidade (E5_DTDISPO)
2 = Data de Contabilização (E5_DTDIGIT)

15lFinRDefine 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.

17lIsTxContrDefine se a taxa é taxa contratada
18lCmpMulFilUso interno

03. EXEMPLO DE UTILIZAÇÃO

Exemplo
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