Entendiendo el Cálculo de Dietas a Través de Diferentes Zonas Horarias
Para realizar los cálculos, nuestro módulo de dietas se basa en dos factores clave: la configuración de dietas (generalmente definida por las regulaciones del país o personalizada por la empresa) y los detalles del viaje ingresados por ti en Expensya (incluyendo los lugares de salida/regreso, fechas, horas, etapas del viaje y la dieta seleccionada).
Una vez identificada la configuración, aplicamos las reglas definidas en ella: cómo se considera un día (si es como un día calendario o un período de 24 horas), y qué lógica de selección se sigue cuando se visitan múltiples ubicaciones en un solo día (por ejemplo, la primera visitada, la última, la ubicación con más tiempo pasado, o priorizando la ubicación en el extranjero). Además, tomamos en cuenta las reglas del paquete y las condiciones para las dietas.
Al revisar la información de viaje proporcionada por ti, podríamos encontrarnos con múltiples zonas horarias dentro de una misma etapa del viaje.
Estudio de caso:
Tomemos el siguiente ejemplo:
- (01/09) Nueva York UTC-4 6:00 AM
- (01/09) Londres UTC+1 6:00 PM
- (02/09) Dubái UTC+4 2:00 PM
- (03/09) Nueva York UTC-4 8:00 AM
El 1 de septiembre, el usuario estuvo en Nueva York y Londres, pasando tiempo en dos zonas horarias diferentes.
Dependiendo del tipo de información requerida para el cálculo, pueden ser necesarias conversiones:
Para condiciones de rango de tiempo, no se necesita conversión. Por ejemplo, una regla podría establecer: "Proporcionar una asignación reducida si el usuario regresa antes de las 7 PM." En este caso, utilizamos la hora de regreso en la zona horaria local de la ubicación de regreso.
En el ejemplo proporcionado, el usuario regresa a Nueva York a las 8:00 AM, por lo que se aplicará una asignación reducida.
Esencialmente, las condiciones de rango de tiempo siempre se basan en la hora de salida o de regreso, lo que significa que no se requiere conversión.
Sin embargo, para las condiciones de tiempo pasado, debemos determinar cuándo son necesarias las conversiones.
Los límites del día son siempre independientes de las zonas horarias, lo que significa que no se necesitan conversiones.
El tiempo pasado en una ubicación se utiliza para determinar la lógica de ubicación (por ejemplo, si la regla es: "Considerar la ubicación donde el usuario pasó más tiempo ese día"). En este caso, las conversiones son necesarias para calcular con precisión el tiempo real pasado.
Al realizar estas conversiones, seguimos algunas reglas básicas:
Regla de conversión de zona horaria número 1
Cuando el empleado proporciona información sobre su viaje:
- [Ubicación A] [Fecha de salida] [Hora de salida]
- [Ubicación B] [Fecha de llegada] [Hora de llegada]
- [Ubicación C] [Fecha de llegada] [Hora de llegada]
- [Ubicación A] [Fecha de regreso] [Hora de regreso]
Para calcular el tiempo pasado en la Ubicación A, necesitamos convertir la hora de llegada en la Ubicación B a la zona horaria de la Ubicación A.
Para calcular el tiempo pasado en la Ubicación B, debemos convertir la hora de llegada en la Ubicación C a la zona horaria de la Ubicación B.
De manera similar, para determinar el tiempo pasado en la Ubicación C, necesitamos convertir la hora de regreso de la Ubicación A a la zona horaria de la Ubicación C.
Regla de conversión de zona horaria número 2
En casos donde se otorga una asignación basada en la cantidad de tiempo pasado, se limitará a la asignación de 24 horas. Las regulaciones del país típicamente no definen asignaciones para períodos que superen las 24 horas, por lo que si el tiempo pasado excede las 24 horas, se limitará a la asignación de 24 horas.
Regla de conversión de zona horaria número 3
Si la conversión resulta en una duración que excede las 24 horas antes del primer día o después del último día, no debemos agregar un día adicional, ya que esto no debería afectar los límites establecidos del día. Estos límites se rigen por la regla del día calendario o la regla de 24 horas. Por ejemplo, si el viajero regresa a la ubicación el 1 de diciembre, recibirá su última asignación en esa fecha.
Regla de conversión de zona horaria número 4
Además, un "día intermedio" siempre se considerará como 24 horas de ausencia. Esto significa que incluso si el usuario pasa menos o más de 24 horas debido a las conversiones de zona horaria, el tiempo pasado en un día intermedio se considera consistentemente como 24 horas.
- Ejemplo de viaje
A > B > C > A
- Ubicación A = París UTC +2
- Ubicación B = Río de Janeiro UTC -3
- Ubicación C = Bangkok UTC +7
01/09 París UTC +2 6:00 AM
02/09 Río UTC -3 10:00 AM
04/09 Bangkok UTC +7 01:00 AM
05/09 París UTC +2 10:00 PM
Para calcular el tiempo pasado en cada ubicación cada día, necesitamos definir lo siguiente:
- Los límites del día: En el caso de un día calendario, esto será de 12:00 AM a 11:59 PM.
- Las ubicaciones visitadas ese día.
- El tiempo pasado en cada ubicación: Esto se basará en las conversiones de zona horaria mencionadas anteriormente.
Para el 1 de septiembre:
Los límites del día se establecen de 6:00 AM a 11:59 PM.
La única ubicación visitada ese día es París.
El tiempo pasado no requiere conversión, ya que el usuario pasó tiempo en una sola zona horaria, totalizando 18 horas en París.
Para el 2 de septiembre:
Los límites del día se definen de 12:00 AM a 11:59 PM.
Las ubicaciones visitadas ese día incluyen París y Río.
Para calcular el tiempo pasado, necesitamos convertir la hora a la zona horaria de París (UTC +2). Según la Regla de Conversión de Zona Horaria #1, las 10:00 AM en UTC -3 son equivalentes a las 3:00 PM en UTC +2. Luego, calcularemos el tiempo pasado en Río sin conversión.
El tiempo pasado en París es desde 12:00 AM hasta 3:00 PM, totalizando 15 horas.
El tiempo pasado en Río es de 3:00 PM a 11:59 PM, totalizando 14 horas.
La regla de conversión de zona horaria número 4 se aplica en este caso: el tiempo pasado ese día se considerará 24 horas, independientemente del tiempo real pasado.
Para el 3 de septiembre:
Los límites del día se definen de 12:00 AM a 11:59 PM. Sin embargo, el siguiente día comienza en Bangkok (UTC +7) a la 1:00 AM, lo que significa que el 3 de septiembre finalizará efectivamente a las 3:00 PM hora de Río.
Regla de conversión de zona horaria número 5
El día siguiente presenta un nuevo destino, y la hora de llegada a este destino, cuando se convierte a la zona horaria de la última ubicación visitada para el día actual, ocurre antes de que finalice el día. Por lo tanto, la hora de llegada a este nuevo destino se considera el final del día, y la última ubicación visitada para el día actual no debe ser listada como la ubicación de inicio con medianoche como la hora para el siguiente día.
En este caso, convertiremos la hora límite del día para calcular la duración. Sin embargo, para un día que sea “intermedio” (ni un día de salida ni de regreso), la hora límite del día siempre debe ser de 12:00 AM a 11:59 PM cuando seguimos una base de día calendario.
La única ubicación visitada ese día es Río.
El tiempo pasado en Río, de acuerdo con las Reglas de Conversión de Zona Horaria #1 y #4, es desde 12:00 AM hasta 3:00 PM (que es la 1:00 AM hora de Bangkok), totalizando 15 horas.
La Regla de Conversión de Zona Horaria #4 se aplica aquí: el tiempo pasado ese día se considerará 24 horas, independientemente del tiempo real pasado.
Para el 4 de septiembre:
Los límites del día se definen de 12:00 AM a 11:59 PM.
La única ubicación visitada ese día es Bangkok (el tiempo pasado en Río entre las 12:00 AM y la 1:00 AM no se contabiliza, ya que corresponde al límite del día anterior).
El tiempo pasado en Bangkok es desde la 1:00 AM hasta las 11:59 PM, totalizando 23 horas.
Sin embargo, de acuerdo con la Regla de Conversión de Zona Horaria #4, se considerará un día completo, lo que equivale a 24 horas.
Para el 5 de septiembre:
Los límites del día se definen de 12:00 AM a 10:00 PM.
Las ubicaciones visitadas ese día son Bangkok y París.
Para calcular el tiempo pasado, necesitamos convertir la hora de regreso de París a la zona horaria de Bangkok (UTC+7) según la Regla de Conversión de Zona Horaria número 1. Así, las 10:00 PM (UTC+2) se convierten en las 3:00 AM del día siguiente (UTC+7). Basado en las Reglas de Conversión de Zona Horaria número 2 y número 3:
El tiempo pasado en Bangkok es de 00:00 a 23:59 UTC+7 (24h) (factualmente pasó más de 24h, pero lo limitamos para no considerar el 06/09 cuando realmente no viajó).