Árvore de páginas

Versões comparadas

Chave

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


01. DADOS GERAIS

Linha de Produto:Microsiga Protheus®
Segmento:Serviços
Módulo:Financeiro


02. SITUAÇÃO/REQUISITO

Rotina automática da liquidação a pagar - Exemplo de Execauto FINA565.

03. EXEMPLO DE UTILIZAÇÃO


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 informações utilizadas nesta user function precisam estar previamente cadastradas na base que será utilizada.

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. 

Totvs custom tabs box items
defaultyes
referenciapasso1

Título a ser liquidado.


Totvs custom tabs box items
defaultno
referenciapasso2

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


Totvs custom tabs box items
defaultno
referenciapasso3

Seleção de Títulos filtrados


Totvs custom tabs box items
defaultno
referenciapasso4

Tela de Juros e Descontos 


Totvs custom tabs box items
defaultno
referenciapasso5

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


Totvs custom tabs box items
defaultno
referenciapasso6

Resultado Final


Título Baixado:

Titulos gerados:

Bloco de código
languagejava
themeMidnight
titleExemplo de rotina automática
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

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




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!

05. ASSUNTOS RELACIONADOS

       Não há


Templatedocumentos


HTML
<style>
div.theme-default .ia-splitter #main {
    margin-left: 0px;
}
.ia-fixed-sidebar, .ia-splitter-left {
    display: none;
}
#main {
    padding-left: 10px;
    padding-right: 10px;
    overflow-x: hidden;
}

.aui-header-primary .aui-nav,  .aui-page-panel {
    margin-left: 0px !important;
}
.aui-header-primary .aui-nav {
    margin-left: 0px !important;
}
</style>