ÍNDICE
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:
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.
El anticipo se puede generar a partir de la solicitud de viaje (FINA666), seleccionando esta opción en la solapa Anticipos:
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:
Para ejecutar la rutina automática, ilustramos la solicitud del anticipo tras hacer efectivo el viaje (MyFA667A), en el siguiente ejemplo:
#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