Tempo aproximado para leitura: 1 min
01. DADOS GERAIS
Linha de Produto: | Microsiga Protheus |
---|---|
Segmento: | Serviços |
Módulo: | Financeiro |
Função: | FINA080 |
Requisito / Story / Issue: | DSERFINP-22180 |
02. SITUAÇÃO/REQUISITO
A rotina não tratava valores acessórios via execauto
03. SOLUÇÃO
Realizada a implantação do tratamento de Valores Acessórios para a rotina automática de baixas a pagar manual
Exemplo de rotina automática para baixa manual CP com valores acessórios:
//Includes, declaracao de variaveis e preparacao do ambiente (necessario apenas para rdmakes)
#include "rwmake.ch"
#include "tbiconn.ch"
#include "topconn.ch"
#include "PROTHEUS.ch"
User Function AUTBXVA()
PRIVATE aRotina := MenuDef()
mBrowse( 6,1,22,75,"SE2",,,,,,Fa040Legenda("SE2"))
Return
//Rotina das Operações com o Titulo
Function fOperaTit(cAlias,nReg,nOpcx)
Local lRet := .T.
Local aBaixar := {}
Local aParcelas := {}
Local cOrigin := "F"
Local cErrorMessage := ""
Local cPref := "AUT"
Local cFORNECE := "000003"
Local cLoja := "00"
Local cAliasSE2 := GetNextAlias()
Local cQuery := ""
Local nX := 0
Local nValTot := 0
Local nJuros := 0
Local nDescon := 0
Local nValPag := 0
Local lTemTit := .F.
Local nParcGer := 2
Local dDtVenc := dDataBase
Local cExternalId := ""
Local nTamLiq := TamSx3("E2_NUMLIQ")[1]
Local _aTit := {}
Local _aVAAut := {}
Private lMsHelpAuto := .T.
Private lMsErroAuto := .F.
Private lc050Auto := .T. // Indica que eh uma rotina automatica.
nVA := FValAcess(SE2->E2_PREFIXO,SE2->E2_NUM,SE2->E2_PARCELA,SE2->E2_TIPO,SE2->E2_FORNECE,SE2->E2_LOJA,SE2->E2_NATUREZ, /*lBaixados*/,/*cCodVa*/,"P",dDatabase,_aVAAut)
nValPag := SE2->E2_SALDO + nVA
_aTit := {}
AADD(_aTit , {"E2_NUM" ,SE2->E2_NUM ,NIL })
AADD(_aTit , {"E2_PREFIXO" ,SE2->E2_PREFIXO ,NIL })
AADD(_aTit , {"E2_PARCELA" ,SE2->E2_PARCELA ,NIL })
AADD(_aTit , {"E2_TIPO" ,SE2->E2_TIPO ,NIL })
AADD(_aTit , {"E2_FORNECE" ,SE2->E2_FORNECE ,NIL })
AADD(_aTit , {"E2_LOJA" ,SE2->E2_LOJA ,NIL })
AADD(_aTit , {"AUTMOTBX" ,"DEB" ,Nil }) //motivo de baixa
AADD(_aTit , {"AUTBANCO" ,padr("001",tamsx3("A6_COD")[1]) ,Nil })
AADD(_aTit , {"AUTAGENCIA" ,padr("001",tamsx3("A6_AGENCIA")[1]) ,Nil })
AADD(_aTit , {"AUTCONTA" ,padr("001",tamsx3("A6_NUMCON")[1]) ,Nil })
AADD(_aTit , {"AUTDTBAIXA" ,dDataBase ,Nil }) //Data da baixa
AADD(_aTit , {"AUTDTCREDITO" ,dDataBase ,Nil }) //Data do credito em conta corrente
AADD(_aTit , {"AUTHIST" ,'Teste Bx. Aut PAGAR C/ VA' ,Nil })
AADD(_aTit , {"AUTDESCONT" , 0 ,Nil }) //Valores de desconto
AADD(_aTit , {"AUTACRESC" , 0 ,Nil }) //Valores de acrescimo - deve estar cadastrado no titulo previamente
AADD(_aTit , {"AUTDECRESC" , 0 ,Nil }) //Valore de decrescimo - deve estar cadastrado no titulo previamente
AADD(_aTit , {"AUTMULTA" , 0 ,Nil }) //Valores de multa
AADD(_aTit , {"AUTJUROS" , 0 ,Nil }) //Valores de Juros
BEGIN TRANSACTION
//3 = Baixa de titulo
MSExecAuto({|A,B,C,D,E,F,G,H| FINA080(A,B,C,D,E,F,G,H)}, _aTit, 3,/*lNoMbrowse*/,3,/*lExibeLanc*/,/*lOnline*/,_aVAAut)
If lMsErroAuto
MOSTRAERRO()
DisarmTransaction()
Else
Alert("Processo terminado")
EndIf
END TRANSACTION
Return
Static function MenuDef()
Local aRotina := {}
aAdd( aRotina, { "Pesquisar" , "AxPesqui" , 0 , 1,,.F. }) //"Pesquisar"
aAdd( aRotina, { "Visualizar", "fa080Visual" , 0 , 2 }) //"Visualizar"
aAdd( aRotina, { "Baixar" , "fOperaTit" , 0 , 4 }) //"Baixar"
aAdd( aRotina, { "Legenda" , "FA040Legenda" , 0 , 6, ,.F.}) //"Le&genda"
Return(aRotina)