Árvore de páginas

Versões comparadas

Chave

  • Esta linha foi adicionada.
  • Esta linha foi removida.
  • A formatação mudou.

...

Informações
titleInformações

FINA565(nPosArotina, aGetAut1, aChvAut, aGetAut2, aColItens, aEdit, lAutomato)

Na rotina automática de Liquidação Contas a Pagar (FINA565) é possível gerar novos títulos a partir de títulos. As variáveis aChvAut e lAutomato são de uso interno e não devem ser enviadas na chamada.

As informações utilizadas nesta user function precisam estar previamente cadastradas na base que será utilizada.

Para o cancelamento da liquidação, devem ser passadas as seguintes informações: 

nPosArotina := 4

AADD(aGetAut1,{"CLIQCAN",cNumLiq})

A posição 1 do array, deve ser a string fixa "CLIQCAN".

A variável cNumLiq é o número da liquidação a ser cancelada, que pode ser obtida através do campo E2_NUMLIQ.

Informações
titleSeleção de Filiais

Na rotina automática de Liquidação Contas a Pagar (FINA565) não é possível enviar dados para seleção de filiais e ou realizar a busca multi-filial dos registros desejados. Sendo assim, a seleção dos títulos no processamento será realizada na abertura do ambiente no momento da chamada da rotina.

Exemplificação do passo a passo via browser. 

Título a ser liquidado.

Image Removed

Tela 1 - Configuração dos parâmetros para filtragem dos títulos. 

Image Removed-items

Seleção de Títulos filtrados

Image Removed

Totvs custom tabs box
tabsPasso 01, Passo 02, Passo 03, Passo 04, Passo 05, Passo 06
idspasso1,passo2,passo3,passo4,passo5,passo6
Totvs custom tabs box items
defaultyes
referenciapasso1
Totvs custom tabs box items
defaultno
referenciapasso2
Totvs custom tabs box
tabsPasso 01, Passo 02, Passo 03, Passo 04, Passo 05, Passo 06
idspasso1,passo2,passo3,passo4,passo5,passo6

Exemplificação do passo a passo via browser. 

defaultno
referenciapasso3
Totvs custom tabs box items
defaultnoyes
referenciapasso4passo1

Título a ser liquidado.


Image Added

Tela de Juros e Descontos 

Image Removed

Totvs custom tabs box items
defaultno
referenciapasso5passo2

Tela

2

1 - Configuração dos parâmetros para filtragem dos títulos. 


Image Added

- Condição de pagamento e aCols de cheques.Image Removed

Resultado Final

Título Baixado:
Image Removed

Titulos gerados:

Image Removed

Totvs custom tabs box items
defaultno
referenciapasso6
passo3

Seleção de Títulos filtrados


Image Added

Totvs custom tabs box items
defaultno
referenciapasso4

Tela de Juros e Descontos 


Image Added

Totvs custom tabs box items
defaultno
referenciapasso5

Tela 2 - Condição de pagamento e aCols de cheques.


Image Added

Totvs custom tabs box items
defaultno
referenciapasso6

Resultado Final


Título Baixado:
Image Added

Titulos gerados:

Image Added

04. EXEMPLOS DE ROTINA AUTOMATICA


Bloco de código
languagejava
themeMidnight
titleLiquidação
collapsetrue
#INCLUDE 'PROTHEUS.
Bloco de código
languagejava
themeMidnight
titleExemplo de rotina automática- Liquidação
collapsetrue
#INCLUDE 'PROTHEUS.CH'

USER FUNCTION F565EXEC()
    Local aTela1 := {}
    Local aTela2 := {}
    Local aEdtVlr := {}
    Local aCols := {}
    Local aItens := {}
    Local cPrefixo := 'GER'
    Local cFornec  := 'FINC83'
    Local cLoja    := '01'
    Local nRotina  := 2 // Liquidar


    Local nI := 0

    // Variáveis utilizadas para o controle de erro da rotina automática
    Private lMsErroAuto := .F.
    Private lAutoErrNoFile := .T.

	PREPARE ENVIRONMENT EMPRESA "T1" FILIAL "D MG 01 " USER "admin" PASSWORD "" TABLES "SE1,SA1,SE2" MODULO "FIN"

    // Define a DataBase da movimentação
    dDataBase := cToD("08/09/2016")

    // Define Parâmetros da Rotina
    Pergunte('FIN565',.F.)

    // Array de desvio de tela - Caso não seja passado nenhum dos parametros
    // a liquidação ira considerar o título posicionado
    aAdd(aTela1, {'cFornDe', 'FINC83'}) //- Fornecedor De:
    aAdd(aTela1, {'cLojaDe', '01' }) //- Loja De:
    aAdd(aTela1, {'cFornAte', 'FINC83'}) //- Fornecedor Até:
    aAdd(aTela1, {'cLojaAte', '01' }) //- Loja Até: 
    aAdd(aTela1, {'cForn565', 'FINC83'}) //- Gerar p/:
    aAdd(aTela1, {'cLoja', '01'}) //- Loja:
    aAdd(aTela1, {'nValorMax', 0.00}) //- Valor:
    aAdd(aTela1, {'nValorDe', 0.00}) //- Titulos no valor De: 
    aAdd(aTela1, {'nValorAte', 999999999999}) //- Até o Valor De:
    aAdd(aTela1, {'cMoeda565', '1'}) //- Moeda:
    aAdd(aTela1, {'cOutrMoed', '1'}) //- Outras moedas:
    aAdd(aTela1, {'cIntervalo', '1'}) //- Intervalo por:
    aAdd(aTela1, {'dData565I', CTOD('08/09/2016')}) //- Data De:
    aAdd(aTela1, {'dData565F', CTOD('08/09/2016')}) //- Data Até:
    aAdd(aTela1, {'cPrefDe', ' '}) //- Prefx De: 
    aAdd(aTela1, {'cPrefAte', 'zzz'}) //- Prefx Até:
    aAdd(aTela1, {'cNumDe', 'FIN565001'}) //- Titulo De:
    aAdd(aTela1, {'cNumAte', 'FIN565001'}) //- Titulo Até:


    //aHeader - Cabeçalho
    aAdd(aTela2, {'cLoja', cLoja }) //- Loja
    aAdd(aTela2, {'cCondicao', '003' }) //- Condicao (opcional)
    aAdd(aTela2, {'cTipo', 'CH ' }) //- Tipo
    aAdd(aTela2, {'cNatureza', 'FIN001CA' }) //- Natureza
    aAdd(aTela2, {'NTXLIQ', 4}) //- TX Moeda (opcional)
    aAdd(aTela2, {'cFornece', cFornec }) //- Fornecedor

    // Itens/aCols
    //Utilizando condição de pagamento torna-se obrigatório apenas esses campos
    aItens := {}
    AADD(aItens, {'E2_PREFIXO', cPrefixo}) //- Prefixo 
    AADD(aItens, {'E2_BCOCHQ' , '001'}) //- Banco
    AADD(aItens, {'E2_AGECHQ' , '0001'}) //- Agencia
    AADD(aItens, {'E2_CTACHQ' , '00001'}) //- Conta
    AADD(aItens, {'E2_NUM' , 'CHQ001'}) //- Num Cheque
    AADD(aCols, ACLONE(aItens))

    //Array que controla edição dos títulos a serem liquidados.
    aEdtVlr := {}
    AAdd( aEdtVlr, {'Editar', .T. } ) //- Se necessario Editar Valores
    aAdd( aEdtVlr, { {'chave','E2_FILIAL+E2_PREFIXO+E2_NUM+E2_PARCELA+E2_TIPO+E2_FORNECE+E2_LOJA'},;
        {'nCotMoed', 3},;
        {'nValJur', 0},;
        {'nValDes', 0},; 
        {'nValLiq', 6005} } )

    MSEXECAUTO( { |a, b, c, d, e, f, g| FINA565( a, b, c, d, e, f, g )}, nRotina, aTela1, Nil, aTela2, aCols, aEdtVlr, .T. )

    If lMsErroAuto
        MostraErro()
    Else
        Conout("Liquidação gerada com sucesso!")
    EndIf

Return NIL

Caso seja informada uma condição de pagamento é necessário apenas informar os campos:

  • E2_PREFIXO
  • E2_BCOCHQ
  • E2_AGECHQ
  • E2_CTACHQ
  • E2_NUM

Não informando uma condição de pagamento devera ser preenchido todos os campos que compõem o aCols (Para acréscimo e decréscimo utilizar esta forma - títulos gerados).

Bloco de códigowarning
languagejava
titlethemeAviso!
Bloco de código
languagejava
themeMidnight
titleNão informado condição de pagamento
Exemplo de duas parcelas:

For nI := 1 To 2 
    aItens := {}
    AADD(aItens, {'E2_PREFIXO', cPrefixo}) //- Prefixo 
    AADD(aItens, {'E2_TIPO' , 'CH'}) //- Tipo
    AADD(aItens, {'E2_BCOCHQ' , '100'}) //- Banco
    AADD(aItens, {'E2_AGECHQ' , '001'}) //- Agencia
    AADD(aItens, {'E2_CTACHQ' , '1001'}) //- Conta
    AADD(aItens, {'E2_NUM' , 'FLQ'+STRZERO(nI,4)}) //- Num Cheque
    AADD(aItens, {'E2_VENCTO' , dDataBase+(nI*15)}) //- Dt Vencimento
    AADD(aItens, {'E2_VLCRUZ' , 3002.50}) //- Valor
    AADD(aItens, {'E2_ACRESC' , 0}) //- Acrescimo
    AADD(aItens, {'E2_DECRESC', 0}) //- Decrescimo
    AADD(aItens, {'E2_VALOR' , 3002.50}) //- Valor Total
    AADD(aCols, ACLONE(aItens))
Next nI
Midnight
titleCancelamento Liquidação
collapsetrue
#INCLUDE "TOTVS.CH"
#INCLUDE "RWMAKE.CH"
#INCLUDE "TBICONN.CH"
 
USER FUNCTION F565CNCL()    
 
    Local nRotina   As Numeric
    Local aTela1    As ARRAY
    Local cNumLiq   As Character 
 
    Private lMsErroAuto := .F.
    Private lAutoErrNoFile := .T.
 
    PREPARE ENVIRONMENT EMPRESA "T1" FILIAL "D MG 01 " USER "admin" PASSWORD "" TABLES "SE1,SA1,SE2" MODULO "FIN"
  
    nRotina := 4
    aTela1  := {}   
    cNumLiq := "000002"
 
    AADD(aTela1,{"CLIQCAN",cNumLiq})  
     
    // Define a DataBase da movimentação
    dDataBase := CTOD("08/09/2016")
 
    MSEXECAUTO( { |a, b, c, d, e, f, g| FINA565( a, b, c, d, e, f, g )}, nRotina, aTela1, Nil, Nil, Nil, Nil, .T. )
 
    If lMsErroAuto
        MostraErro()
    Else
        Conout("Liquidação cancelada com sucesso!")
    EndIf
  
Return          

Aviso
titleAviso!

Caso seja informada uma condição de pagamento é necessário apenas informar os campos:

  • E2_PREFIXO
  • E2_BCOCHQ
  • E2_AGECHQ
  • E2_CTACHQ
  • E2_NUM

Não informando uma condição de pagamento devera ser preenchido todos os campos que compõem o aCols (Para acréscimo e decréscimo utilizar esta forma - títulos gerados).

Bloco de código
languagejava
themeMidnight
titleNão informado condição de pagamento
Exemplo de duas parcelas:

For nI := 1 To 2 
    aItens := {}
    AADD(aItens, {'E2_PREFIXO', cPrefixo}) //- Prefixo 
    AADD(aItens, {'E2_TIPO' , 'CH'}) //- Tipo
    AADD(aItens, {'E2_BCOCHQ' , '100'}) //- Banco
    AADD(aItens, {'E2_AGECHQ' , '001'}) //- Agencia
    AADD(aItens, {'E2_CTACHQ' , '1001'}) //- Conta
    AADD(aItens, {'E2_NUM' , 'FLQ'+STRZERO(nI,4)}) //- Num Cheque
    AADD(aItens, {'E2_VENCTO' , dDataBase+(nI*15)}) //- Dt Vencimento
    AADD(aItens, {'E2_VLCRUZ' , 3002.50}) //- Valor
    AADD(aItens, {'E2_ACRESC' , 0}) //- Acrescimo
    AADD(aItens, {'E2_DECRESC', 0}) //- Decrescimo
    AADD(aItens, {'E2_VALOR' , 3002.50}) //- Valor Total
    AADD(aCols, ACLONE(aItens))
Next nI
Bloco de código
languagejava
titleExemplo Rotina Automática - Cancelamento Liquidação
collapsetrue
#INCLUDE "TOTVS.CH" #INCLUDE "RWMAKE.CH" #INCLUDE "TBICONN.CH" USER FUNCTION F565CANC()     Local nRotina As Numeric Local aTela1 As ARRAY Private lMsErroAuto := .F. Private lAutoErrNoFile := .T. PREPARE ENVIRONMENT EMPRESA "T1" FILIAL "D MG 01 " USER "admin" PASSWORD "" TABLES "SE1,SA1,SE2" MODULO "FIN" nRotina := 4 aTela1 := {} AADD(aTela1,{"CLIQCAN","000002"}) // Define a DataBase da movimentação dDataBase := CTOD("30/03/2023") MSEXECAUTO( { |a, b, c, d, e, f, g| FINA565( a, b, c, d, e, f, g )}, nRotina, aTela1, Nil, Nil, Nil, Nil, .T. ) If lMsErroAuto MostraErro() Else Conout("Liquidação cancelada com sucesso!") EndIf Return          




04. DEMAIS INFORMAÇÕES


Card documentos
InformacaoA rotina realizara a liquidação de todos os títulos encontrados pelo filtro - configurado através do array que corresponde aos parâmetros apresentados na primeira tela.
TituloIMPORTANTE!

...