Árvore de páginas

Versões comparadas

Chave

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

...

ParâmetroTipo Descrição
aNFarrayVetor com os recnos das notas a serem compensadas
aPA_NDFarrayVetor com os recnos dos PAs/NDFs a serem compensados
aContabilarrayVetor de 3 posições:  [1] - Contabiliza Online, [2] - Aglutina os movimentos contábeis, [3] - Mostra laçamento contábil
bBlockbBlockBloco de código que será executado após cada compensação. "Geração dos movimentos na tabela SE5)
aEstornoarrayVetor com recnos a serem cancelados
nSldCompnuméricoNumérico com valor determinado a ser compensado. Caso não seja informado será considerado o saldo de cada título.
dBaixadateData de realização da compensação
nTaxaPAnuméricoTaxa de movimento a ser considerada no PA para moedas estrangeiras
nTaxaNFnuméricoTaxa de movimento a ser considerada na NF em moedas estrangeiras
nHdlnuméricoCabeçalho do arquivo contábil (Default = 0)
nOperacaonuméricoNa operação de estorno/exclusão determina a ação que será realizada nos movimentos da compensação. 2 = Gera movimento de estorno, 3=Exclui os movimentos
aRecSe5arrayVetor que contém os recnos da SE5 para posterior contabilização
aNDFDados arrayVetor com as informações das NDFs
lHelplógicoInforme .T. se deseja exibir o Help dos pagamentos antecipados que não possuem movimentação bancária
Bloco de código
languagejava
themeMidnight
titleExemplo de rotina automática
#INCLUDE "Protheus.ch"
#INCLUDE "RWMAKE.CH"
#INCLUDE "TBICONN.CH"

Static __COMPAUT := Nil

User Function CMPAUTOMA()
    Local lRet := .F.
    Local cQry := ""
    Local aTipos := {"NF ", "PA ", "NDF"}
    Local cTblTmp := ""
    Local aNF := {}
    Local aPA_NDF := {}
    Local aContabil := {}
    Local bBlock := Nil
    Local aEstorno := {}
    Local nSldComp := 0
    Local nTaxaPA := 0
    Local nTaxaNF := 0
    Local nHdl := 0
    Local nOperacao := 0

    If __COMPAUT == Nil
        cQry := "SELECT E2_TIPO TIPO, R_E_C_N_O_ R_E_C_N_O FROM " + RetSqlName("SE2") + " "
        cQry += "WHERE E2_SALDO > 0 AND E2_TIPO IN (?) "
        cQry += "ORDER BY E2_TIPO" 
        cQry := ChangeQuery(cQry)
        __COMPAUT := FWPreparedStatement():New(cQry)
    EndIf

    __COMPAUT:SetIn(1, aTipos)
    cQry := __COMPAUT:GetFixQuery()
    cTblTmp := MpSysOpenQuery(cQry)

    While (cTblTmp)->(!Eof())
        If (cTblTmp)->TIPO $ MVPAGANT+"|"+MV_CPNEG
            Aadd(aPA_NDF, (cTblTmp)->R_E_C_N_O) 
        Else
            Aadd(aNF, (cTblTmp)->R_E_C_N_O)
        EndIf 

        (cTblTmp)->(DbSkip()) 
        lRet := .T.
    EndDo 

    (cTblTmp)->(DbCloseArea())
    cTblTmp := ""

    If lRet
        Pergunte("AFI340", .F.)
        lContabiliza := MV_PAR11 == 1
        lAglutina := MV_PAR08 == 1
        lDigita := MV_PAR09 == 1

        lRet := FinCmpAut(aNF, aPA_NDF, aContabil, bBlock, aEstorno, nSldComp, dDatabase, nTaxaPA ,nTaxaNF, nHdl, nOperacao)

        If lRet
            Alert("Compensação realizada com sucesso")
        Else
            Alert("Ocorreu um erro no processo de compensação")
        EndIf
    EndIf

Return Nil