Hybo cuenta con un sistema avanzado para la asignación automática de plazas de parking, diseñado para ser justo, transparente y configurable según las necesidades de cada organización. A continuación, te explicamos cómo funciona, qué algoritmos incluye y cómo se configuran.
🧩 Tipos de algoritmo y su funcionamiento
1. 📊 Asignación por prioridad
1. 📊 Asignación por prioridad
🔧 Cómo funciona
Cuando el sistema debe asignar automáticamente una plaza, aplica las siguientes reglas de forma progresiva:
Prioridad por tipo de empleado
El sistema prioriza a los usuarios que tienen una categoría o tipo de empleado asignado.
Ejemplo: Si hay 10 solicitudes para una plaza y solo 5 usuarios tienen tipo de empleado definido, la asignación se realizará entre estos últimos aplicando, en caso de empate, las siguientes reglas.
Prioridad por tipo de zona y tipo de vehículo
Si un usuario tiene asignado un vehículo eléctrico, el sistema intentará asignarle primero una plaza en una zona con puntos de carga. Si no hay disponibilidad, se le asignará una plaza en otra zona.
Número de reservas anteriores
En caso de empate tras aplicar las reglas anteriores, la plaza se asignará al usuario con menor número de reservas previas.
Sorteo aleatorio
Si persiste el empate, la plaza se asignará mediante sorteo aleatorio entre los usuarios.
⚙️ Configuración
En la sección de administración del módulo de Parking, encontrarás dos selectores:
Prioridad por tipo de empleado.
Prioridad por tipo de zona.
Puedes activar uno, ambos o ninguno.
Si ambos están desactivados, el sistema realizará asignaciones de forma aleatoria.
Los usuarios sin categoría asignada recibirán plazas únicamente si quedan disponibles tras aplicar las prioridades anteriores.
⚠️ Importante: La asignación automática solo se aplica si existen más prereservas que plazas disponibles para un día concreto. En caso contrario, las prereservas se confirman automáticamente en estado Reservado.
2. 🎲 Asignación por sorteo semanal
2. 🎲 Asignación por sorteo semanal
Otra funcionalidad disponible es el algoritmo de sorteo aleatorio semanal, diseñado para asegurar una distribución equitativa de las plazas de parking cuando la demanda supera la disponibilidad.
🎯 ¿Qué hace este algoritmo?
Permite definir un día de la semana en el que se ejecuta automáticamente un sorteo aleatorio entre las prereservas acumuladas durante la semana. Este proceso puede incluir coches, motocicletas y bicicletas.
⚙️ Configuración
Esta función se activa por sede. Para configurarla:
Selecciona la sede correspondiente.
Accede a la configuración de la sede.
Entra en el módulo de Parking.
Dirígete a la sección "Algoritmo de asignación".
Habilita la opción "Algoritmo semanal por sorteo aleatorio".
Elige el día en que se realizará el sorteo (por ejemplo, jueves).
Selecciona los tipos de vehículo a incluir en la asignación aleatoria:
🚗 Coche
🏍️ Motocicleta
🚲 Bicicleta
📌 Estados de las reservas
Las reservas pueden encontrarse en tres estados:
Solicitado / Prereserva: La reserva ha sido solicitada, pero aún no se ha asignado plaza.
Reservado: La plaza ha sido asignada satisfactoriamente.
Rechazado: No se asignó plaza en el sorteo y no hay disponibilidad para la fecha solicitada.
💡 Nota: Una prereserva que permanece en estado “Solicitado” no se considera rechazada mientras exista la posibilidad de asignarle una plaza.
Si algún usuario cancela su reserva, la plaza se libera y el algoritmo se ejecuta nuevamente para reasignarla entre las prereservas pendientes.
3. 🗓️ Asignacion quincenal
3. 🗓️ Asignacion quincenal
La asignación de plazas mediante el algoritmo se realiza de forma quincenal, con ejecuciones programadas para los días 1 y 15 de cada mes.
🛠️ Configuración previa
🛠️ Configuración previa
Desde el equipo de soporte, se deberá configurar la cantidad de días de antelación habilitados para que los usuarios puedan solicitar plaza en el sorteo. Estos días definen el período durante el cual los usuarios pueden enviar sus peticiones.
⚙️ Ejecución del algoritmo
⚙️ Ejecución del algoritmo
Una vez finalizado el período de solicitud, el algoritmo se ejecuta al día siguiente.
Durante esta ejecución:
Se procesan las solicitudes realizadas dentro del plazo.
Se asignan las plazas disponibles según las reglas configuradas.
Ya no se podrán hacer solicitudes para días futuros de esa quincena.
Finalizado el sorteo, el sistema solo permitirá reservas para el día actual, siempre y cuando queden plazas libres disponibles para asignación inmediata (“en caliente”).
Desde la página de administradores, es posible activar la opción para que el algoritmo tenga en cuenta la preferencia de tipo de plaza configurada por cada usuario al momento de realizar la asignación.
⚙️ Configuraciones desde la página de administrador
⚙️ Configuraciones desde la página de administrador
Desde la página de administradores tendremos una nueva opción de "Preferencia de plaza". En donde elegiremos los tipos de plaza posibles y les asignaremos una prioridad. Esta prioridad hará que la asginación de las plazas comience con la categoría de mayor prioridad.
En la configuración del módulo de parking, dentro de las configuraciones de la sede, tendremos la opción para activar la preferencia por tipo de plaza.
Si queremos usar esta preferencia, debemos crear los tipos de plazas, como mostramos en la primea imágen, y luego de crearlos debemos asignar los tipos de plazas a cada plaza. Entrando al detalle de una plaza podremos asignarle un tipo de plaza.
🗓️ Análisis de fechas históricas
🗓️ Análisis de fechas históricas
Para mejorar el análisis de datos y el comportamiento del algoritmo, se han incorporado dos nuevos campos de configuración en el módulo de Parking:
🆕 Nuevos campos
Cantidad de semanas atrás
Define cuántas semanas hacia atrás debe analizar el sistema.
Ejemplo: Si introduces “4”, el sistema considerará los datos de las últimas 4 semanas para calcular las prioridades.
Fecha de inicio
Permite establecer desde qué día deben empezar a contarse las semanas hacia atrás.
Si se deja en blanco, se tomará como referencia el inicio de la semana actual.
🔄 Lógica del algoritmo
Reinicio automático de fecha
Una vez transcurrido el número de semanas configurado, el sistema reinicia automáticamente la fecha de inicio, actualizando el período de análisis.
Sin fecha de inicio configurada
Si solo se define la cantidad de semanas y no se especifica una fecha, se tomará automáticamente el inicio de la semana actual como referencia. Esta fecha se guardará al ejecutar el algoritmo.
🧩Tipos de algoritmo y descripcion funcional
1. 📊 Asignación Tradicional Priorizada
1. 📊 Asignación Tradicional Priorizada
¿Cuándo se ejecuta?
Diariamente, a la hora configurada (hourPreBookings) en la oficina.
También de forma reactiva, cuando un usuario libera una plaza.
Funcionamiento
Evalúa solicitudes de reserva en cola (ParkingQueueReservation).
Reordena solicitudes en base a estos criterios por este orden:
Prioridad de tipo de empleado (si está activo).
Prioridad por tipo de zona y tipo de vehículo (si está activo).
Número de reservas previas (menos reservas, más prioridad).
Aleatorización final para romper empates.
Considera zona elegida por el usuario si hideZone está desactivado.
Asigna plazas respetando turnos (mañana, tarde, día completo).
Penaliza usuarios que no han hecho check-in en días previos (si está activado).
Rechaza solicitudes que exceden el número de plazas.
Notificaciones
A los usuarios con reserva asignada.
A los usuarios rechazados por falta de plazas o penalización.
A los usuarios que liberaron una plaza, si se reasigna (modo "lend").
Reportes
Puede generar y enviar un informe tras la ejecución, según configuración.
2. 🎲 Sorteo Semanal Aleatorio (Lottery)
2. 🎲 Sorteo Semanal Aleatorio (Lottery)
¿Cuándo se ejecuta?
Día de la semana configurado (isLotteryDay).
También de forma reactiva, si un usuario libera una plaza.
Funcionamiento
Obtiene solicitudes de reserva del toda la semana siguiente.
Asigna plazas de forma aleatoria simple, sin considerar prioridad de empleado o zona.
Agrupa reservas por turnos (mañana, tarde, día completo).
Rechaza reservas que exceden el número de plazas.
Elimina reservas cedidas del día anterior si corresponde.
Notificaciones
A los usuarios con reserva asignada.
A los usuarios rechazados por falta de plazas.
A los usuarios que liberaron su plaza, si se reasigna.
Reportes
Puede generar y enviar informe tras la asignación, según configuración.
3. 🗓️ Sorteo Quincenal con Preferencia por Tipo de Plaza (Lottery Fortnightly)
3. 🗓️ Sorteo Quincenal con Preferencia por Tipo de Plaza (Lottery Fortnightly)
¿Cuándo se ejecuta?
Primer día después del período de petición, respetando fines de semana.
También de forma reactiva, si un usuario libera una plaza.
Funcionamiento
Ejecuta solicitudes mediante peticiones HTTP diarias a LotteryFortnightlyHttpTrigger.
Asigna plazas aleatoriamente, considerando:
Preferencia por tipo de plaza (SidesTypeToggle), si está configurado.
Solo se asignan plazas compatibles con la preferencia del usuario, si está configurado.
Si no hay plaza compatible, la solicitud se rechaza.
Si no está configurado, es un sorteo aleatorio como el anterior.
Elimina reservas cedidas antes de la asignación.
El 15 y el 1 no cuentan como dia de anticipado
Si no encuentra disponibilidad en el orden de prioridad 1 para asignar la plaza va al siguiente orden de prioridad (tipo de plaza).
Notificaciones
A los usuarios con reserva asignada.
A los usuarios rechazados por falta de plazas o incompatibilidad de tipo de plaza.
A los usuarios que liberaron su plaza, si se reasigna.
Reportes
Puede generar informe al finalizar el proceso quincenal.
🚨 Complementos Funcionales Comunes
🚨 Complementos Funcionales Comunes
Penalizaciones e Infracciones
✔️ Los usuarios que no realizan el check-in de su reserva pueden ser penalizados automáticamente si la oficina tiene activada la opción penaltiesEnabled.
✔️ Alternativamente, se puede aplicar el sistema de infracciones (infrigmentsEnabled) que sigue una progresión:
Primera infracción: Advertencia informativa.
Segunda infracción: Penalización temporal según configuración.
Tercera infracción: Penalización más severa.
✔️ Las penalizaciones bloquean al usuario en futuros sorteos o asignaciones.
✔️ Los usuarios son notificados por email de las penalizaciones o infracciones en su idioma.
✔️ La penalización puede expirar tras un tiempo sin reincidencias.
Reportes Automáticos
✔️ El sistema puede generar informes diarios con las reservas asignadas.
✔️ Los reportes se envían en formato CSV, incluyendo:
Usuario, tipo de empleado, fecha, zona, plaza, vehículo, turno, estado, origen de la reserva.
✔️ Los reportes se pueden configurar para:Enviarse siempre, en horario concreto (ParkingTodayNotificationsReportsTime).
Solo tras la ejecución de los algoritmos, si sendAfterAlgorithmExecutionEnabled está activo.
✔️ Se envían a emails predefinidos por oficina y a los administradores internos de Hybo.
⚙️ Configuraciones Disponibles por Oficina y Algoritmo
⚙️ Configuraciones Disponibles por Oficina y Algoritmo
Configuración | Descripción | Aplica a |
| Activa o desactiva el sistema de pre-reservas. | Todos |
| Activa penalizaciones automáticas por no check-in. | Tradicional |
| Activa el sistema de infracciones progresivas. | Tradicional |
| Considera la zona elegida por el usuario al asignar plaza. | Tradicional |
| Prioriza la asignación por tipo de empleado. | Tradicional |
| Prioriza asignación por tipo de zona y vehículo eléctrico. | Tradicional |
| Notifica al usuario que liberó su plaza si esta es reasignada. | Todos |
| Envía informe automático tras ejecutar el algoritmo. | Todos |
| Bloquea nuevas asignaciones tras ejecutar el algoritmo. | Todos |
| Hora diaria de ejecución del algoritmo tradicional. | Tradicional |
| Activa el sorteo semanal aleatorio. | Lottery |
| Día de la semana en que se ejecuta el sorteo semanal. | Lottery |
| Activa el sorteo quincenal por tipo de plaza. | Lottery 15 días |
| Días de antelación para solicitar plaza en el sorteo quincenal. | Lottery 15 días |
| Considera el tipo de plaza solicitado en el sorteo quincenal. | Lottery 15 días |
| Fecha inicial desde la cual se analizan reservas anteriores. | Tradicional |
| Cantidad de semanas hacia atrás para contar reservas previas y definir prioridades. | Tradicional |
| Horarios concretos para el envío automático de reportes diarios. | Todos |
| Activa el envío de reportes diarios de reservas. | Todos |
| Notifica por email la primera infracción cometida. | Tradicional |
💡 Este sistema flexible y configurable garantiza:
Asignación justa y priorizada en escenarios estándar.
Sorteos aleatorios transparentes para fomentar la equidad.
Penalización efectiva de incumplimientos.
Notificación y trazabilidad completa.
Compatibilidad con múltiples casuísticas y tipos de usuarios.
Configuraciones adaptables por oficina según necesidades concretas.
Para más información, contáctanos en 📧 [email protected].