Á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 PA/NDF's 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 no 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

Exemplo de uso:


#INCLUDE "Protheus.ch"
#INCLUDE "RWMAKE.CH"
#INCLUDE "TBICONN.CH"

Static __COMPAUT

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