Histórico da Página
...
Informações | ||
---|---|---|
| ||
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. |
Informações | ||
---|---|---|
| ||
O processo de seleção de filiais, bem como o de baixa em múltiplas filiais através da rotina de baixas automáticas unificada estará disponível apenas a partir de abril/2022 |
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.
executar a baixa automática de títulos em aberto, baixando vários títulos de uma única vez.
Os títulos são selecionados pelo usuário, mediante uma filtragem de portador, intervalo de vencimentos, motivo de baixa e borderô (caso os títulos estejam relacionados a um borderô), possibilitando a baixa de vários borderôs dentro de um intervalo especificado pelo usuário (de/até). O sistema permite ainda que seja efetuada a baixa de um ou mais títulos com cheque automaticamente.
02. MAPA MENTAL
03
...
. EXECUÇÃO
- Manual
Procedimento efetuado de forma manual via rotina Compensação contas a pagar (FINA340Baixas Pagar Automática (FINA090), com exibição das telas envolvidas no processo e necessitando de ações/comandos do usuário
...
Procedimento realizado de forma automática na rotina de Compensação contas a pagar (FINA340Baixas Pagar Automática (FINA090), sem exibição de telas ou necessidade de interação do usuário.
Utilizado em customizações onde o processo não necessita de interações do usuário (MSEXECAUTO)
Bloco de códigoinfo | ||||||||
---|---|---|---|---|---|---|---|---|
| ||||||||
#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
|
03. OPERAÇÕES
- Consulta Rateio Multi Naturezas
Apresenta consulta com o rateio de múltiplas naturezas do título posicionado no browse.
Esta apresentação depende da ativação do processo de rateios de múltiplas naturezas para contas a pagar (parâmetro MV_MULNATP)
- Tracker contábil
Apresenta consulta com o lançamento contábil do título, caso o mesmo já tenha sido contabilizado.
...
effectDuration | 0.5 |
---|---|
history | false |
id | samples |
effectType | fade |
Card | ||||||
---|---|---|---|---|---|---|
| ||||||
Procedimento para baixa de títulos a pagar de quaisquer naturezas do módulo Financeiro. Ao acionar esta opção, verifique o preenchimento dos principais campos e confirme o procedimento. Exemplo:
Títulos: Exibe apenas títulos que não estão em borderô Borderôs: Carrega apenas títulos em borderô
|
...
id | 2 |
---|---|
label | Pesquisar |
Permite a pesquisa de informações para o título selecionado com a utilização de filtros que as ordenam de acordo com a característica desejada.
O índice escolhido na pesquisa será usado para ordenar a tela de seleção de títulos, permitindo que o usuário escolha qual a ordenação da tela de seleção.
Exemplo:
- filial+ordem pagto.
...
id | 1 |
---|---|
label | Perguntas (F12) |
effectType | fade |
...
Informe se "SIM" para que a contabilização dos lançamentos referentes a baixa de contas a pagar sejam realizados online, ou "NAO", caso contrario.
...
Informe a opção “Sim” para que as baixas a pagar automáticas gerem os cheques para o pagamento dos respectivos títulos, o “Não”, caso contrário.
Informações | ||
---|---|---|
| ||
Por meio da rotina de Liberação de Cheques o sistema permite que os cheques gerados possam ser liberados on-line, de acordo com o preenchimento do parâmetro MV_LIBCHEQ. Quando o conteúdo é S, os cheques são liberados automaticamente e quando é N devem, obrigatoriamente, passar por esta opção. A movimentação bancária referente aos cheques ocorre quando houver liberação on-line ou após o procedimento de liberação de cheques. |
...
Indica se a contabilização do LP 532, baseada na variável VALOR, será feita desmembrada Borderô a Borderô ou a contabilização de todos os borderôs em somente um total.
...
Informe o tipo de desconto concebido ao(s) título(s), caso houver. Esta informação será utilizada no Fiscal, bloco F100 do SPED.
ATENÇÃO - Esta pergunta se aplica somente a localização BRA (Brasil)
...
Selecione SIM para que seja possível selecionar as filiais a serem consideradas para o processo.
Caso selecione NÃO, apenas a filial atual será considerada para o processo.
Card | ||||
---|---|---|---|---|
| ||||
Procedimento para permitir que um processo de baixa seja cancelado de forma automática, dentro de determinadas condições. |
Card | ||||
---|---|---|---|---|
| ||||
Nesta opção é possível localizar e exibir os lançamentos contábeis a partir do documento que os originou. |
Card | ||||
---|---|---|---|---|
| ||||
Apresenta quadro das legendas e seus significados referenciados a situação do título de contas a pagar. A legenda pode ser visualizada na primeira coluna do browse. |
04. PARÂMETROS APLICADOS
Lista de parâmetros aplicados ao FINA090 e seu processamento
...
id | 2 |
---|---|
label | Parâmetros (SX6) |
effectType | fade |
...
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
...
530
...
Na baixa de títulos a pagar
...
X
...
X
...
532
...
Na baixa de títulos a pagar em Borderô
...
X
...
X
...
513
...
Na inclusão de movimento bancário de adiantamento
Vide parâmetro MV_CTMOVPA
...
X
...
X
...
title | Borderô |
---|
Borderôs: Para títulos normais o lançamento padrão será o 532, já para títulos de adiantamento o lançamento padrão é o 513
Os impostos com fato gerador "Caixa" (na baixa) gerados pelo borderô, deverão ser contabilizados pelo LP 530.
Observação: Caso o parâmetro "Contabiliza por?" esteja configurado como "Borderô/borderô" o LP 513 não será contabilizado.
Histórico.
Caso necessário resgatar o número do borderô e informar no histórico no momento da contabilização, deverá ser utilizado o campo SEA→EA_NUMBOR.
Observação: Essa opção irá retornar o valor do Borderô correto somente quando o parâmetro "Contabiliza por?" esteja configurado como "Borderô/borderô".
Informações | ||
---|---|---|
| ||
Contabilização por tipo de baixa: Títulos: Para títulos normais o lançamento padrão será o 530, já para títulos de adiantamento o lançamento padrão é o 513. |
06. TABELAS RELACIONADAS
- SE2 - Cadastro do contas a pagar
- SE5 - Cadastro de cheques
- SED - Cadastro de Naturezas.
- SA2 - Cadastro de Fornecedores.
- FK2 - Baixas a Pagar.
- FK3 - Impostos Calculados.
- FK4 - Impostos Retidos.
- FK5 - Movimentos Bancários.
- FK6 - Valores acessórios.
- FK7 - Tabela Auxiliar
- FKA - Rastreio de movimento.
07. PONTOS DE ENTRADA
...
O ponto de entrada F340BROW sera chamado antes do browse e podera ser utilizado no tratamento dos dados apresentados no browse.
Documentação: http://tdn.totvs.com/x/56Jc
...
O ponto de entrada indica se haverá a validação de liberação do titulo no momento da compensação.
Documentação: http://tdn.totvs.com/x/_a2FDg
...
O PE é chamado nas validações do parâmetro MV_DATAFIN existentes na Compensação CP.
Documentação: http://tdn.totvs.com/x/6qJc
...
Neste ponto de entrada é possível alterar as taxas das moedas que serão utilizadas na compensação do contas a pagar.
Documentação: http://tdn.totvs.com/x/aK_FDg
...
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.
Documentação: http://tdn.totvs.com/x/nYIbCQ
...
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.
Documentação: http://tdn.totvs.com/x/7aJc
...
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.
Documentação: http://tdn.totvs.com/x/sAKqC
...
O ponto de entrada F340GRV valida a inclusão na rotina de Compensação de Contas a Pagar (FINA340)
Documentação: http://tdn.totvs.com/x/IgBzB
...
Este ponto de entrada permite que seja criada uma regra para informar quando será Estornado ou não.
Documentação: http://tdn.totvs.com/x/j7GFDg
...
Ponto de Entrada chamado quando realizada a confirmação do estorno de compensação.
Documentação: http://tdn.totvs.com/x/zoFdAg
...
Gravação de dados adicionais no estorno da compensação
Documentação: http://tdn.totvs.com/x/iqVc
...
Ponto de entrada permite gravação de informação complementares no momento do estorno da compensação.
Documentação: http://tdn.totvs.com/x/W7KFDg
...
Complemento de query para cancelamento da compensação
Documentação: http://tdn.totvs.com/x/lgwGD
...
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()
Documentação: http://tdn.totvs.com/x/6aJc
...
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.
Documentação: http://tdn.totvs.com/x/nYIbCQ
...
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.
Documentação: http://tdn.totvs.com/x/kvdbDQ
...
Permite implementar uma expressão complementar no filtro de titulos.
Documentação: http://tdn.totvs.com/x/66Jc
...
Esse ponto de entrada permite criar um novo filtro para a rotina de Compensação Contas a Pagar - FINA340.
Documentação: http://tdn.totvs.com/x/r_xZE
08. DEMAIS REGRAS DE COMPENSAÇÃO
...
id | Regras |
---|---|
effectType | fade |
...
id | 1 |
---|---|
label | Correção monetária |
effectType | fade |
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 | ||
---|---|---|
| ||
Para geração de correção monetária, é necessário que o parâmetro MV_CALCCM esteja habilitado. |
...
id | DIC - Diferença de Impostos Compensados |
---|---|
effectType | fade |
...
id | 3 |
---|---|
label | DIC acumulado |
effectType | fade |
...
title | Atenção |
---|
O processo descrito refere-se apenas ao cenário liquido:
MV_PABRUTO = 2 (Líquido)
MV_COMPCP = .T.
MV_BP10925 = 2
MV_PAPRIME = 1
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.
1ª compensação - Compensar NF x PA:
| ||
Caso a contabilização seja online a baixa via rotina automática só será processada se a contabilização não estiver configurada para demonstrar a tela em casos de erro no lançamento (falta de conta, débito/crédito não batem, etc). Caso utilize a configuração para que seja demonstrado a tela de contabilização em caso de erro no lançamento, a rotina de baixa automática via execauto apenas será processada se a contabilização for Off-Line. |
Bloco de código | ||||||||
---|---|---|---|---|---|---|---|---|
| ||||||||
#INCLUDE "PROTHEUS.CH"
/*
Baixa Automática
Baixa Automática
----------------------
Estrutura da aRetAuto - baixa automática
---------------------------------------------------------
aRetAuto [1] := aRecnos (array contendo os Recnos dos registros a serem baixados)
aRetAuto [2] := cBanco (Banco da baixa)
aRetAuto [3] := cAgencia (Agencia da baixa)
aRetAuto [4] := cConta (Conta da baixa)
aRetAuto [5] := cCheque (Cheque da Baixa - apenas Contas a Pagar)
aRetAuto [6] := cLoteFin (Lote Financeiro da baixa)
aRetAuto [7] := cNatureza (Natureza do movimento bancario - apenas Contas a Pagar)
aRetAuto [8] := dBaixa (Data da baixa)
aRetAuto [9] := nTipoBx (1 = Baixa somente titulos que não estao em bordero ou nTipoBx -> 2 = Baixa somente titulos em bordero)
aRetAuto [10]:= cBcoDe (Portador de)
aRetAuto [11]:= cBcoAte (Portador Até)
aRetAuto [12]:= dVencIni (Vencimento Inicial)
aRetAuto [13]:= dVencFim (Vencimento Final)
aRetAuto [14]:= cBord090I (Borderô Inicial)
aRetAuto [15]:= cBord090F (Borderô Final)
aRetAuto [16]:= cBenef090 (Beneficiário do Cheque)
aRetAuto [17]:= cHistor (Historico do Cheque)
aRetAuto [18]:= lMultNat (Rateio Multiplas naturezas)
aRetAuto [19]:= aVendor (Array para a baixa de vendor)
Exemplo: MSExecAuto({|x, y| FINA090(x, y)}, 3, aRetAuto)
Para definir o Motivo de Baixa (caso não informado, o default é NORMAL):
Private _cAutoMotBx := "DEBITO CC"
Cancelamento de baixa:
----------------------
Estrutura da aRetAuto - Cancelamento automático de baixas
---------------------------------------------------------
nRadio := aRetAuto[1] //1 = Cancela Baixa de titulos titulos 2 = cancela baixa somente titulos em bordero
cBord1 := aRetAuto[2] // Borderô De
cBord2 := aRetAuto[3] // Borderô Até
cDatB1 := aRetAuto[4] // Dt. Baixa Inicial
cDatB2 := aRetAuto[5] // Dt. Baixa Final
cFor1 := aRetAuto[6] // Fornecedor De
cFor2 := aRetAuto[7] // Fornecedor Até
aSelFil := aRetAuto[8] // Array com as filiais a serem consideradas na seleção dos titulos
*/
/*
------------------------------------------------------------------------------------
FAut090
Exemplos de processos do FINA090 Automático
------------------------------------------------------------------------------------
*/
User Function FAut090()
Local nOpca := 0
Local nRadio := 1
While .T.
DEFINE MSDIALOG oDlg FROM 094,1 TO 230,293 TITLE "Baixa Automatica" PIXEL
@ 05,07 TO 40, 140 OF oDlg PIXEL
@ 10,10 RADIO oRadio VAR nRadio;
ITEMS "Baixa Automatica","Baixa Automatica - Vendor","Cancelamento Automatico de Baixas";
3D SIZE 100,10 OF oDlg PIXEL
DEFINE SBUTTON FROM 45,085 TYPE 1 ENABLE OF oDlg ACTION (nOpca := 1, oDlg:End())
DEFINE SBUTTON FROM 45,115 TYPE 2 ENABLE OF oDlg ACTION (nOpca := 0, oDlg:End())
ACTIVATE MSDIALOG oDlg CENTERED
If nOpca == 1
If nRadio == 1 //Baixa Automática
FBx090Aut()
Loop
ElseIf nRadio == 2 //Baixa Automática - Vendor
FBx090VEN()
Loop
Else //Cancelamento Automático de Baixa
FBx090Can()
Loop
Endif
Else
Exit
Endif
EndDo
Return
/*
------------------------------------------------------------------------------------
FBx090Aut
Função para realizar baixa automática - Multi-Filiais
Ajustar pergunta Seleciona Filiais - SIM
------------------------------------------------------------------------------------
*/
Static Function FBx090Aut()
Local aRecnos := {}
Local cPref := "091"
Local cFil1 := "D MG 01 "
Local cTitulo1 := "FIN000001"
Local cFil2 := "D MG 02 "
Local cTitulo2 := "FIN000002"
Local cParcel := " "
Local cTipo := "NF "
Local cForne := "FIN102"
Local cLoja := "01"
Local cBanco := "001"
Local cAgencia := "00001"
Local cConta := "0000000001"
Local cCheque := ""
Local dBaixa := dDataBase
Local nTipoBx := 1
Local cBcoDe := " "
Local cBcoAte := "ZZZ"
Local dVencIni := dDataBase
Local dVencFim := dDataBase
Local cBordIni := " "
Local cBordFim := "ZZZZZZ"
Local cBenef090 := ""
Local cHistor := ""
Local lMultNat := .F.
Local cLoteFin := ""
Local cNatureza := PadR("PEQ000",Len( SE2->E2_NATUREZ))
Local aFilBx := {cFil1,cFil2}
Private _cAutoMotBx := "DEBITO CC" //Caso não informe esta variável, o motivo de baixa será NORMAL
//-- variaveis utilizadas para o controle de erro da rotina automatica
Private lMsErroAuto := .F.
Private lAutoErrNoFile := .T.
//-- Data base
dDataBase := CTOD("14/07/2016")
dBaixa := dDataBase
dVencIni := dDataBase
dVencFim := dDataBase
//-- Array com as informações para selecionar os títulos
aAdd(aRecnos,PesqSE2(cFil1,cPref, cTitulo1, cParcel, cTipo, cForne, cLoja))
aAdd(aRecnos,PesqSE2(cFil2,cPref, cTitulo2, cParcel, cTipo, cForne, cLoja))
aRetAuto := {}
aAdd(aRetAuto,aRecnos ) //(array contendo os Recnos dos registros a serem baixados)
aAdd(aRetAuto,cBanco ) //(Banco da baixa)
aAdd(aRetAuto,cAgencia ) //(Agencia da baixa)
aAdd(aRetAuto,cConta ) //(Conta da baixa)
aAdd(aRetAuto,cCheque ) //(Cheque da Baixa - apenas Contas a Pagar)
aAdd(aRetAuto,cLoteFin ) //(Lote Financeiro da baixa)
aAdd(aRetAuto,cNatureza ) //(Natureza do movimento bancario - apenas Contas a Pagar)
aAdd(aRetAuto,dBaixa ) //(Data da baixa)
aAdd(aRetAuto,nTipoBx ) //(1 = Baixa somente titulos que não estao em bordero ou nTipoBx -> 2 = Baixa somente titulos em bordero)
aAdd(aRetAuto,cBcoDe ) //(Portador de)
aAdd(aRetAuto,cBcoAte ) //(Portador Até)
aAdd(aRetAuto,dVencIni ) //(Vencimento Inicial)
aAdd(aRetAuto,dVencFim ) //(Vencimento Final)
aAdd(aRetAuto,cBordIni ) //(Borderô Inicial)
aAdd(aRetAuto,cBordFim ) //(Borderô Final)
aAdd(aRetAuto,cBenef090 ) //(Beneficiário do Cheque)
aAdd(aRetAuto,cHistor ) //(Historico do Cheque)
aAdd(aRetAuto,lMultNat ) //(Rateio Multiplas naturezas)
aAdd(aRetAuto,aFilBx ) //(Filiais para seleção dos títulos paraa baixa - apenas se Seleciona Filiais = Sim)
//-- Realiza baixa
//3 = inclusao
MSExecAuto({|x, y| FINA090(x, y)}, 3, aRetAuto)
If lMsErroAuto
MOSTRAERRO()
Endif
Return
/*
------------------------------------------------------------------------------------
FBx090VEN
Função para realizar baixa automática pelo motivo Vendor
------------------------------------------------------------------------------------
*/
Static Function FBx090VEN()
Local aRetAuto := {}
Local aRecnos := {}
Local cPref := "PEQ"
Local cTitulo := "CT090A090"
Local cTituloV := "CT090V090"
Local cParcel := PadR(" ",Len( SE2->E2_PARCELA ))
Local cTipo := "DP "
Local cNatureza := "PEQ000 "
Local cForne := "PEQ000"
Local cLoja := "00"
Local cCheque := ""
Local cLoteFin := ""
Local cBanco := "001"
Local cAgencia := "00001"
Local cConta := "0000000001"
Local dBaixa := dDatabase
Local cFil := "D MG 01 "
Local nTipoBx := 1
Local cBcoDe := " "
Local cBcoAte := "ZZZ"
Local dVencIni := dDatabase
Local dVencFim := dDatabase
Local cBordIni := " "
Local cBordFim := "ZZZZZZ"
Local cBenef090 := ""
Local cHistor := "BAIXA POR VENDOR"
Local lMultNat := .F.
Local cContrato := "FINA090_CT090"
Local dDtVencV := CTOD("20/12/2021")
Local nTxAcresV := 5
Local nValorV := 1000
Local cNatV := "VENDOR "
Local aFilBx := {}
Local aVendor := {cContrato, cBanco, cAgencia, cPref, cTituloV, cParcel, cTipo, dDtVencV, nTxAcresV, cNatV, nValorV}
Private _cAutoMotBx := "VENDOR"
//-- variaveis utilizadas para o controle de erro da rotina automatica
Private lMsErroAuto := .F.
Private lAutoErrNoFile := .T.
//-- Data base
dDataBase := CTOD("14/12/2021")
dBaixa := dDataBase
dVencIni := dDataBase
dVencFim := dDataBase
aAdd(aRecnos,PesqSE2(cFil,cPref, cTitulo,cParcel, cTipo, cForne, cLoja))
aAdd(aRetAuto,aRecnos ) //(array contendo os Recnos dos registros a serem baixados)
aAdd(aRetAuto,cBanco ) //(Banco da baixa)
aAdd(aRetAuto,cAgencia ) //(Agencia da baixa)
aAdd(aRetAuto,cConta ) //(Conta da baixa)
aAdd(aRetAuto,cCheque ) //(Cheque da Baixa - apenas Contas a Pagar)
aAdd(aRetAuto,cLoteFin ) //(Lote Financeiro da baixa)
aAdd(aRetAuto,cNatureza ) //(Natureza do movimento bancario - apenas Contas a Pagar)
aAdd(aRetAuto,dBaixa ) //(Data da baixa)
aAdd(aRetAuto,nTipoBx ) //(1 = Baixa somente titulos que não estao em bordero ou nTipoBx -> 2 = Baixa somente titulos em bordero)
aAdd(aRetAuto,cBcoDe ) //(Portador de)
aAdd(aRetAuto,cBcoAte ) //(Portador Até)
aAdd(aRetAuto,dVencIni ) //(Vencimento Inicial)
aAdd(aRetAuto,dVencFim ) //(Vencimento Final)
aAdd(aRetAuto,cBordIni ) //(Borderô Inicial)
aAdd(aRetAuto,cBordFim ) //(Borderô Final)
aAdd(aRetAuto,cBenef090 ) //(Beneficiário do Cheque)
aAdd(aRetAuto,cHistor ) //(Historico do Cheque)
aAdd(aRetAuto,lMultNat ) //(Rateio Multiplas naturezas)
aAdd(aRetAuto,aFilBx ) //(Filiais para seleção dos títulos paraa baixa - apenas se Seleciona Filiais = Sim)
aAdd(aRetAuto,aVendor ) //(Array com dados do Vendor)
//-- Realiza baixa
//3 = inclusao
MSExecAuto({|x, y| FINA090(x, y)}, 3, aRetAuto)
If lMsErroAuto
MOSTRAERRO()
Endif
Return
/*
------------------------------------------------------------------------------------
FBx090Can
Função para realizar cancelamento automático de baixas
------------------------------------------------------------------------------------
*/
Static Function FBx090Can()
Local cFil1 := "M PR 01 "
Local cFil2 := "M PR 02 "
Local cForne := "FICN13"
Local cForne2 := "FICN14"
Local aFiliais := {cFil1,cFil2}
//-- variaveis utilizadas para o controle de erro da rotina automatica
Private lMsErroAuto := .F.
Private lAutoErrNoFile := .T.
//Data base
dDataBase := CTOD("09/08/2019")
dBaixa := dDataBase
aRetAuto := {}
aAdd(aRetAuto,1 ) //1 = Baixa somente titulos que não estao em bordero ou nTipoBx -> 2 = Baixa somente titulos em bordero
aAdd(aRetAuto," " ) // Bordero De
aAdd(aRetAuto,"ZZZZZ" ) // Bordero Até
aAdd(aRetAuto,dDataBase ) // Dt. Baixa Inicial
aAdd(aRetAuto,dDataBase ) // Dt. Baixa Final
aAdd(aRetAuto,cForne ) // Fornecedor De
aAdd(aRetAuto,cForne2 ) // Fornecedor Ate
aAdd(aRetAuto,aFiliais ) //Títulos Baixados
//-- Realiza Cancelamento da baixa
//4 = Cancelamento
MSExecAuto({|x, y| FINA090(x, y)}, 4, aRetAuto)
If lMsErroAuto
MOSTRAERRO()
Endif
Return
/*
------------------------------------------------------------------------------------
PesqSE2
Função para retornar o Recno do título a ser baixado
@param cFilOri , Character, Filial de origem do título (E2_FILORIG)
@param cPrefOri , Character, Prefixo do titulo (E2_PREFIXO)
@param cNumOri , Character, Número do titulo (E2_NUM)
@param cParcOri , Character, Parcela do titulo (E2_PARCELA)
@param cTipoOri , Character, Tipo do titulo (E2_TIPO)
@param cCfOri , Character, Fornecedor do titulo (E2_FORNECE)
@param cLojaOri , Character, Loja do titulo (E2_LOJA)
@retorno nRec, Numeric, Recno do registro a ser baixado
------------------------------------------------------------------------------------
*/
Static Function PesqSE2(cFilOri, cPref, cTitulo, cParcel, cTipo, cForne, cLoja )
Local aAreaSE2 := SE2->(GetArea())
Local nRec := 0
DEFAULT cFilOri := cFilAnt
SE2->(DbSetOrder(1))
If DbSeek (xFilial("SE2", cFilOri) + cPref + cTitulo + cParcel + cTipo + cForne + cLoja)
nRec := SE2-> (RECNO())
Endif
RestArea(aAreaSE2)
Return nRec
|
04. OPERAÇÕES
Deck of Cards | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
05. PARÂMETROS APLICADOS
Lista de parâmetros aplicados ao FINA090 e seu processamento
Deck of Cards | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
06. 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 |
530 | Na baixa de títulos a pagar | X | X |
532 | Na baixa de títulos a pagar em Borderô | X | X |
513 | Na inclusão de movimento bancário de adiantamento | X | X |
Informações | ||
---|---|---|
| ||
Borderôs: Para títulos normais o lançamento padrão será o 532, já para títulos de adiantamento o lançamento padrão é o 513 Os impostos com fato gerador "Caixa" (na baixa) gerados pelo borderô, deverão ser contabilizados pelo LP 530. Histórico. Caso necessário resgatar o número do borderô e informar no histórico no momento da contabilização, deverá ser utilizado o campo SEA→EA_NUMBOR. |
Informações | ||
---|---|---|
| ||
Contabilização por tipo de baixa: Títulos: Para títulos normais o lançamento padrão será o 530, já para títulos de adiantamento o lançamento padrão é o 513. |
07. TABELAS RELACIONADAS
- SE2 - Cadastro do contas a pagar
- SE5 - Cadastro de cheques
- SED - Cadastro de Naturezas.
- SA2 - Cadastro de Fornecedores.
- FK2 - Baixas a Pagar.
- FK3 - Impostos Calculados.
- FK4 - Impostos Retidos.
- FK5 - Movimentos Bancários.
- FK6 - Valores acessórios.
- FK7 - Tabela Auxiliar
- FKA - Rastreio de movimento.
08. PONTOS DE ENTRADA
Expandir | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
09. CONTEÚDOS RELACIONADOS
- Liberação para Baixa (FINA580)
- Relação de Baixas (FINR190)
- Cadastro de Motivo de Baixa (FINA490)
- Padrão de gravação dos movimentos de títulos do tipo PA (Pagamento Antecipado)
Saldo NF = R$ 1000,00(Saldo NF) - R$ 13,95 (PCC gerado na compensação) - R$ 286,05 (valor compensado) = 700,00
Movimentação: R$ 300,00
Gerou os impostos configurados na baixa, no exemplo, o PCC no valor de R$ 13,95 com base de cálculo de R$ 300,00
Saldo PA = 300,00(Saldo PA) - 300,00 (valor compensado) = 0,00
Valor referente a Diferença de imposto calculado: 13,95
*Importante
Como mencionado anteriormente o DIC não será gerado neste momento.
2ª compensação - Compensar NF x PA:
Saldo NF = R$ 700,00(Saldo NF) - R$ 13,95 (PCC gerado na compensação) - R$ 286,05 (valor compensado) = 400,00
Movimentação: R$ 300,00
Gerou os impostos configurados na baixa, no exemplo, o PCC no valor de R$ 13,95 com base de cálculo de R$ 300,00
Saldo PA = 300,00(Saldo PA) - 300,00 (valor compensado) = 0,00
Valor referente a diferença de imposto calculado: 13,95
*Importante
Como mencionado anteriormente o DIC não será gerado neste momento.
3ª compensação - Compensar NF x PA:
Saldo NF = R$ 400,00(Saldo NF) - R$ 13,95 (PCC gerado na compensação) - R$ 286,05 (valor compensado) = 100,00
Movimentação: R$ 300,00
Gerou os impostos configurados na baixa, no exemplo, o PCC no valor de R$ 13,95 com base de cálculo de R$ 300,00
Saldo PA = 300,00(Saldo PA) - 300,00 (valor compensado) = 0,00
Valor referente a Diferença de imposto calculado: 13,95
Aviso | ||
---|---|---|
| ||
O DIC será gerado somente neste momento. No valor acumulado de 41,85. |
Valor do DIC gerado = 13,95 (DIC calculado na 1º compensação) + 13,95 (DIC calculado na 2º compensação) + 13,95 (DIC calculado na 3º compensação) = 41,85
...
id | 2 |
---|---|
label | Compensação total sem geração de DIC |
effectType | fade |
Aviso | ||
---|---|---|
| ||
O processo descrito refere-se apenas ao cenário liquido: MV_PABRUTO = 2 (Líquido) |
Compensação total sem geração de DIC
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.
Saldo NF = R$ 1000,00 (Saldo NF) - R$ 23,25 (PCC gerado na 1º compensação) - R$ 23,25 (PCC gerado na 2º compensação) - R$ 500,00 (valor compensado do 1º PA) - R$ 453,50 (valor compensado do 2º PA) = 0,00
Saldo 1º PA = 500,00 (Saldo PA) - 500,00 (valor compensado) = 0,00
Saldo 2º PA = 453,50 (Saldo PA) - 453,00 (valor compensado) = 0,00
Não temos geração de DIC
Exemplo: Estorno da 2º compensação (2º PA).
Ao realizar o estono da 2º compensação (2º PA):
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 | ||
---|---|---|
| ||
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 | ||||||
---|---|---|---|---|---|---|
| ||||||
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. |
...
id | 4 |
---|---|
label | Geração do DIC no momento do estorno |
effectType | fade |
Aviso | ||
---|---|---|
| ||
O processo descrito refere-se apenas ao cenário liquido: MV_PABRUTO = 2 (Líquido) |
Processo de geração do DIC no momento do estorno
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.
Exemplo: Estorno da 3º compensação
Saldo NF = R$100,00,00(Saldo NF) + R$ 13,95 (PCC gerado pela compensação) + R$ 286,05 (valor estornado) = 400,00
Movimentação: R$ 300,00
Será excluído as retenções geradas pela compensação, no exemplo, o PCC no valor de R$ 13,95 com base de cálculo de R$ 300,00.
Exclusão do DIC gerado pela compensação no valor de R$ 41,85 (DIC acumulado).
Saldo PA = 0,00(Saldo PA) + 300,00 (valor estornado) = 300,00
O sistema avalia as compensações anteriores à ú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 (DIC calculado na 2º compensação) = 27,90
Neste momento será gerado um novo título do tipo DIC referente a primeira e segunda compensação.
Exemplo: Estorno da 2º compensação
Saldo NF = R$400,00,00(Saldo NF) + R$ 13,95 (PCC gerado pela compensação) + R$ 286,05 (valor estornado) = 700,00
Movimentação: R$ 300,00
Será excluído as retenções geradas pela compensação, no exemplo, PCC no valor de R$ 13,95 com base de cálculo de R$ 300,00.
Exclusão do DIC gerado pelo estorno no valor de R$ 27,90 (DIC acumulado)
Saldo PA = 0,00(Saldo PA) + 300,00 (valor estornado) = 300,00
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.
...
id | Veja mais |
---|---|
effectType | fade |
...
id | 1 |
---|---|
label | Veja mais |
effectType | fade |
...
HTML |
---|
<!-- esconder o menu --> <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> |
...