Module réservations
AuraPOS intègre un planning de réservations complet avec interfaces graphiques avancées : planning du jour, vues calendrier semaine/mois, drag and drop avec snap 15 min, shifts configurables et liste d'attente automatique.
Disponibilité
Inclus dans les éditions Studio, Restaurant, Group et Restaurant Group. Visible uniquement si le type de commerce est HORECA ou SERVICES.
Modèle générique
Le module utilise un modèle générique qui s'adapte à 2 usages :
- HORECA : ressource = table (
TABLE:T05,TABLE:T12+T13pour table fusionnée) - Services : ressource = praticien (
PRESTA:Marie,PRESTA:Salon_VIP)
Une réservation peut référencer plusieurs ressources simultanément (cas typique HORECA : table 5+6 fusionnée pour un groupe de 8 personnes).
Vue planning du jour
Ouvre par défaut sur la date du jour avec :
- Header : sélecteur de date (DateTimePicker custom format
dddd dd/MM/yyyy), boutons rapides Hier / Aujourd'hui / Demain, filtre statut, recherche client/téléphone - ListView 8 colonnes : Heure / Durée / Client / Couverts (X (YA+ZE)) / Ressources / Statut / Source / Remarques
- Couleurs background+foreground par statut : vert = Arrivée, bleu = En service, gris = Terminée, rouge = No-show, orange = En attente
- Footer actions : Nouvelle / Détails / Marquer arrivée / No-show / Annuler / Fermer (boutons H=40, footer=72, convention kiosque tactile)
Vues calendrier semaine et mois
Toggle de 3 boutons en header pour basculer entre les 3 vues :
Vue semaine
- 7 colonnes Lun-Dim, axe Y heures 8h-24h, scroll vertical
- Click = ouverture fiche réservation
- Drag and drop 3 axes :
- Vertical : changement d'heure (snap 15 min)
- Horizontal : changement de ressource (table)
- Resize bord bas (5 px sensible) : changement de durée
- Validation conflit live (ghost rouge si conflit avec autre réservation)
- Persistance auto au relâcher
Vue mois
- Grille 7×6 (mois complet) avec heatmap densité par jour
- Click sur un jour = switch automatique vers vue Jour
Fiche création / édition
Modal ClientSize 720×780 avec 4 sections :
- Date + créneau : date picker custom + heure picker ShowUpDown + durée NumericUpDown (15-600 min step 15). Fin estimée calculée et affichée live.
- Client : RadioButton existant→ComboBox autocomplete sur la base clients OU Guest→TextBox Nom+Téléphone libres
- Couverts : 3 NumericUpDown (Total + Adultes + Enfants)
- Ressources : ListBox sélectionnée + ComboBox suggestions LIBRES (filtrées en live par
ReservationService.FiltrerRessourcesLibresParmi) + boutons Ajouter / Retirer
Détection de conflit live : à chaque changement (date / heure / durée / ressource), appel DetecterConflits → label rouge avec référence de la réservation en conflit.
Email de confirmation : bouton "📧 Envoyer confirmation" qui ouvre un mailto pré-rempli avec date / heure / couverts / ressources / occasion / remarques + signature NomCommerce. Lookup email automatique depuis le client lié, sinon InputBox.
Shifts / services HORECA
Configurez vos services (déjeuner / dîner) avec :
- Code + Nom affichés dans la fiche
- Jours actifs (bitmask) : ex Lun-Ven uniquement
- Heures début/fin : ex 12h-14h pour déjeuner
- Durée moyenne couvert : ex 90 min → pré-rempli automatiquement dans la fiche
- Capacité simultanée : nombre max de couverts en parallèle
- Rotation active : si oui, panel radio Standard/Rotation visible dans la fiche
Configuration depuis Paramètres → Services HORECA (visible si TypeCommerce = HORECA).
Double seating
Avec un shift où RotationActive = true, vous proposez 2 services consécutifs sur la même table (ex : 19h → 21h, puis 21h → 23h).
- Dans la fiche réservation, le radio "Rotation" recale automatiquement
DateHeureDebutà l'heure de rotation etDureeRotation ReservationService.SuggererCreneauxpropose les bons créneaux selon la dispo des tables
Liste d'attente automatique
Quand une table se libère (annulation, no-show, fin de service), AuraPOS scanne automatiquement les réservations EnAttente et les promeut.
- Bandeau orange en haut de
FormReservationssi N candidats EnAttente - Dialog "Voir" → liste des candidats avec bouton Promouvoir
- Hook auto après
MarquerNoShow/MarquerTerminee/Annuler/ changement de jour
Intégration salle + caisse
FormSalle (HORECA)
Cache _resasDuJour rafraîchi à Recharger(). Badge en haut-droite des tables (40×16 px) avec heure début + couleur par statut :
- Bleu = Confirmée / Provisoire à venir
- Vert = Arrivée / En service
- Orange = En attente
FormCaisse (mode table)
À l'ouverture en mode table : trouve la résa active (TrouverResaActiveSurTable), l'affiche dans le bandeau supérieur (📅 Resa #X (client, Yp)), bascule auto Confirmée/Provisoire → Arrivée.
À l'encaissement (juste avant FermerTable) : si une résa est liée → set r.TicketId = ticket.Id + r.Statut = Terminee + Modifier(r). Best-effort, ne bloque pas la clôture.
Permissions
Permission UserRights.Reservations (default false, Manager+ via ForRole). Migration auto rétroactive des Manager+ existants au boot.
Carte "Réservations" visible dans FormLauncher uniquement si :
- Type de commerce = HORECA ou SERVICES
- ET l'utilisateur a la permission
Reservations
Tablette serveur
L'API /api/v1/reservations?date=YYYY-MM-DD + PATCH /api/v1/reservations/{id} est exposée pour la tablette serveur Android (aurapos-pad). Vue planning consultable + actions statut (Arrivée / No-show / Annuler) en LAN local.
Restes à venir (V2.2 + V2.3)
- Web public : widget JS embeddable + API publique
/reservation/create(V2.2) - SMS rappel J-1 via Twilio / OVH / MessageBird (~5-7c/SMS, V2.3)
- Acompte CB via intégration Mollie (V2.3)
- Intégration TheFork prio BE puis Google Reserve (V2.3+)