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:
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.
Exemplo:
Se for necessária a aprovação do superior e avaliação financeira, temos:
Ou então teremos os seguintes cenários se uma etapa puder ser realizada automaticamente:
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. |
Este processo não é obrigatório. |
O adiantamento pode ser gerado à partir da solicitação de viagem (FINA666), selecionando esta opção na aba Adiantamentos:
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:
#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 |
<!-- esconder o menu --> <style> div.theme-default .ia-splitter #main { margin-left: 0px; } .ia-fixed-sidebar, .ia-splitter-left { display: none; } #main { padding-left: 10px; padding-right: 10px; overflow-x: hidden; } .aui-header-primary .aui-nav, .aui-page-panel { margin-left: 0px !important; } .aui-header-primary .aui-nav { margin-left: 0px !important; } </style> |