Árvore de páginas

Versões comparadas

Chave

  • Esta linha foi adicionada.
  • Esta linha foi removida.
  • A formatação mudou.

...

Os adiantamentos selecionados e informados pelo usuário serão abatidos do valor total do título original.

Através da compensação de títulos a pagar é possível:

  • Compensar titulos de um mesmo fornecedor/loja com adiantamentos deste mesmo fornecedor/loja
  • Compensar titulos 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.

02. EXECUÇÃO

  • Manual

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

  • Automática

Procedimento realizado de forma automática na rotina de Compensação contas a pagar (FINA340), 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)

02. EXECUÇÃO

  • Manual

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

  • Automática

Procedimento realizado de forma automática na rotina de Compensação contas a pagar (FINA340), 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ódigo
languagejava
themeMidnight
titleExemplo de rotina automática
collapsetrue
#INCLUDE
Bloco de código
languagejava
themeMidnight
titleExemplo de rotina automática
collapsetrue
#INCLUDE 'Protheus.ch'
#INCLUDE "TBICONN.ch"

User Function CMPCPAUT()
Local nSavInd := IndexOrd()
LOCAL nSavRec := RecNO()
PRIVATE nTamTit := TamSX3("E2_PREFIXO")[1]+TamSX3("E2_NUM")[1]+TamSX3("E2_PARCELA")[1]
PRIVATE nTamTip := TamSX3("E2_TIPO")[1]
Private aCores :={ { '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
titleObservaçã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.

Exemplo: MaIntBxCP(2,aRecSE2,,aRecPA,,{lContabiliza,lAglutina,lDigita,.F.,.F.,.F.},,,,,dBaixaCMP)


03. OPERAÇÕES

  • Compensar

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 Added


  • Pesquisa

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


  • 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
idParâmetros
effectTypefade

03. TELA XXXXX

Outras Ações / Ações relacionadas

...

04. TELA XXXXX

Principais Campos e Parâmetros

...




Card documentos
InformacaoUse esse box para destacar informações relevantes e/ou de destaque.
TituloIMPORTANTE!

...