Árvore de páginas

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)