Árvore de páginas

Versões comparadas

Chave

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

...

Os adiantamentos solicitados tanto via Reserve, Solicitação de Viagens ou Avulso não são aprovados em conjunto com a viagem e geram uma pendência para o superior do viajante, se configurado.


Informações
titleImportante

Se a opção "Bloqueia Adiantamento" estiver com "1=Sim", o sistema passará a não permitir a geração do adiantamento, caso exista alguma prestação de contas em aberto para o participante na filial no qual está sendo incluída a solicitação, conforme parametrização das configurações "Dias (max.)" e "Quantidade (max.)".

Exemplo:

Se for necessária a aprovação do superior e avaliação financeira, temos:

...

O adiantamento pode ser gerado à partir da solicitação de viagem (FINA666), selecionando esta opção na aba Adiantamentos:

image2019-7-8_15-12-37.png


O campo RD0_DVIAGE é de uso exclusivo para a integração do RESERVE e que está descontinuado.

Ao clicar no campo adiantamento para o participante, o a adiantamento somente será solicitado se o cadastro do participante estiver com o campo Adiantamento "SIM". Esse controle será feito através do campo RD0_PERMAD (Cadastro de Pessoas).

Se o campo RD0_PERMAD estiver com o valor igual a "Não", o sistema irá mostrar tela de help, conforme abaixo e não permitirá e inclusão do adiantamento para o participante.

Mesmo com a adiantamento bloqueado pelo sistema para adiantamento ao participante na inclusão de viagnes, o sistema não bloqueará a prestação de contas se houver necessidade para esse praticante.

Image Added 

Ou após a Viagem já ter sido enviada para o departamento de viagens (FINA665), clicando no botão "Solic. Adiant." e selecionando os participantes que receberão o adiantamento:



Então, através da rotina FINA667, o adiantamento pode ser visualizado, e seguir seu fluxo de ações:

...

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

...