Árvore de páginas

Versões comparadas

Chave

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

Índice

01. VISÃO GERAL

...

...

titleAdiantamento

Os Adiantamentos (FINA667) são os valores creditados aos colaboradores para cobrir os gastos de uma viagem, tais como alimentação, transporte, comunicação etc.

Estes valores são calculados através da configuração da política de viagens da empresa, podendo ser:

  1. Valor Fixo: Este é o valor fixo concedido, normalmente para o valor de traslado.
  2. Valor com e sem Pernoite: Quando a viagem possui período dentro do mesmo dia, é calculado o valor do adiantamento sem pernoite, caso extrapole uma diária, será calculado com o valor com pernoite
  3. Outras moedas: Os valores em outras moedas são normalmente concedidos mediante crédito em traveller check ou compra de moeda. Para este caso o Protheus não faz o cálculo, mas o valor do crédito deste adiantamento deve ser informado. As taxas de conversão da compra desta moeda para a moeda forte podem ser informadas antes ou depois da geração do título mediante configuração no Assistente de Configuração.

Na rotina de Viagens (FINA665) ainda é possível solicitar complementos de adiantamentos. Caso um colaborador precise de mais dinheiro em uma viagem, esta solicitação pode ser efetuada selecionando a viagem e a opção Adiantamento Avulso. Neste caso é gerado mais um adiantamento vinculado à viagem.

As regras de geração de título, tais como Prefixo, Natureza, Data de Vencimento para adiantamentos normais e urgentes (aqueles solicitados fora da regra da política de antecedência) estão no Assistente de Configuração.

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:

Image Modified


Ou então teremos os seguintes cenários se uma etapa puder ser realizada automaticamente:

Image Modified

Image Modified

Dica
titleDica

A contabilização do adiantamento é realizado pelo lançamento padrão de inclusão de título.

Para os casos em que o adiantamento é em outra moeda e a taxa informada depois da geração do título, o mesmo deve ser contabilizado offline.

Aviso
titleAtenção

Este processo não é obrigatório.


02. EXEMPLO DE UTILIZAÇÃO

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:

03. ROTINA AUTOMÁTICA

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

...