Árvore de páginas


ÍNDICE



01. VISIÓN GENERAL

Los anticipos (FINA667) son los valores acreditados a los colaboradores para cubrir los gastos de un viaje, tales como alimentación, transporte, comunicación, etc.

Estos valores se calculan por medio de la configuración de la política de viajes de la empresa, que pueden ser:

  1. Valor fijo: Este es el valor fijo concedido, usualmente para el valor de traslado.
  2. Valor con y sin Pernoctar: Si el viaje tiene período dentro del mismo día, se calcula el valor del anticipo sin pernoctar, si supera un valor diario, se calculará con el valor con pernoctar.
  3. Otras monedas: Los valores en otras monedas usualmente son concedidos mediante crédito en traveller check o compra de moneda. En este caso el Protheus no hace el cálculo, pero se debe informar el valor del crédito de este anticipo. Las tasas de conversión de la compra de esta moneda para la moneda fuerte, se pueden informar antes o después de generar el título mediante la configuración en el asistente de Configuración.

En la rutina de viajes (FINA665) aun se puede solicitar complementos de anticipos. Si un colaborador necesita más dinero en un viaje, esta solicitud se puede efectuar seleccionando el viaje y la opción Anticipo por Separado. En este caso se genera otro anticipo más vinculado al viaje.

Las reglas de generación de título, tales como Prefijo, Modalidad, Fecha de Vencimiento para anticipos normales y urgentes (aquellos solicitados fuera de la regla de la política de anticipación) están en el Asistente de Configuración.

Los anticipos solicitados, tanto vía Reserve, solicitud de viajes o por separado, no se aprueban junto con el viaje y generan un asunto pendiente para el superior del viajero, si se configura.

Ejemplo:

Si es necesario la aprobación del superior y evaluación financiera, tenemos:

O entonces tendremos los siguientes escenarios si una etapa se pudiera realizar automáticamente:

Sugerencia

La contabilización del anticipo se realiza por medio del registro estándar de inclusión de título.

Para los casos en que el anticipo es otra moneda y la tasa informada después de generar el título, este se debe contabilizar Off Line.

Atención

Este proceso no es obligatorio.


02. EJEMPLO DE UTILIZACIÓN

El anticipo se puede generar a partir de la solicitud de viaje (FINA666), seleccionando esta opción en la solapa Anticipos:

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

O después de haber enviado el viaje al departamento de viajes (FINA665), haciendo clic en el botón "Solic. Antic." y seleccionando los participantes que recibirán el anticipo:



Entonces, por medio de la rutina FINA667, el anticipo se puede visualizar y seguir su flujo de acciones:

03. RUTINA AUTOMÁTICA

Para ejecutar la rutina automática, ilustramos la solicitud del anticipo tras hacer efectivo el viaje (MyFA667A), en el siguiente ejemplo:


Exemplo de execução da rotina automática Expandir origem
#INCLUDE "PROTHEUS.CH"
#INCLUDE "FWMVCDEF.CH"

//---------- Solicitud de anticipo del viaje ----------//
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 entorno con usuario solicitante

dbSelectArea("FL5")
dbSetOrder(1)
dbSeek(xFilial("FL5")+cViagem) // Viaje ya solicitado

// Carga modelo de datos con la solicitud de viaje marcada
oModel := FWLoadModel("FINA667A")
oModelFLC := oModel:GetModel("FLCDETAIL") // Participantes
oModelFLD := oModel:GetModel("FLDDETAIL") // Anticipos
// Clave de búsqueda del participante dentro del viaje
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 recibirá anticipo
     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","Anticipo para el viajero")
          // Validación y grabación de los datos si fueran consistentes
          If oModel:VldData()
               oModel:CommitData()
               Conout("Anticipo solicitado con éxito.")
          Else 
               VarInfo("",oModel:GetErrorMessage())
               Conout("Error en la validación, anticipo no fue solicitado.")
         EndIf
     Else
          Conout("Viajero no encontrado en este viaje.")
     EndIf
EndIf

oModel:DeActivate()
oModel:Destroy()
RpcClearEnv()

Return



04. TABLAS

  • FL5 - Viaje
  • FLC - Pasajeros
  • FLD - Anticipos