01. VISÃO GERAL

Esta rotina permite que sejam executadas as compensações de titulo a pagar com títulos a receber, efetuando desta forma o encontro de contas entre o fornecedor e o cliente.

Os títulos a serem considerados nesse processo são:

02. EXECUÇÃO

Procedimento efetuado de forma manual via rotina Compensação entre carteiras (FINA450), 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 entre carteiras (FINA450), 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)

#include "rwmake.ch"
#include 'tbiconn.ch'
   
User Function Auto450()
    Local aAutoCab := {}
    Local aArea    := GetArea()
    Local cTabSe1  := "TMPSE1A"
    Local cTabSe2  := "TMPSE2A"
    Local aSE1450  := {}
    Local aSE2450  := {}
    Local aFilCmp  := {}
 
    Private lMsHelpAuto := .F.
    Private lMsErroAuto := .F.
 
    BeginSql Alias cTabSe1
        SELECT R_E_C_N_O_ as RECNO
            FROM %Table:SE1% SE1
            WHERE SE1.E1_FILIAL = 'D MG 01 '
                AND SE1.E1_PREFIXO = 'CPT'
                AND SE1.E1_NUM = 'VT001'
                AND SE1.E1_TIPO = 'NF'
                AND SE1.E1_CLIENTE = 'FIN001'
                AND SE1.E1_LOJA    = '01'
                AND SE1.%NotDel%
    EndSql
 
    While (cTabSe1)->(!EOF())
        SE1->(DbGoto((cTabSe1)->RECNO))
        AAdd(aSE1450, {SE1->E1_FILIAL+SE1->E1_PREFIXO+SE1->E1_NUM+SE1->E1_PARCELA+SE1->E1_TIPO})
        If ascan(aFilCmp,SE1->E1_FILIAL) == 0
            Aadd(aFilCmp, SE1->E1_FILIAL)
        EndIf   
        (cTabSe1)->(DbSkip()) 
    Enddo
 
    (cTabSe1)->(DbCloseArea())
 
    BeginSql Alias cTabSe2
        SELECT R_E_C_N_O_ as RECNO
            FROM %Table:SE2% SE2
            WHERE SE2.E2_FILIAL = 'D MG 02 '
                AND SE2.E2_PREFIXO = 'CPT'
                AND SE2.E2_NUM = 'VT001'
                AND SE2.E2_TIPO = 'NF'
                AND SE2.E2_FORNECE = 'FIN001'
                AND SE2.E2_LOJA    = '01'
                AND SE2.%NotDel%
    EndSql
 
    While (cTabSe2)->(!EOF())
        SE2->(DbGoto((cTabSe2)->RECNO))
        AAdd(aSE2450, {SE2->E2_FILIAL+SE2->E2_PREFIXO+SE2->E2_NUM+SE2->E2_PARCELA+SE2->E2_TIPO+SE2->E2_FORNECE+SE2->E2_LOJA})
        If ascan(aFilCmp,SE2->E2_FILIAL) == 0
            Aadd(aFilCmp, SE2->E2_FILIAL)
        EndIf   
        (cTabSe2)->(DbSkip()) 
    Enddo
     
    (cTabSe2)->(DbCloseArea())
 
    aAutoCab :={  {"AUTDVENINI450", cTod('27/08/19') , nil},;
                {"AUTDVENFIM450", cTod('27/08/19') , nil},;
                {"AUTNLIM450" ,8000, nil},;
                {"AUTCCLI450" , "FIN001" , nil},;
                {"AUTCLJCLI" , "01" , nil},;
                {"AUTCFOR450" , "FIN001" , nil},;
                {"AUTCLJFOR" , "01" , nil},;
                {"AUTCMOEDA450" , "01" , nil},;
                {"AUTNDEBCRED" , 1 , nil},;
                {"AUTLTITFUTURO", .F. , nil},;
                {"AUTARECCHAVE" ,aSE1450, nil},;
                {"AUTAPAGCHAVE" , aSE2450 , nil},;
                {"AUTAFILCOMP" , aFilCmp , nil}} //Parâmetro opcional, somente devera ser informado quando houver uma compensação multi-filiais 
 
    MSExecAuto({|x,y,z| Fina450(x,y,z)}, nil , aAutoCab , 3 )
 
    If !lMsErroAuto
        ConOut("Incluido com sucesso! ")
        confirmsx8()
    Else
        ConOut("Erro na inclusao!")
        rollbacksx8()
        MostraErro()
    EndIf
 
    RestArea(aArea)
Return

Para que a compensação funcione entre filiais se faz necessário o uso do parametro AUTAFILCOMP, caso contrario não ha a necessidade de informa-lo

Para mais informações acesse a documentação da rotina automática 

Compensação entre carteiras automática  


03. OPERAÇÕES

Operação que permite realizar a compensação entre carteiras pagar/receber. 


Operação que permite realizar o cancelamento do movimento gerado pela compensação.


Operação que permite realizar o estorno do movimento gerado pela compensação.


Apresenta quadro das legendas e seus significados referenciados a situação do titulo a pagar.


Pesquisa o titulo dentro do arquivo de contas a pagar, tendo como resultado o titulo posicionado e destacado na browse.


Operação que permite visualizar o titulo posicionado, podendo conferir seu saldo e valor.

04. PARÂMETROS APLICADOS

Lista de parâmetros aplicados ao FINA450 e seu processamento

PerguntaDescriçã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 
Comp. títulos transferidos ?Informe se "Sim" caso permita a compensação de títulos transferidos ao banco (Borderô), ou "Não" caso contrario
Seleciona Filiais ? Se sim ira aparecer a tela de seleção de filiais para o processo de compensação multi-filiais
PerguntaDescrição Default
MV_BX10925

MV_BP10925

MV_CC10925

MV_CTBFLAG

MV_EASYFIN

MV_MOEDA

MV_NUMCOMP

MV_CTLIPAG

MV_VLMINPG

MV_JURTIPO

MV_LJINTFS

MV_JURXFIN

MV_ATUFORN

MV_MCUSTO


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)

589Cancelamento de compensação de títulos contas a pagarXX
597Compensação contas a pagar XX



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:

Variaveis de contabilização FINA340


06. TABELAS RELACIONADAS


07. PONTOS DE ENTRADA

Ponto de entradaObservação
F340BROW

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

F340LIBT

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

F340DTFIN

O PE é chamado nas validações do parâmetro MV_DATAFIN existentes na Compensação CP.

Documentação: http://tdn.totvs.com/x/6qJc

F340TAXA

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

F340ATLIS
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.

Documentação: http://tdn.totvs.com/x/nYIbCQ

F340MKTIT
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.

Documentação: http://tdn.totvs.com/x/7aJc

F340SE5

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

F340GRV

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

F340ACAN

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

F340CAN

Ponto de Entrada chamado quando realizada a confirmação do estorno de compensação.

Documentação: http://tdn.totvs.com/x/zoFdAg

F340GREST

Gravação de dados adicionais no estorno da compensação

Documentação: http://tdn.totvs.com/x/iqVc

F340FCAN

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

FA340QRY

Complemento de query para cancelamento da compensação

Documentação: http://tdn.totvs.com/x/lgwGD 

FA340FILT
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()

Documentação: http://tdn.totvs.com/x/6aJc

FA340ORD
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.

Documentação: http://tdn.totvs.com/x/nYIbCQ

F340VLD
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.

Documentação: http://tdn.totvs.com/x/kvdbDQ

FA340NDFGrv
F340FLCP

Permite implementar uma expressão complementar no filtro de titulos.

Documentação: http://tdn.totvs.com/x/66Jc

F340FCPTOP

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







<!-- 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>