Alojamiento y alquiler
Planificación de habitaciones y unidades para hoteles y flotas de alquiler
Hoteles y flotas de alquiler venden tiempo sobre unidades físicas: una habitación tres noches, una furgoneta una semana. El tablero de planificación convierte reservas en asignaciones a unidades concretas, respeta de verdad los huecos para limpieza y reparaciones, y muestra dónde está a punto de agotarse el inventario.
Se vende un tipo, se entrega una unidad
Los huéspedes reservan un tipo de habitación, no la 214. Quien alquila reserva una categoría de vehículo, no una matrícula. Después, la operación asigna cada reserva a una unidad real para que las estancias encajen una tras otra, sigan siendo posibles las mejoras de categoría y se respeten peticiones como una habitación tranquila o accesible.
La rotación marca el ritmo. Una habitación que se deja a las 11:00 debe limpiarse y revisarse antes de una llegada a las 14:00; un coche devuelto necesita limpieza, una comprobación del combustible y a veces una reparación antes de la siguiente recogida. Las unidades también salen del inventario durante más tiempo: fuera de servicio por un arreglo de fontanería, retiradas de la venta por una reforma, en el taller por un mantenimiento programado.
Los errores llegan directamente al cliente. Dos reservas en una misma unidad significan un huésped realojado en otro hotel o un cliente ante un mostrador sin coche, así que el tablero debe poner difíciles las colisiones y dejar clarísima la disponibilidad que queda.
Decisiones en recepción y en el mostrador de alquiler
- 01
Qué unidad recibe la reserva
Asignar por planta, vistas, accesibilidad o kilometraje, y dejar las estancias largas en unidades que no habrá que cambiar a mitad de estancia.
- 02
Cambiar una estancia de habitación
Un cambio de habitación mantiene las fechas y cambia la unidad. A menudo es la única forma de encajar una prolongación o liberar dos habitaciones comunicadas.
- 03
Sacar una unidad del inventario
Los periodos fuera de servicio y de mantenimiento deben bloquear una unidad durante un tiempo sin hacerse pasar por una reserva.
- 04
Proteger el hueco de preparación
Una salida y una llegada el mismo día es lo normal, pero solo si queda tiempo entre ambas para la limpieza de la habitación o la preparación del vehículo.
- 05
Vigilar las noches ajustadas
Cuando un tipo está casi lleno en una fecha, el personal deja de mover reservas y protege lo que queda.
Cómo modelar estancias y alquileres
Las filas son unidades agrupadas según lo que vendes, los eventos son estancias o alquileres a sus horas reales y la ocupación es una cifra que calcula tu aplicación.
- Recursos
- Construye un árbol de tipos de habitación y habitaciones, o de categorías de vehículo y vehículos, con treePreventParentUsage para que una fila de grupo no admita reservas. Las columnas de la cabecera de fila pueden mostrar la planta y el estado de limpieza, o la matrícula y el kilometraje.
- Eventos
- Una estancia es un intervalo semiabierto de varios días, por ejemplo de 2026-10-02T14:00:00 a 2026-10-05T11:00:00. Con useEventBoxes a «Never», llegadas y salidas se dibujan a su hora real dentro de la celda del día, así que una estancia que sale y otra que llega comparten día sin chocar.
- Escala temporal
- Las celdas de día con cabeceras de mes encajan en una recepción; los niveles de zoom por semanas y meses muestran una temporada. Una franja de minimapa sobre la rejilla puede mostrar la ocupación por noche que calcula tu aplicación.
- Reglas
- Rechaza los solapes en una unidad con allowEventOverlap a false y bloquea los periodos fuera de servicio como celdas deshabilitadas. Para un simple cambio de habitación, pon moveHDisabled en la estancia para que el arrastre pueda cambiar la unidad pero no las fechas. Confirma cada asignación con tu backend en onEventMove antes de aplicarla.
Tablero de planificación y sistema de gestión
- Estancias de varios días dibujadas a sus horas reales de llegada y salida
- Árboles de tipos de habitación y categorías de vehículo con grupos plegables
- Arrastre a otra unidad, con las fechas bloqueadas si quieres
- Rechazo de asignaciones solapadas y de soltar reservas en periodos fuera de servicio
- Un minimapa que dibuja la serie de ocupación que le pasas
- Temas para modo claro, modo oscuro y colores de marca
- Tarifas, inventario por tipo y disponibilidad vendida por canales
- La política de overbooking y la comprobación definitiva de disponibilidad
- Los flujos de limpieza y de taller que cambian el estado de las unidades
- Datos de huéspedes y clientes de alquiler, pagos y documentos
- Huecos mínimos de preparación por tipo de unidad, aplicados como regla
Ejemplos que funcionan
- Casa NomaPlanning de habitaciones de hotelGotea la ducha de la 104. Recoloca al siguiente cliente, bloquea la habitación para el fontanero y localiza las noches que ya están llenas.
- FleetlinePlanificación de una flota de alquilerUn compacto queda inmovilizado el día de la recogida. Pasa su alquiler a otro coche, respeta la limpieza y mira cuándo se queda sin flota la oficina.
Errores que cuestan una noche
Mezclar «última noche» y «fecha de salida»
Una reserva guardada con su última noche dura un día menos que una guardada con su fecha de salida. Pasa las fechas de salida como finales excluidos, o pon eventEndSpec a «Date» si tus datos guardan la última noche incluida, pero nunca mezcles las dos.
Modelar habitaciones fuera de servicio como reservas
Una reserva falsa infla la ocupación y se puede arrastrar sin querer. Usa celdas deshabilitadas para ese periodo, o un evento bloqueado de un tipo propio que tu cálculo de ocupación ignore.
Comprobar unidades pero no el inventario
Una reserva aún sin habitación asignada sigue consumiendo una de su tipo. Validar solo las filas visibles permite vender de más un tipo mientras todas las filas parecen correctas.
Contar barras en lugar de noches
La ocupación debe contar las unidades ocupadas por noche frente a las disponibles, sin las que están fuera de servicio. Contar eventos por día produce picos engañosos.
Preguntas
¿Cómo muestro la entrada a las 14:00 y la salida a las 11:00 en una línea de tiempo por días?
Pasa fechas y horas completas, como de 2026-10-02T14:00:00 a 2026-10-05T11:00:00, y pon useEventBoxes a «Never». La barra empieza a mitad del día de llegada y termina a mitad del día de salida y, como los finales son excluyentes, una llegada a las 14:00 el día de salida no se solapa.
¿Puedo mover una reserva a otra habitación sin cambiar sus fechas?
Sí. Pon moveHDisabled en el evento, por ejemplo mientras el usuario está en un modo «cambio de habitación», y el arrastre solo podrá cambiar la fila. Valida la habitación de destino en onEventMoving y confirma el cambio con tu backend.
¿Cómo bloqueo una habitación fuera de servicio?
Marca como deshabilitadas en onBeforeCellRender las celdas de esa habitación y ese periodo. Aparecen rayadas, rechazan que se suelten eventos o se hagan selecciones y no son reservas, así que quedan fuera de tus cifras de ocupación. Pon cellsDisabled en el recurso para retirar una unidad del servicio por completo.
¿Puedo usar la edición gratuita Lite para un tablero de ocupación?
Para una vista diaria de solo lectura con filas planas, sí: Lite muestra las reservas, apila los solapes y admite navegación por teclado. Los árboles de tipos de habitación, el arrastrar y soltar, los periodos bloqueados y el minimapa requieren Pro.
Dos demos, un mismo modelo
Casa Noma mueve una reserva entre habitaciones y coordina una ventana de mantenimiento; Fleetline reasigna un alquiler sin cambiar su duración. Las dos usan datos sintéticos.
Ejemplos que funcionan