O Protheus controla, através de suas rotinas e processos, as entradas e saídas das contas bancárias. Desta forma, permite a inclusão de movimentações e também a transferência de valores entre os bancos.
A primeira fase de uma implantação de movimentação bancária está no cadastro das informações do banco onde sua empresa movimenta as contas. Podem ser cadastrados vários bancos.
Procedimento efetuado de forma manual via rotina Movimentos Bancários (FINA100), 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 Movimentos Bancários (FINA100), 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 "Protheus.ch"
User Function TST100()
Local nOpc := 0
Local aFINA100 := {}
Private lMsErroAuto := .F.
While .T.
nOpc := 0
nOpc := Aviso("TESTE EXECAUTO DO FINA100", "Escolha a opção do menu da rotina FINA100 a ser executada via EXECAUTO",{"PAGAR","RECEBER","EXCLUIR","CANCELAR","TRANSF.","EST. TRANSF."})
If nOpc == 1
aFINA100 := { {"E5_DATA" ,dDataBase ,Nil},;
{"E5_MOEDA" ,"M1" ,Nil},;
{"E5_VALOR" ,500 ,Nil},;
{"E5_NATUREZ" ,"001" ,Nil},;
{"E5_BANCO" ,"001" ,Nil},;
{"E5_AGENCIA" ,"001" ,Nil},;
{"E5_CONTA" ,"001" ,Nil},;
{"E5_BENEF" ,"TESTE AUTO - BENEF" ,Nil},;
{"E5_HISTOR" ,"TESTE AUTO - AUTO" ,Nil}}
MSExecAuto({|x,y,z| FinA100(x,y,z)},0,aFINA100,3)
If lMsErroAuto
MostraErro()
Else
MsgAlert("Movto. Bancario Pagar incluido com sucesso !!!")
EndIf
ElseIf nOpc == 2
aFINA100 := { {"E5_DATA" ,dDataBase ,Nil},;
{"E5_MOEDA" ,"M1" ,Nil},;
{"E5_VALOR" ,1500 ,Nil},;
{"E5_NATUREZ" ,"001" ,Nil},;
{"E5_BANCO" ,"001" ,Nil},;
{"E5_AGENCIA" ,"001" ,Nil},;
{"E5_CONTA" ,"001" ,Nil},;
{"E5_HISTOR" ,"TESTE AUTO - AUTO" ,Nil}}
MSExecAuto({|x,y,z| FinA100(x,y,z)},0,aFINA100,4)
If lMsErroAuto
MostraErro()
Else
MsgAlert("Movto. Bancario Receber incluido com sucesso !!!")
EndIf
ElseIf nOpc == 3
dbSelectArea("SE5")
SE5->(dbSetOrder(1))
SE5->(dbSeek(xFilial("SE5")+DToS(dDataBase) ))
aFINA100 := { {"E5_DATA" ,SE5->E5_DATA ,Nil},;
{"E5_MOEDA" ,SE5->E5_MOEDA ,Nil},;
{"E5_VALOR" ,SE5->E5_VALOR ,Nil},;
{"E5_NATUREZ" ,SE5->E5_NATUREZ ,Nil},;
{"E5_BANCO" ,SE5->E5_BANCO ,Nil},;
{"E5_AGENCIA" ,SE5->E5_AGENCIA ,Nil},;
{"E5_CONTA" ,SE5->E5_CONTA ,Nil},;
{"E5_HISTOR" ,SE5->E5_HISTOR ,Nil},;
{"E5_TIPOLAN" ,SE5->E5_TIPOLAN ,Nil} }
MSExecAuto({|x,y,z| FinA100(x,y,z)},0,aFINA100,5)
If lMsErroAuto
MostraErro()
Else
MsgAlert("Exclusão realizada com sucesso !!!")
EndIf
ElseIf nOpc == 4
dbSelectArea("SE5")
SE5->(dbSetOrder(1))
SE5->(dbSeek(xFilial("SE5")+DToS(dDataBase) ))
dbSkip() //colocado apenas para esta sequencia de testes
aFINA100 := { {"E5_DATA" ,SE5->E5_DATA ,Nil},;
{"E5_MOEDA" ,SE5->E5_MOEDA ,Nil},;
{"E5_VALOR" ,SE5->E5_VALOR ,Nil},;
{"E5_NATUREZ" ,SE5->E5_NATUREZ ,Nil},;
{"E5_BANCO" ,SE5->E5_BANCO ,Nil},;
{"E5_AGENCIA" ,SE5->E5_AGENCIA ,Nil},;
{"E5_CONTA" ,SE5->E5_CONTA ,Nil},;
{"E5_HISTOR" ,SE5->E5_HISTOR ,Nil},;
{"E5_TIPOLAN" ,SE5->E5_TIPOLAN ,Nil} }
MSExecAuto({|x,y,z| FinA100(x,y,z)},0,aFINA100,6)
If lMsErroAuto
MostraErro()
Else
MsgAlert("Cancelamento realizada com sucesso !!!")
EndIf
ElseIf nOpc == 5
aFINA100 := { {"CBCOORIG" ,"001" ,Nil},;
{"CAGENORIG" ,"001" ,Nil},;
{"CCTAORIG" ,"001" ,Nil},;
{"CNATURORI" ,"001" ,Nil},;
{"CBCODEST" ,"002" ,Nil},;
{"CAGENDEST" ,"002" ,Nil},;
{"CCTADEST" ,"002" ,Nil},;
{"CNATURDES" ,"002" ,Nil},;
{"CTIPOTRAN" ,"CH" ,Nil},;
{"CDOCTRAN" ,"123456" ,Nil},;
{"NVALORTRAN" ,2500 ,Nil},;
{"CHIST100" ,"TESTE TRF VIA EXECAUTO" ,Nil},;
{"CBENEF100" ,"TESTE TRF VIA EXECAUTO" ,Nil} }
MSExecAuto({|x,y,z| FinA100(x,y,z)},0,aFINA100,7)
If lMsErroAuto
MostraErro()
Else
MsgAlert("Transferência executada com sucesso !!!")
EndIf
//Estorno da Transferencia
ElseIf nOpc == 6
aFINA100 := { {"AUTNRODOC" ,"123456" ,Nil},;
{"AUTDTMOV" ,dDataBase ,Nil},;
{"AUTBANCO" ,"001" ,Nil},;
{"AUTAGENCIA" ,"001" ,Nil},;
{"AUTCONTA" ,"001" ,Nil} }
MSExecAuto({|x,y,z| FinA100(x,y,z)},0,aFINA100,8)
If lMsErroAuto
MostraErro()
Else
MsgAlert("Transferência cancelada com sucesso !!!")
EndIf
EndIf
If nOpc == 0
Exit
Endif
Enddo
Return(Nil) |
Esta opção permite incluir um valor a pagar na movimentação bancária.
Esta opção permite a inclusão de valores a receber na movimentação bancária.
Esta opção permite visualizar o movimento bancário cadastrado, tanto a pagar como a receber
Apresenta consulta com o lançamento contábil do movimento, caso o mesmo já tenha sido contabilizado.
Apresenta quadro das legendas e seus significados referenciados a situação do movimento

Esta operação permite excluir o movimento bancário tanto pagar quanto receber, deletando o registro no banco de dados
Esta operação efetua a contrapartida do movimento, ou seja estornar o valor que eu recebi ou paguei.
Esta operação permite visualizar o rateio contábil aplicado sobre o movimento bancário.
Pesquisa o movimento dentro do arquivo de movimentos bancários, tendo como resultado o movimento posicionado e destacado na browse.
Executa duas movimentações bancárias em uma única operação: saída da conta origem e entrada na conta destino.
Estorna a transferência realizada, voltando os valores para suas contas de origem
Esta opção permite a contabilização da movimentação bancária efetivada.
Lista de parâmetros aplicados ao FINA100 e seu processamento
|
A Movimentação Bancária é utilizada para efetuar lançamentos entre contas alimentando seu saldo na tabela SE8 - Saldos bancários e registrando seus movimentos na tabela SE5 - Movimentação bancaria .Sua característica básica é a não geração de receitas e despesas para a empresa, controlando somente entradas e saídas de valores entre contas.
| LP | Fato Gerador | On | Off (CTBAFIN) |
|---|---|---|---|
<!-- 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>
|