Essa rotina foi ajustada para atender a Lei Geral de Proteção de Dados (Lei n° 13.70), sendo que alguns campos que apresentam informações consideradas como dados sensíveis e/ou pessoais, serão ofuscados deixando de ser legíveis.
01. VISÃO GERAL
Esta rotina permite que sejam executadas as compensações de todos os adiantamentos já efetuados e cadastrados, realizados pelos fornecedores (títulos tipo PA), além de notas de crédito a abater (títulos tipo NDF).
Os adiantamentos selecionados e informados pelo usuário serão abatidos do valor total do título original.
02. EXECUÇÃO
Manual
Dica
title
Adiantamento vinculado ao pedido de compra
É possível vincular adiantamentos a pedidos de compra para que o sistema faça a compensação automaticamente ao classificar o documento de entrada. Veja mais em Adiantamento no Pedido de Compras.
02. EXECUÇÃO
Manual
Procedimento efetuado de forma manual via rotina Compensação contas a pagar (FINA340), Procedimento efetuado de forma manual via rotina Compensação contas a pagar (FINA340), com exibição das telas envolvidas no processo e necessitando de ações/comandos do usuário
...
Bloco de código
language
java
theme
Midnight
title
Exemplo de rotina automática
collapse
true
#INCLUDE '"Protheus.ch'"
#INCLUDE "RWMAKE.CH"
#INCLUDE "TBICONN.chCH"
Static __COMPAUT := Nil
User Function CMPCPAUTCMPAUTOMA()
Local nSavIndlRet := IndexOrd()
LOCAL nSavRec.F.
Local cQry := RecNO()
PRIVATE nTamTit""
Local aTipos := TamSX3("E2_PREFIXO")[1]+TamSX3("E2_NUM")[1]+TamSX3("E2_PARCELA")[1]
PRIVATE nTamTip{"NF ", "PA ", "NDF"}
Local cTblTmp := TamSX3("E2_TIPO")[1]
Private aCores
Local aNF :={ { 'E2_SALDO = E2_VALOR .AND. E2_ACRESC = E2_SDACRES','ENABLE'},; // Titulo nao Compensado
{ 'E2_SALDO = 0' , 'DISABLE'},; // Titulo Compensado Totalmente
{ 'E2_SALDO <> 0' , 'BR_AZUL'} } // Titulo Compensado Parcialmente
//-----------------------------
// Define Variaveis
//-----------------------------
PRIVATE aRotina := { { "Pesquisar","AxPesqui" , 0 , 1,,.F. },; //"Pesquisar"
{ "Visualizar","AxVisual" , 0 , 2 },; //"Visualizar"
{ "Compensar","XAFCMPAD" , 0 , 4 },; //"Compensar"
{ "Excluir","Fa340Desc" , 0 , 4 },; //"Excluir"
{ "Legenda","Fa340Leg" ,0,2, ,.F.} } //"Legenda"
//-----------------------------------------------------------------
// Carrega fun‡„o Pergunte
//-----------------------------------------------------------------
SetKey (VK_F12,{|a,b| AcessaPerg("AFI340",.T.)})
Pergunte("AFI340",.F.)
//-------------------------------------------------
// Define o cabe‡alho da tela de baixas
//-------------------------------------------------
PRIVATE cCadastro := "Compensação de Titulos Automatico"
//------------------------------------------------
// Verifica o numero do Lote
//------------------------------------------------
PRIVATE cLoteLoteCont( "FIN" )
PRIVATE VALOR := 0
PRIVATE VLRINSTR := 0 Private aTxMoedas := {}
dbSelectArea("SE2")
dbSetOrder(1)
dbGoTop()
//----------------------------------------
// Endere‡a a Funçao de BROWSE
//----------------------------------------
mBrowse( 6, 1,22,75,"SE2",,,,,,aCores)
dbSelectArea("SE2")
dbSetOrder(nSavInd)
dbGoTo(nSavRec)
Return
/* Programa | XAFCMPAD
==========================================================
Desc. | Realiza a compensação do titulo de adiantamento
*/
Static Function XAFCMPAD()
Local aArea := GetArea()
Local aAreaSE2 := SE2->(GetArea())
Local aRecPA := {} // Array contendo os Recnos dos titulos PA
Local aRecAux := {}
Local nX := 0
Local lContabiliza := .F.
Local lAglutina := .F.
Local lDigita := .F.
Local aRecSE2 := {SE2->(Recno())}
LOCAL oDlg
LOCAL nOpca := 0
Local dBaixaCMP := dDataBase
//--------------------------------------------------------
// Carrega o pergunte da rotina de compensação financeira
//--------------------------------------------------------
PERGUNTE("AFI340",.F.)
lContabiliza := MV_PAR11 == 1
lAglutina := MV_PAR08 == 1
lDigita := MV_PAR09 == 1
//----------------------------------
//Ordenação das tabelas envolvidas
//----------------------------------
SE2->(dbSetOrder(1)) //E2_FILIAL+E2_PREFIXO+E2_NUM+E2_PARCELA+E2_TIPO+E2_FORNECE+E2_LOJA
aRecAux := {}
aRecAux := XGetTitAd(SE2->E2_FORNECE,SE2->E2_LOJA )
For nX := 1 To Len(aRecAux)
aADD(aRecPA,aRecAux[nX])
Next nX
If !Empty(aRecPA)
DEFINE MSDIALOG oDlg FROM 080,000 TO 190,260 TITLE "Data de Baixa para a Compensação" PIXEL
oDlg:lMaximized := .F.
oPanel := TPanel():New(0,0,'',oDlg,, .T., .T.,, ,20,20)
oPanel:Align := CONTROL_ALIGN_ALLCLIENT
@ 015, 010 SAY "Dt. Baixa: " SIZE 52, 08 OF oPanel PIXEL
@ 015, 035 MSGET dBaixaCMP Valid !Empty(dBaixaCMP) SIZE 52, 08 OF oPanel PIXEL hasbutton
DEFINE SBUTTON FROM 034,050 TYPE 1 ACTION {||oDlg:End(),nOpca:=1} ENABLE OF oDlg
DEFINE SBUTTON FROM 034,080 TYPE 2 ACTION {||oDlg:End(),nOpca:=0} ENABLE OF oDlg
ACTIVATE MSDIALOG oDlg CENTERED
If nOpca == 1 .and. !MaIntBxCP(2,aRecSE2,,aRecPA,,{lContabiliza,lAglutina,lDigita,.F.,.F.,.F.},,,,dBaixaCMP)
Help("XAFCMPAD",1,"HELP","XAFCMPAD","Não foi possível a compensação"+CRLF+" do titulo do adiantamento",1,0)
ElseIf nOpca == 0
MsgInfo("Processo não realizado por desistência do usuário","Atencao")
Else
MsgInfo("Compensação Automática Concluida","Atencao")
EndIf
EndIf
RestArea(aAreaSE2)
RestArea(aArea)
Return
/* Programa| XGetTitAd
=====================================================================
Desc| Função que retorna os titulos de adiantamento do Fornecedor
| e Loja Informados
=====================================================================
*/
Static Function XGetTitAd( cFornece,cLoja )
Local aArea := GetArea()
Local aRecPA := {} // Array contendo os Recnos dos titulos PA
Local cQuery := ""
Local cTab := GetNextAlias()
If Select(cTab) > 0
(cTab)->(dbCloseArea())
EndIf
cQuery += " SELECT "
cQuery += " R_E_C_N_O_ SE2REC "
cQuery += " FROM " + RetSqlTab("SE2")
cQuery += " WHERE " cQuery += " E2_FORNECE = '"+cFornece+"' AND "
cQuery += " E2_LOJA = '"+cLoja+"' AND "
cQuery += " E2_TIPO IN ('PA ','NDF') AND "
cQuery += " E2_SALDO > 0 AND "
cQuery += RetSQLCond("SE2")
cQuery := ChangeQuery(cQuery)
dbUseArea(.T., "TOPCONN", TCGenQry(,,cQuery), cTab, .F., .T.)
(cTab)->(dbGoTop())
While (cTab)->(!EOF())
aAdd(aRecPA,(cTab)->SE2REC)
(cTab)->(dbSkip())
EndDo
(cTab)->(dbCloseArea())
RestArea(aArea)
Return aRecPA
Informações
title
Observação
A data da baixa desejada, para o processo, poderá ser enviada utilizando o 11º parâmetro da função MaIntBxCP(). Caso isso não ocorra, será considerada a data base com data de baixa.
Através desta operação é possível a compensação de títulos a pagar:
- Compensar títulos de um mesmo fornecedor/loja com adiantamentos deste mesmo fornecedor/loja
- Compensar títulos de um determinado fornecedor com adiantamentos deste mesmo fornecedor, não importando qual a loja do titulo a compensar
- Compensar título de determinado fornecedor com adiantamentos de diversos fornecedores, podendo ser determinada uma faixa de fornecedores ou todos. Com isso, o título pode ser compensado com qualquer título de adiantamento em aberto no cadastro de títulos, não importando qual o fornecedor deste título.
Excluir
Operação que permite realizar a exclusão do movimento gerado pela compensação
Estorno
Operação que permite realizar o estorno do movimento gerado pela compensação, gerando assim sua contrapartida.
Legenda
Apresenta quadro das legendas e seus significados referenciados a situação do titulo a pagar.
Image Removed
Pesquisa
Pesquisa o titulo dentro do arquivo de contas a pagar, tendo como resultado o titulo posicionado e destacado nabrowse.
Visualizar
Operação que permite visualizar o titulo posicionado, podendo conferir seu saldo e valor.
04. PARÂMETROS APLICADOS
Lista de parâmetros aplicados ao FINA340 e seu processamento
...
id
Parâmetros
effectType
fade
...
id
1
label
Perguntas (F12)
effectType
fade
...
id
2
label
Parâmetros (SX6)
effectType
fade
...
}
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
Informações
title
Observação
Para utilizar o processo de Compensação Automática Contas a Pagar é necessário chamar a função: FinCmpAut. A compensação pode ser realizada de N para N: N adiantamentos/devoluções (PA ou NDF) para N títulos (NF, DP, etc.) ou vice-versa.
Através desta operação é possível a compensação de títulos a pagar:
- Compensar títulos de um mesmo fornecedor/loja com adiantamentos deste mesmo fornecedor/loja;
- Compensar títulos de um determinado fornecedor com adiantamentos deste mesmo fornecedor, não importando qual a loja do titulo a compensar;
- Compensar título de determinado fornecedor com adiantamentos de diversos fornecedores, podendo ser determinada uma faixa de fornecedores ou todos. Com isso, o título pode ser compensado com qualquer título de adiantamento em aberto no cadastro de títulos, não importando qual o fornecedor deste título;
Aviso
title
Importante: Data da compensação
A data da compensação deverá ser maior que a data de emissão dos títulos envolvidos, por exemplo:
PA com emissão no dia 29/03
NF com emissão no dia 02/04
A compensação destes títulos só poderá ser efetuada após o dia 02/04 tendo em vista que no dia 29/03 a NF ainda não existia, sendo assim o conceito de baixas será corretamente aplicado nas operações de compensação. (E2_BAIXA maior que E2_EMISSAO)
Não é possível, pelo Financeiro, realizar a compensação de Pagamentos Antecipados amarrados a Pedidos de compra.
Aviso
title
Importante: Filtro de filial
Para compensação entre adiantamentos e títulos de diferentes filiais, deve ser utilizado o botão Filiaispara definir quais filiais serão consideradas para a seleção dos títulos a compensar. Caso não seja utilizado o botão Filiais, apenas títulos da filial corrente serão considerados para a compensação.
Image Added
Informações
title
Observação
Caso as tabelas do módulo financeiro sejam totalmente compartilhadas e não for utilizado o botão Filiais, serão considerados para o processo os registros de todas as filiais. Se for utilizado o botão Filiais, os registros serão filtrados por filial de origem (E2_FILORIG).
Informações
title
Observação
Caso as tabelas do módulo financeiro sejam compartilhadas a nível de filial, e não for utilizado o botão Filiais, serão considerados para o processo os registros cuja filial de origem (E2_FILORIG) seja a filial corrente. Se for utilizado o botão Filiais, os registros serão filtrados por filial de origem (E2_FILORIG).
Informações
title
Filial do processo de compensação
Quando o processo de compensação for feito com títulos de filiais diferentes, a rotina irá considerar a filial do título de origem (de partida) da compensação para gravar as movimentações (tabela SE5) e contabilização (tabela CT2).
Obs: Comportamento vigente na rotina FINA340 com data igual ou superior a , para deixar a rotina com o mesmo comportamento da rotina FINA330 (Compensação a Receber). Até então a rotina FINA340 exibia uma tela para a selecionar a filial do processo após clicar no botão "Compensar".
Excluir
Operação que permite realizar a exclusão do movimento gerado pela compensação
Estorno
Operação que permite realizar o estorno do movimento gerado pela compensação, gerando assim sua contrapartida.
Legenda
Apresenta quadro das legendas e seus significados referenciados a situação do titulo a pagar.
Image Added
Pesquisa
Pesquisa o titulo dentro do arquivo de contas a pagar, tendo como resultado o titulo posicionado e destacado nabrowse.
Visualizar
Operação que permite visualizar o titulo posicionado, podendo conferir seu saldo e valor.
04. PARÂMETROS APLICADOS
Lista de parâmetros aplicados ao FINA340 e seu processamento
Deck of Cards
id
Parâmetros
effectType
fade
Card
id
1
label
Perguntas (F12)
effectType
fade
Pergunta
Descrição
Considera loja ?
Este campo indica se a loja do fornecedor devera ser considerada na filtragem dos registros a serem compensados. Desta forma se escolhida a opção "Não", todos os títulos "PA" de todas as lojas serão trazidos para a confirmação da compensação. Se escolhida a opção "Sim", somente as "PA's" da loja do titulo principal serão consideradas.
Considera Fornecedor ?
Informe a opção "Original" para que o fornecedor a ser considerado na compensação seja o mesmo do titulo, ou "Outros" sendo possível compensar títulos entre diferentes fornecedores
Do fornecedor ?
Informe o código inicial do intervalo de fornecedores a serem considerados na compensação
Ate o Fornecedor ?
Informe o código final do intervalo de fornecedores a serem considerados na compensação
Cons. filiais abaixo ?
Informe "Sim" para que sejam consideradas as filiais do seu sistema, ou "Não" considerando apenas a filial logada. Esta pergunta não tem mais efeito no processo de compensação. Utilize o botão Filiaispara a seleção das filiais a serem consideradas para a seleção dos títulos que comporão a compensação.
Da filial ?
Informe o código inicial do intervalo de filiais a serem considerados na compensação. Esta pergunta não tem mais efeito no processo de compensação. Utilize o botão Filiaispara a seleção das filiais a serem consideradas para a seleção dos títulos que comporão a compensação.
Ate a filial ?
Informe o código final do intervalo de filiais a serem considerados na compensação. Esta pergunta não tem mais efeito no processo de compensação. Utilize o botão Filiaispara a seleção das filiais a serem consideradas para a seleção dos títulos que comporão a compensação.
Aglutina Lancto ?
Informe a opção "SIM" para que os lançamentos contábeis gerados através da compensação sejam aglutinados em um único lançamento
Mostra lançamentos ?
Informe a opção "SIM" para que os lançamentos contábeis gerados através da compensação sejam exibidos em tela, ou "NAO", caso contrario
Compensa títulos ?
Informe a opção "Normais" para que sejam considerados na compensação os títulos do tipo NF,PA,NDF, ou "Imposto" para que sejam considerados os títulos de impostos gerados TX e TXA
Contabiliza online ?
Informe se "SIM" para que a contabilização dos lançamentos referentes a compensação contas a pagar sejam realizados online, ou "NAO", caso contrario.
Compensa transferidos ?
Informe se "Sim" caso permita a compensação de títulos transferidos ao banco (Borderô), ou "Não" caso contrario
Compensa saldo do imposto ?
Define se no momento da compensação entre impostos, não sera zerado o saldo do TX, deixando em aberto para envio a DARF e pagamento do imposto, a funcionalidade desse pergunte só sera aplicada quando
o pergunte Compensa títulos ? = "Impostos"
Considera bx dos imp. do PA ?
Define se no momento da compensação entre títulos normais NF x PA, se os impostos do tipo TXA do PA possuírem baixa, esses valores serão usados para liquidar o saldo do TX da NF, a funcionalidade desse pergunte so sera aplicada quando
o pergunte Compensa títulos ? = "Normais"
Card
id
2
label
Parâmetros (SX6)
effectType
fade
Parâmetro
Descrição
Default
MV_CTBFLAG
Indica se a marcação dos flags de contabilização das rotinas offline será feita na transação do lançamento contábil - SIGACTB.
.F.
MV_BX10925
Define momento do tratamento da retencão dos impostos Pis Cofins e Csll 1 = Na Baixa ou 2 = Na Emissão
1
MV_PABRUTO
Define se na geração do PA com impostos 1 = Gera um PA com o valor bruto. 2 = Gera um PA com o valor líquido (padrão do sistema).
2
MV_LIBCHEQ
Opção para liberação de saldo bancário quando da geração de cheques antes da baixa.
S
MV_PAPRIME
Define se na geração do PA com impostos, será provisionado os impostos de inss e iss na para PA Liquido 1=Sim 2=Não (Default)
2
MV_CTLIPAG
Controla as baixas a pagar através da data de liberação preenchida,caso .T. o sistema verifica se o cpo E2_DATALIB preenchido,caso contrario não controla
.F.
MV_VLMINPG
Valor mínimo para executar a baixa do título, mesmo que o campo E2_DATALIB não esteja preenchido e o parâmetro MV_CTLIPAG seja .T.
0
MV_IMPADT
Define utilização da geração de IRRF em adiantamento a Pagar
MV_SOLNCP
Define se deve ser usada a rotina de solicitação de Nota de credito
.F.
MV_MUNIC
Utilizado para identificar o código dado a secretaria das finanças do município para recolher o ISS.
MUNIC
MV_MCUSTO
Moeda utilizada para verificação do limite de credito que foi informado no cadastro de clientes.
2
MV_COMSEIC
Habilita integração de pedido de compra de serviços para o Easy Siscoserv.
.F.
MV_ESS0012
Habilita integração do Documento de Entrada do SIGACOM para o SIGAESS.
.F.
MV_ESS0013
Habilita integração dos títulos gerados no SIGAFIN pelo SIGACOM para o SIGAESS.
.F.
MV_ESS0022
Habilita integração SIGAEIC x SIGAESS
.F.
MV_JURXFIN
Habilita a integração entre os módulos SIGAFIN - Financeiro e SIGAPFS - Jurídico Padrão desabilitado.
MV_PCOINTE
Indica se a integração dos processos do Planejamento e Controle Orçamentário com os processos de Lançamentos / Bloqueios esta ativa (1=Sim/ 2=Nao).
2
MV_BXDTFIN
Não permite data de baixa menor que o a data contida no parâmetro MV_DATAFIM (1=Permite, 2=Não Permite)
2
MV_UNIAO
Utilizado para identificar o código dado a secretaria da Receita Federal para pagamento do Imposto de Renda.
UNIAO
MV_ESTADO
Sigla do estado da empresa usuária do Sistema, para efeito de calculo de ICMS (7, 12 ou 18%).
SP
MV_PISNAT
Natureza para títulos referentes ao PIS
PIS
MV_COFINS
Natureza para títulos referentes ao COFINS
COFINS
MV_CSLL
Natureza para títulos referentes ao CSLL
CSLL
MV_IRF
Natureza para títulos referentes ao IRF
IRF
MV_ISS
Natureza para títulos referentes ao ISS
ISS
MV_BP10925
Define se deve considerar no valor de pagamento, o valor bruto da baixa parcial ou o valor liquido considerando os impostos.(1=Vl Bruto/2=Vl Liquido)
1
MV_COMPCP
Indica se na compensação de uma NF com um PA os impostos serão proporcionalizados.
.F.
MV_MRETISS
Modo de retenção do ISS nas aquisições de serviços 1 = na emissão do título principal; 2 = na baixa do título principal
1
MV_CPIMPAT
Indica se haverá compensação automática de impostos a pagar. 1 - Automática; 2 - Manual
2
MV_AG10925
Indica se os impostos do PCC serão aglutinados em um titulo apenas quando ocorrerem os três impostos no mesmo titulo.
2
MV_FINVDOC
Ativa o controle de documentos obrigatórios nas rotinas de liberação para baixa / movimentação dos títulos a pagar? ("1" = Sim / "2" = Não)
2
MV_CMTXCON
Indica que será gerado correção monetária para títulos com taxa contratada na compensação CP T = Gera CM / F = Não gera CM
.F.
MV_CALCCM
Indica se o calculo de correção monetária sera ou não efetuado. Validos: "S" - calcula ou "N" - não calcula.
S
MV_TXPRCON
Define se a taxa informada na compensacao sera utilizada em todo o processo. T = Tx no Processo, F = Tx Individual
.F.
Opções para configuração dos parâmetros MV_PABRUTO, MV_BP10925, MV_PAPRIME
Quando o parâmetro MV_PABRUTO, estiver igual 2 (Líquido), ao gerar títulos do tipo PA (pagamento antecipado), é mantida a geração com o valor líquido, em que são descontados os valores de impostos que podem ser retidos na inclusão.
Ao realizar a compensação de um título, por exemplo, do tipo NF com uma PA, sendo que ambas retêm impostos na baixa, é aconselhável os parâmetros abaixo sejam configurados da seguinte maneira, para que haja coerência de valores:
MV_COMPCP = .T. - Indica se na compensação de uma NF com um PA os impostos serão proporcionalizados.
MV_BP10925 = 2 - Considera valor Líquido na baixa Parcial descontados os impostos.
MV_PAPRIME = 1 - Considera provisionamento de impostos para PA Líquido.
Quando o parâmetro MV_PABRUTO estiver igual a 1 (Bruto) ao gerar títulos do tipo PA, o mesmo é gerado com o valor bruto, não descontando os valores de impostos que podem ser retidos na inclusão. Então a compensação de uma NF com um PA deve ser pelo valor bruto , configurando os parâmetros conforme abaixo:
MV_PABRUTO = 1 - Bruto e MV_BX10925 = 1 Imposto na baixa ou MV_BX10925=2 Imposto na emissão
MV_BP10925 = 1 - Considera valor Bruto na baixa Parcial sem descontar os impostos.
MV_PAPRIME = 2 - Não considera provisionamento de impostos para PA Líquido.
Aviso
title
Importante
Se o sistema não estiver configurado com uma dessas duas opções, pode acontecer de, ao efetuar o estorno, o título tipo PA ficar com o status parcialmente compensado.
Informações
title
Observações
O parâmetro MV_COMPCPnão influencia caso o parâmetroMV_PABRUTO esteja com o valor em1. Independente dos títulos terem impostos, ou não, é necessário a parametrização.
Informações
title
Naturezas
A compensação entre NF x PA, partindo tanto da NF como do PA, não é permitida caso o parâmetroMV_PABRUTOesteja com o valor2(Líquido) e as naturezas estiverem diferentes.
Entretanto, recomendamos utilizar a mesma natureza financeira para os títulos de NF e de PA para garantir que não ocorra divergência nos valores dos impostos gerados.
05. CONTABILIDADE
A contabilização dos processos aplicados a uma compensação contas a pagar via módulo Financeiro é feita pelos lançamentos padrões abaixo:
LP
Fato Gerador
ON
OFF (CTBAFIN)
589
Cancelamento de compensação de títulos contas a pagar
X
X
597
Compensação contas a pagar
X
X
Card documentos
Informacao
A contabilização da compensação sera sempre feita com base nos dados do Título Compensado podendo ser qualquer tipo de obrigação: NF, TX, DP e etc. (Cuja movimentação (SE5) tenha esta classificação: E5_TIPODOC = 'CP' e E5_MOTBX = 'CMP')
Titulo
IMPORTANTE!
Variáveis de contabilização
Totvs custom tabs box
tabs
Online,Off-line,Exemplo
ids
online,offline,exemplo
Totvs custom tabs box items
default
yes
referencia
online
A seguir a lista de variáveis que podem ser utilizadas na configuração do Lançamento Padrão 597 (Compensação Contas a pagar) para contabilização online da Compensação a pagar (FINA340):
VALOR - Armazena o valor compensado VALOR2 - Valor de Acréscimo VALOR3 - Valor de Decréscimo VALOR4 - Variação da correção monetária VLRINSTR - Armazena o valor compensado nSldReal - Armazena o valor compensado na moeda correspondente do título ABATIMENTO - Valores de abatimentos REGVALOR - Recno do registro atual STRLCTPAD - Chave do título principal+número do documento
Essas variáveis são alimentadas com os dados do registro posicionado de onde partiu a compensação. Enquanto que para os registros selecionados para compensar, é feita a contabilização pela SE5.
Na contabilização on-line, não é possível alterar a filial de contabilização, sendo contabilizado na filial do processo de compensação (filial do título de partida da compensação).
Exemplo:
Selecionar a NF1 e clicado em Compensar.
Na tela de seleção dos títulos a compensar, selecionar a PA1 e PA2.
Ao contabilizar on-line, as informações da NF1 estarão nas variáveis de contabilização. Já as informações da compensação de cada PA, terão seus respectivos registros da SE5 posicionados.
Variáveis Estorno:
VALOR - Armazena o valor compensado VLRINSTR - Armazena o valor compensado
Totvs custom tabs box items
default
no
referencia
offline
Ao forçarmos o posicionamento dos títulos a serem compensados, a contabilização trará os dois títulos (ex: NF x PA), contabilizando o valor dos dois títulos, podendo gerar duplicidade na contabilização.
As variáveis disponíveis para a contabilização off-line (CTBAFIN):
VALOR - Armazena o valor compensado VALOR2 - Valor de Acréscimo VALOR3 - Valor de Decréscimo REGVALOR - RECNO do registro atual STRLCTPAD - Chave do título principal+número do documento
Obs.: Estas variaveis estão disponiveis tanto para a compensação quanto para o estorno.
Essas variáveis são alimentadas com os dados do registro posicionado de onde partiu a compensação. Enquanto que para os registros selecionados para compensar, é feita a contabilização pela SE5.
Totvs custom tabs box items
default
no
referencia
exemplo
Exemplo: LP597
Preencher no campo CT5_HIST: U_HIST597()
Criar a seguinte função:
Bloco de código
language
java
theme
Midnight
firstline
1
linenumbers
true
User function HIST597()
Local aSaveSE5 := SE5->(GetArea())
Local aSaveSE2 := SE2->(GetArea())
Local xRet := Nil
If REGVALOR <> 0
SE2->(dbGoto(REGVALOR))
xRet:= "TESTE TIPO: "+ SE2->E2_TIPO + " RECNO: "+ ALLTRIM(STR(SE2->(RECNO())))
Else
xRet:= "TESTE TIPO: "+ SE5->E5_TIPO + " TIPODOC: "+SE5->E5_TIPODOC + " RECNO: "+ ALLTRIM(STR(SE5->(RECNO())))
Endif
RestArea(aSaveSE2)
RestArea(aSaveSE5)
Return(xRet)
Informações
title
Informações
Contabilização do tipo DIC
A contabilização do título do tipo DIC gerado pela compensação, pode ser contabilizada pela LP 510 - Inclusão de títulos a pagar, pois o mesmo é gerado através da rotina automática do FINA050 (Contas a Pagar).
Contabilização dos impostos gerados na compensação.
A contabilização dos impostos gerados pela compensação, podem ser contabilizados, pela própria LP 597 - Compensação a pagar, através das variáveis:NPIS340, NCOF340, NCSL340, NIRF340, NISS340.
Este Ponto de Entrada permite a manipulação do Array aTitulos, para alteração do listBox da tela de compensação. Documentação: http://tdn.totvs.com/x/gKRc
F340TOTCP
ponto de entrada F340TOTCP() possibilita manipular os valores totais de títulos a serem compensados.
O ponto de entrada F340MKTIT permite a customização dos títulos já selecionados na markbrowse. Permite a manipulação da array que contem os títulos, e, com a 8º ocorrência desta, contendo um valor logico que indica se titulo marcado ou não. Documentação:http://tdn.totvs.com/x/L6Rc
F340NAT
F340_PA
O ponto de entrada F340_PA sera executado apos contabilizar cada titulo de compensacao a pagar.
O ponto de entrada F340SE5 manipula Movimentos Bancários Processados tendo como parâmetro o Recno dos registros SE5 que foram utilizados na Compensação.
O ponto de entrada FA340FILT é executado na montagem da tabela de títulos a compensar e será utilizado para escolher quais títulos serão compensados Documentação: http://tdn.totvs.com/x/rqNc
F340CMP
Tem como finalidade permitir ao usuario calcular o titulo de NDF ou PA e sera chamado na funcao Fa340Tit()
Ponto de Entrada permite a alteração do indice, mudando assim a ordem dos titulos exibidos da markbrowse para a compensação a pagar Documentação: http://tdn.totvs.com/x/r6Nc
F340ValOk
O ponto de entrada F340ValOk, permite o controle dos dados e da confirmação da tela de compensação de títulos a pagar Documentação: http://tdn.totvs.com/x/fKVc
F340TOTCP
Possibilita manipular os valores totais de títulos a serem compensados.
Ponto de Entrada que permite validar se um título será ou não compensado. Documentação: http://tdn.totvs.com/x/J6Vc
F340LEGE
SE5FI340
Ponto de Entrada que permite realizar gravações complementares na tabela SE5, após a gravação do movimento bancário do título principal na compensação a pagar automática Documentação: http://tdn.totvs.com/x/56Rc
SE5FI341
Ponto de Entrada que permite realizar gravações complementares na tabela SE5, após a gravação do movimento bancário do título de Adiantamento na compensação a pagar automática. Documentação: http://tdn.totvs.com/x/6KRc
F340GERNDF
Possibilidade de gravar campos adicionais na inclusão da NDF gerada pela compensação à pagar.
Regras para geração de correção monetária no processo de compensação do contas a pagar:
Compensação de títulos com taxas contratadas iguais - Será gerado o valor de correção monetária apenas se a taxa do movimento for alterada na tela de compensação. Nesse caso, a correção monetária estará vinculada ao título posicionado no início da compensação (e não aos títulos selecionados posteriormente) e o valor será com base na diferença entre o valor com a taxa contratada e o valor considerando a nova taxa informada (não há uso da taxa diária);
Compensação de títulos sem taxas contratadas - O valor de correção monetária será gerado para cada título envolvido no processo de compensação, caso haja uma diferença entre o valor da taxa no dia da inclusão do título e o valor da taxa no dia da baixa da compensação. Obs.: Se houver uma alteração no valor da taxa no momento da compensação, esse valor será considerado apenas para o título posicionado e sua correção monetária será referente a diferença entre o valor considerando a nova taxa (informada em tela) e o valor considerando a taxa no dia da inclusão. Para todos os demais títulos envolvidos nesse processo de compensação, será considerada a taxa do dia da compensação e a taxa do dia da inclusão.
Compensação de títulos com taxas contratadas diferentes - Por padrão, o sistema não permite realizar esse tipo de compensação. Porém, é possível habilitá-la através do parâmetro MV_CMTXCON (https://tdn.totvs.com/x/7ZVWFw). Nesse caso, a correção monetária será gerada sempre vinculada a nota. O valor será referente a diferença do valor da nota e o valor do pagamento compensado.
Taxa informada na compensação - Por padrão o sistema assume a taxa informada na compensação apenas para o titulo de partida (posicionado). Porém é possível definir se a taxa informada será considerada em todo o processo através do parâmetro MV_TXPRCON(parâmetro MV_TXPRCON). Nesse caso, a taxa informada será considerada não só para o título de partida mas também para os selecionados, de acordo com a moeda. Caso seja usada a taxa por processo a correção monetária se dará pela variação da taxa do título (Taxa do dia ou Taxa contratada) com a taxa informada. Caso não seja informado taxa o sistema segue o comportamento padrão.
Aviso
title
Importante
Para geração de correção monetária, é necessário que o parâmetro MV_CALCCM esteja habilitado.
Deck of Cards
id
DIC - Diferença de Impostos Compensados
effectType
fade
Card
id
3
label
DIC acumulado
effectType
fade
Aviso
title
Atenção
O processo descrito refere-se apenas ao cenário liquido:
Para o cenário bruto as compensações ocorrem sem a geração de DIC acumulado.
DIC acumulado
Ao realizar uma compensação de NF que possui retenção na baixa com múltiplos pagamentos antecipados que não possua configuração para retenção, será gerado um único título do tipo DIC para o último PA compensado, esse DIC terá o valor acumulado da diferença de imposto calculados dos demais PAs.
Exemplo: Compensação entre um 3 PAs sem retenção X 1 NF com retenção
NF de R$ 1000,00
Com PCC na baixa (4,65%) = R$ 46,50
Valor líquido total = R$ 1000,00 (Valor da NF) - R$ 46,50 (Impostos na baixa) = R$ 953,50
Saldo NF = R$ 1000,00
PA 1 de R$ 300,00
Sem impostos
Valor líquido = R$ 300,00
Saldo PA= R$ 300,00
PA 2 de R$ 300,00
Sem impostos
Valor líquido = R$ 300,00
Saldo PA= R$ 300,00
PA 3 de R$ 300,00
Sem impostos
Valor líquido = R$ 300,00
Saldo PA= R$ 300,00
O cálculo da compensação será feito internamente pela rotina em três partes, como se estivesse compensando cada PA separadamente, gerando o DIC somente na última compensação.
Ao realizar uma compensação de uma NF que possua retenção com PAs sem retenção onde o valor liquido da NF seja o total dos PAs a rotina não gerará DIC.
Exemplo: Compensação total entre um 2 PAs sem imposto X NF com impostos
NF de R$ 1000,00
Com PCC na Baixa (4,65%) = R$ 46,50
Valor líquido total = R$ 1000,00 (Valor da NF) - R$ 46,50 (Impostos na baixa) = R$ 953,50
Saldo NF = R$ 1000,00
PA de R$ 500,00
Sem impostos
Valor líquido = R$ 500,00
Saldo PA= R$ 500,00
PA de R$ 453,50
Sem impostos
Valor líquido = R$ 453,50
Saldo PA= R$ 453,50
Compensar 1 NF x 2 PAs:
Repare que o valor liquido da nota é igual é soma dos PAs sendo assim não foi pago nenhum valor a mais para o fornecedor:
Será gerado as retenções configuradas para serem calculadas na baixa, no exemplo, PCC no valor de R$ 23,25 referente a primeira compensação.
Será gerado as retenções configuradas para serem calculadas na baixa, no exemplo, PCC no valor de R$ 23,25 referente a segunda compensação.
Serão excluídas as retenções geradas pela compensação, no exemplo, o PCC no valor de R$ 23,25
Saldo NF = 500,00
Saldo PA = 453,50
O sistema avalia as compensações anteriores a última estornada e identifica se será necessário a geração de um novo DIC.
Valor do DIC gerado = 23,25 (DIC calculado na 1º compensação) = 23,25
O título DIC gerado será referente a última compensação, no exemplo acima seria o 1º PA no valor de 500.
Aviso
title
Atenção
Para compensações realizadas de forma individual (1 PA x 1 NF) o sistema gera o DIC independente, ou seja, um DIC para cada compensação. Não haverá geração de DIC acumulado.
Card
id
1
label
Contabilização do DIC
effectType
fade
Contabilização do DIC
A inclusão do título do tipo DIC pode ser contabilizado através do LP 510 (Contas a Pagar - Inclusão de títulos).
A exclusão do título do tipo DIC pode ser contabilizada através do LP 515 (Contas a Pagar - Exclusão de títulos).
Obs. Para que a sejam contabilizados os LPs 510 e 515 a pergunta: Contabiliza Online da rotina Contas a Pagar (FINA050) deve estar como Sim.
Card
id
4
label
Geração do DIC no momento do estorno
effectType
fade
Aviso
title
Atenção
O processo descrito refere-se apenas ao cenário liquido:
Para compensações realizadas com mais de um título somente será permitido o estorno/exclusão por ordem de compensação. Da última compensação para a primeira, qualquer ordem diferente desta a rotina apresentará um alerta bloqueando o processo.
Ao realizar o estorno/exclusão da última compensação a rotina excluirá também o título do tipo DIC. Após esse processo caso seja necessário será gerado um novo DIC referente as compensações anteriores com base no ultimo PA compensado.
O sistema avaliará as compensações anteriores a última estornada e identifica se será necessário a geração de um novo DIC.
Valor do DIC gerado = 13,95 (DIC calculado na 1º compensação) = 13,95
Neste momento será gerado um novo título DIC referente a última compensação, no exemplo acima seria o 1º PA no valor de 300.
09. MAIS INFORMAÇÕES
Informações
title
NOTITSEL no estorno de compensação
Ao apresentar o assistente NOTITSEL no estorno de compensação, valide o campo E5_FILORIG nos registros da compensação e também verifique os campos da chave (Prefixo+número+parcela+tipo+fornecedor+loja) das tabelas SE2 e SE5. Os campos devem possuir tamanhos correspondentes nas duas tabelas.
Card documentos
Informacao
A partir do release 12.1.XX, a compensação não utilizara mais o parâmetro MV_BXTXA
Titulo
IMPORTANTE!
05. CONTABILIDADE
A contabilização dos processos aplicados a uma compensação contas a pagar via módulo Financeiro é feita pelos lançamentos padrões abaixo:
...
LP
...
Fato Gerador
...
ON
...
OFF (CTBAFIN)
...
title
Informações
Contabilização do tipo DIC
A contabilização do título do tipo DIC gerado pela compensação, pode ser contabilizada pela LP 510 - Inclusão de títulos a pagar, pois o mesmo é gerado através da rotina automática do FINA050 (Contas a Pagar).
Contabilização dos impostos gerados na compensação.
A contabilização dos impostos gerados pela compensação, podem ser contabilizados, pela própria LP 597 - Compensação a pagar, através das variáveis:NPIS340, NCOF340, NCSL340, NIRF340, NISS340.
Para os demais casos, a contabilização permanece a mesma, conforme a documentação abaixo:
Este Ponto de Entrada permite a manipulação do Array aTitulos, para alteração do listBox da tela de compensação. Documentação: http://tdn.totvs.com/x/gKRc
...
ponto de entrada F340TOTCP() possibilita manipular os valores totais de títulos a serem compensados.
O ponto de entrada F340MKTIT permite a customização dos títulos já selecionados na markbrowse. Permite a manipulação da array que contem os títulos, e, com a 8º ocorrência desta, contendo um valor logico que indica se titulo marcado ou não. Documentação:http://tdn.totvs.com/x/L6Rc
...
O ponto de entrada F340_PA sera executado apos contabilizar cada titulo de compensacao a pagar.
O ponto de entrada F340SE5 manipula Movimentos Bancários Processados tendo como parâmetro o Recno dos registros SE5 que foram utilizados na Compensação.
O ponto de entrada FA340FILT é executado na montagem da tabela de títulos a compensar e será utilizado para escolher quais títulos serão compensados Documentação: http://tdn.totvs.com/x/rqNc
...
Tem como finalidade permitir ao usuario calcular o titulo de NDF ou PA e sera chamado na funcao Fa340Tit()
Ponto de Entrada permite a alteração do indice, mudando assim a ordem dos titulos exibidos da markbrowse para a compensação a pagar Documentação: http://tdn.totvs.com/x/r6Nc
...
O ponto de entrada F340ValOk, permite o controle dos dados e da confirmação da tela de compensação de títulos a pagar Documentação: http://tdn.totvs.com/x/fKVc
...
Possibilita manipular os valores totais de títulos a serem compensados.
Ponto de Entrada que permite validar se um título será ou não compensado. Documentação: http://tdn.totvs.com/x/J6Vc
...
Ponto de Entrada que permite realizar gravações complementares na tabela SE5, após a gravação do movimento bancário do título principal na compensação a pagar automática Documentação: http://tdn.totvs.com/x/56Rc
...
Ponto de Entrada que permite realizar gravações complementares na tabela SE5, após a gravação do movimento bancário do título de Adiantamento na compensação a pagar automática. Documentação: http://tdn.totvs.com/x/6KRc
...
Possibilidade de gravar campos adicionais na inclusão da NDF gerada pela compensação à pagar.