El feriado que nadie previó
Hay veinte grupos con horario fijo. Cae un feriado en martes. Ninguno de los cinco grupos de ese día va a venir, y todos lo dan por sabido sin avisar.
Si esos turnos existen como registros generados, alguien tiene que entrar y cancelar cinco reservas una por una para liberar las canchas. Si no existen —si el horario fijo es sólo una anotación— nadie los tiene que cancelar, pero tampoco hay forma de venderle esas cinco horas a otro, porque el sistema no sabe que ese día quedaron libres.
Las dos alternativas obvias fallan por el mismo motivo: tratan la recurrencia como si fuera todo o nada. O es una regla rígida sin excepciones, o son reservas sueltas sin ningún vínculo entre sí.
La regla y las instancias, las dos cosas
La estructura que funciona guarda dos objetos distintos. Por un lado la plantilla, que dice qué recurso, qué día de la semana, qué horario y desde cuándo. Por otro, las instancias concretas que esa plantilla produce, cada una con su fecha, su estado y su cobro.
La plantilla no aparece en ninguna grilla; lo que se ve son las instancias. Y cada instancia se puede mover, cancelar o cobrar sin que la plantilla se entere, porque la relación es de origen y no de dependencia permanente.
En Tercer Tiempo hay más de 60 plantillas de turno fijo activas, y la mayoría de los turnos del complejo nace de ellas sin que nadie toque el teclado.
Hasta dónde generar por adelantado
Las instancias no se pueden generar hasta el infinito: hay que elegir un horizonte. Poco horizonte y la grilla del mes que viene aparece vacía cuando alguien quiere reservar con anticipación. Mucho horizonte y cualquier cambio en la plantilla obliga a revisar cientos de instancias futuras.
El equilibrio razonable es generar unas semanas hacia adelante y correr el horizonte con una tarea que se ejecuta sola, de madrugada. Así el sistema siempre tiene las próximas semanas materializadas y nunca acumula un año de turnos que quizás no existan.
Esa tarea tiene que ser idempotente: si por algún motivo corre dos veces el mismo día, no puede duplicar turnos. Suena obvio y es el error que más veces aparece en implementaciones que funcionaron bien durante meses.
Cuando la excepción es de una sola fecha
Un feriado, una semana de vacaciones, un partido que se corre una hora. Cada una de esas cosas afecta a una o pocas instancias y no debería tocar la plantilla.
Por eso conviene poder cancelar en bloque por fecha: elegir un día y liberar todas las instancias de turno fijo de esa jornada de una sola vez, dejando la plantilla intacta para la semana siguiente. Es una operación de treinta segundos que reemplaza veinte cancelaciones manuales.
El horario que se libera así queda disponible para reservar como cualquier otro, y esa es la mitad del valor: un feriado deja de ser un día perdido y pasa a ser un día con cinco horas a la venta.
Cuando el turno fijo se termina
Los grupos se disuelven, las temporadas terminan y la gente deja de venir. Lo que no puede pasar es que el horario siga bloqueado por inercia.
Desactivar la plantilla frena la generación de instancias nuevas, pero hay que decidir qué pasa con las que ya están creadas: normalmente conviene liberar sólo las futuras y dejar intacto el historial, porque esas instancias pasadas tienen cobros asociados que forman parte de la contabilidad.
Ese es el motivo por el que la plantilla se desactiva en lugar de borrarse. Borrarla dejaría instancias históricas sin origen, y en algún momento alguien va a querer saber de dónde salió un turno de hace ocho meses.
Ocho canchas, dos deportes y una caja que cerraba a mano
En Tercer Tiempo los clientes con horario fijo se cargaban de nuevo cada semana, uno por uno. Hoy se definen una vez y el sistema genera la semana completa antes de que alguien abra el local.
Ver el caso completoPreguntas frecuentes
¿El cliente fijo tiene que confirmar cada semana?
No, y ese es el punto. El turno existe hasta que alguien diga lo contrario. Pedirle confirmación semanal a quien viene hace dos años es agregar una tarea que nadie va a hacer.
¿Puedo tener un precio distinto para los fijos?
Sí. La plantilla puede llevar su propio precio, que suele ser menor al del turno suelto porque asegura ocupación. Y una instancia puntual puede cobrarse distinto sin que eso cambie el precio de las demás.
¿Qué pasa si un fijo quiere cambiar su horario?
Se desactiva la plantilla vieja desde una fecha y se crea la nueva. Las instancias ya generadas del horario anterior se liberan y las del nuevo se materializan, sin tocar el historial de lo que ya se jugó y se cobró.
¿Sirve esto fuera de un complejo deportivo?
Sí. La misma estructura resuelve una clase semanal, una sesión de kinesiología que se repite tres veces por semana o un servicio con visitas programadas. Cambia el vocabulario, no el modelo.
¿Puedo ver qué horarios fijos tengo ocupados?
Sí. Las plantillas activas se listan aparte de la grilla, así se puede ver de un vistazo qué franjas están comprometidas de forma permanente y cuáles quedan libres para vender.
¿Y si el fijo debe varias semanas?
Como cada instancia tiene su propio estado de cobro, el saldo pendiente de un cliente fijo se ve acumulado sin necesidad de revisar semana por semana. Esa es una de las razones para materializar los turnos en vez de calcularlos al vuelo.
Seguir leyendo
Sistema de gestión para complejos deportivos
Reservas online, turnos fijos, cantina y caja en un solo sistema. Para complejos de fútbol 5, fútbol 7 y pádel. Con un caso real en funcionamiento.
Sistema de reservas online para canchas
Que tus clientes reserven y paguen sin llamarte. Grilla de canchas, señas, cancelaciones y confirmación automática.
Sistema de turnos online para consultorios
Turnos que se reservan solos, agenda por profesional y ficha de paciente en la misma pantalla.
Caja y cierre diario en un sistema de gestión
Que el cierre del día sea un botón y no una tarde con la calculadora. Movimientos, medios de pago y diferencias.