Árvore de páginas

Versões comparadas

Chave

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

...

Para execução da rotina automática, ilustramos a solicitação do adiantamento após a efetivação da viagem (MyFA667A), no seguinte exemplo:

...

Bloco de código
languagejava
themeMidnight
titleExemplo de execução da rotina automática
collapsetrue
#INCLUDE "PROTHEUS.CH"

...


#INCLUDE "FWMVCDEF.CH"

...



//---------- Solicitacao de adiantamento da viagem ----------//

...


User Function MyFA667A()

...



Local aKeyFLC := {}

...


Local aUser := {}

...


Local oModel := Nil

...


Local oModelFLC := Nil

...


Local oModelFLD := Nil

...


Local cViagem := "0000000001"

...


Local cPartic := "000002"

...



RpcSetEnv("T1","D MG 01 ","claudio.ribeiro","1") // Inicializa ambiente com usuario solicitante

...



dbSelectArea("FL5")

...


dbSetOrder(1)

...


dbSeek(xFilial("FL5")+cViagem) // Viagem ja solicitada

...



// Carrega modelo de dados com a solicitacao de viagem posicionada

...


oModel := FWLoadModel("FINA667A")

...


oModelFLC := oModel:GetModel("FLCDETAIL") // Participantes

...


oModelFLD := oModel:GetModel("FLDDETAIL") // Adiantamentos

...


// Chave de busca do participante dentro da da viagem

...


aKeyFLC := { {"FLC_FILIAL",xFilial("FLC")},{"FLC_VIAGEM",cViagem},{"FLC_PARTIC",cPartic} }

...



oModel:SetOperation(MODEL_OPERATION_UPDATE)

...


oModel:Activate()

...


If FINXUser(RetCodUsr(),aUser,.T.)

...


     // Participante que recebera

...

 adiantamento
     If oModelFLC:SeekLine(aKeyFLC)

...


          oModelFLC:SetValue("OK",.T.)

...


          oModelFLD:LoadValue("FLD_DTSOLI",dDatabase)

...


          oModelFLD:LoadValue("FLD_DTPREV",DataValida(dDatabase+3))

...


          oModelFLD:LoadValue("FLD_SOLIC" ,aUser[1])

...


          oModelFLD:LoadValue("FLD_NOMESO",PadR(aUser[2],TamSx3("FLD_NOMESO")[1]))

...


          oModelFLD:SetValue("FLD_VALOR",400)

...


          oModelFLD:SetValue("FLD_MOEDA","1")

...


          oModelFLD:SetValue("FLD_JUSTIF","Adiantamento para viajante")

...


          // Validacao e gravacao dos dados se

...

 consistentes
          If oModel:VldData()

...


               oModel:CommitData()
               Conout("Adiantamento solicitado com sucesso.")
          Else 
               VarInfo("",oModel:GetErrorMessage())

...


               Conout("Erro na validacao, adiantamento nao foi solicitado.")

...


         EndIf
     Else
          Conout("Viajante nao encontrado nessa viagem.")

...


     EndIf
EndIf

oModel:DeActivate()

...


oModel:Destroy()

...


RpcClearEnv()

...



Return


...

04. TABELAS UTILIZADAS

  • FL5 - Viagem
  • FLC - Passageiros
  • FLD - Adiantamentos

...