Passo a passo: | 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 informações utilizadas nesta user function precisam estar previamente cadastradas na base que será utilizada. É necessário ter cadastrados os seguintes lançamentos padrões: O mesmo processo efetuado manualmente
Título a ser liquidado Tela 1
Seleção de Títulos
Tela de Juros e Descontos
Tela 2 - Condição de pagamento e aCols de cheques. Resultado final
Exemplo de utilização para rotina automática: #INCLUDE 'PROTHEUS.CH' USER FUNCTION F565EXEC() Local aTela1 := {} Local aTela2 := {} Local aChave := {} // Não utilizado no momento Local aEdtVlr := {} Local aCols := {} Local aItens := {} Local cPrefixo := ' ' 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. // Define Parâmetros da Rotina Pergunte('FIN565',.F.) // Critérios de Seleção de Títulos a Liquidar 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', 0.00}) //- Até o Valor De: aAdd(aTela1, {'cMoeda565', '1'}) //- Moeda: aAdd(aTela1, {'cOutrMoed', '1'}) //- Outras moedas: aAdd(aTela1, {'cIntervalo', '1'}) //- Intervalo por: aAdd(aTela1, {'dData565I', dDataBase}) //- Data De: aAdd(aTela1, {'dData565F', dDataBase}) //- 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é: //aChave := {} //aAdd(aChave, {'D MG 01 '+cPrefixo+cTitulo+cParcela+cTipo+cFornec+cLoja}) //Configuração dos novos títulos aAdd(aTela2, {'cLoja', cLoja }) //- Loja aAdd(aTela2, {'cCondicao', '003' }) //- Condicao aAdd(aTela2, {'cTipo', 'CH ' }) //- Tipo aAdd(aTela2, {'cNatureza', 'FIN001CA' }) //- Natureza aAdd(aTela2, {'nValorLiq', 6000 }) //- Vlr Liquido aAdd(aTela2, {'nValorAcr', 0 }) //- Vlr Acrescimo aAdd(aTela2, {'nValorDcr', 0 }) //- Vlr Decrescimo aAdd(aTela2, {'nValorTot', 6000 }) //- Vlr Total aAdd(aTela2, {'cFornece', cFornec }) //- Fornecedor // Preenche Itens/aCols 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 aEdtVlr := {} aAdd( aEdtVlr, {'Editar', .T. } ) //- Se necessario Editar Valores aAdd( aEdtVlr, { {'chave','D MG 01 FIN565001 NF FINC8301'},; {'nCotMoed', 0},; {'nValJur', 5},; {'nValDes', 0},; {'nValLiq', 6005} } ) MSEXECAUTO( { |a, b, c, d, e, f, g| FINA565( a, b, c, d, e, f, g )}, nRotina, aTela1, aChave, aTela2, aCols, aEdtVlr, .T. ) If lMsErroAuto MostraErro() Else Conout("Liquidação gerada com sucesso!") EndIf Return NIL |