Base de conhecimento
Encontre respostas para suas dúvidas em quatro fontes de conhecimento diferentes ao mesmo tempo, simplificando o processo de pesquisa.

Cross Segmento - Backoffice Linha Protheus - FINA340 - Como utilizar a função FinCmpAut para realizar compensações automáticas no módulo Financeiro (Contas a Pagar)?

Para utilizar o processo de Compensação Automática Contas a Pagar é necessário chamar a função: FinCmpAut.  

time.pngTempo aproximado para leitura: 00:08:00 min

 

Ocorrência:
Qual função deve ser utilizada MaIntBxCP ou FinCmpAut para realizar compensações automáticas no módulo Financeiro (Contas a Pagar)?


Ambiente
Cross Segmento - TOTVS Backoffice (Linha Protheus) - Financeiro - Todas as versões
 

Causa 
Para realizar o processo de Compensação Automática no Contas a Pagar via rotina automática, deve-se utilizar a função FinCmpAut. Esta função permite a compensação de múltiplos títulos (N para N), abrangendo adiantamentos ou devoluções (PA ou NDF) contra títulos de débito (NF, DP, etc.).

É importante destacar que o comportamento da compensação, especialmente no que tange à retenção de impostos, é condicionado pela configuração do parâmetro MV_IMPCOM:

  • MV_IMPCOM = .T. (Verdadeiro): A compensação seguirá as mesmas regras de negócio e validações da rotina FINA340 (Compensação CP), incluindo todo o processo de retenção e cálculo de impostos.
     

  • MV_IMPCOM = .F. (Falso): O sistema executará a compensação baseada no modelo legado (fonte apartado), sem as validações específicas de retenção da rotina FINA340.

Observação sobre Estornos: O estorno será aplicado integralmente a todas as compensações realizadas entre os títulos informados nos arrays de títulos e de estorno, não sendo permitida a seleção de uma sequência específica para o cancelamento.


Exemplo de utilização, considerando os seguintes títulos em aberto no Contas a Pagar:

#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 := 1000
    Local nTaxaPA := 0
    Local nTaxaNF := 0
    Local nHdl := 0
    Local nOperacao := 2
    Local aRecSE5 := {}
    Local aNDFDados := {}
    Local lHelp := .T.

    PREPARE ENVIRONMENT EMPRESA "99" FILIAL "01"
 
    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 += "AND D_E_L_E_T_ = ' ' "
        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, aRecSE5, aNDFDados, lHelp)
 
        If lRet
            Alert("Compensação realizada com sucesso")
        Else
            Alert("Ocorreu um erro no processo de compensação")
        EndIf
    Else
        Alert("Não existem dados a serem compensados")    
    EndIf
 
Return Nil


Importante 📢️: Certifique-se de que a inclusão do PA seja realizada com movimentação bancária:

Ao incluir o PA (Pagamento Antecipado), verifique se o parâmetro "Gera movimento bancário sem cheque" está configurado para "Sim" e "Gera cheque para adiantamento" para "Não"

Esse artigo foi útil?
Usuários que acharam isso útil: 0 de 0

0 Comentários

Por favor, entre para comentar.
X Fechar

Olá ,

Há pendência referente a um de seus produtos contratados para a empresa ().

Entre em contato com o Centro de Serviços TOTVS para tratativa.

Ligue! 4003-0015 opção 4 e 9 ou registre uma solicitação para CST – Cobrança – Verificação de pendências financeiras . clique aqui.

TOTVS

X Fechar

Olá ,

Seu contato não está cadastrado no Portal do Cliente como um perfil autorizado a solicitar consultoria telefônica.

Por gentileza, acione o administrador do Portal de sua empresa para: (1)configurar o seu acesso ou (2)buscar um perfil autorizado para registro desse atendimento.

Em caso de dúvidas sobre a identificação do contato administrador do Portal, ligue (11) 4003-0015, opção 7 e, em seguida, opção 4 para buscar o suporte com o time de Assessoria ao Portal do Cliente. . clique aqui.

TOTVS

X Fechar

Olá ,

Para o atendimento de "Consultoria Telefônica" você deverá estar de acordo com o Faturamento.

TOTVS

X Fechar

Olá,

Algo inesperado ocorreu, e o usuario nao foi reconhecido ou você nao se encontra logado

Por favor realize um novo login

Em caso de dúvidas, entre em contato com o administrador do Portal de Clientes de sua empresa para verificação do seu usuário, ou Centro de Serviços TOTVS.

Ligue! 4003-0015 opção 4 e 9 ou registre uma solicitação para CST – Cadastros . clique aqui.

TOTVS

Chat _

Preencha os campos abaixo para iniciar o atendimento:

Chat _