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. |
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 |
Esta rotina permite 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.
Procedimento efetuado de forma manual via rotina Baixas 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 Baixas 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)
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. |
#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 |
|
Lista de parâmetros aplicados ao FINA090 e seu processamento
|
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 |
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. |
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. |
|
<!-- 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> |