Bonjour,
J'ai créé un formulaire de réservation à partir duquel un client peut réserver une embarcation avec son équipage pour une durée unique de 3 heures. Au delà de 3 heures, la réservation se fait en backoffice.
Rechercher les créneaux disponibles à la réservation
Lorsque le client choisit une date de réservation via un date picker, je souhaiterais :
Veuillez noter que des entraînement et des événements internes, qui peuvent avoir des durées variables comprises entre 01:00 et X heures, sont également enregistrés dans la table
.
Les dates de début et de fin des sorties (réservations clients, entraînements et événements internes) existantes sont à vérifier | comparer dans les deux champs suivants de la table
sont :
Exemple 1 :
S'il existe une réservation client le jour même par exemple entre 12:00 à 18:00, une entraînement de 06:00 à 08:00, alors il existe un créneau de 6 heures entre 18:00 et 00:00 pour cette date.
Exemple 2 :
S'il un entraînement le jour même par exemple entre 14:00 et 16:00, alors il existe neuf créneaux de 6 heures entre 06:00 et 14:00 et entre 16:00 et 00:00.
Peupler un dropdown avec les heures d'embarquement disponibles
Lorsque les créneaux disponibles ont été trouvés, je souhaiterai peupler un dropdown avec les heures d'embarquement disponibles pour le client.
Les valeurs possible de ce dropdown sont rendues par tranche d'une demi-heure :
Attention : les entraînements enregistrer dans la table fab_booking peuvent débuter toutes les 15 minutes, les événements internes quant à eux toutes les 30 minutes comme c'est le cas pour les réservations clients. Je suppose que cela doit être pris en compte dans la recherche de créneaux disponibles.
Prenons l'exemple 1 :
Le créneau de 6 heures est de 16:00 à 00:00. L'équipage embarque 01:30 avant le client, l'heure d'embarquement du client peut donc intervenir à 19:30 uniquement :
19:30 étant la dernière heure d'embarquement possible : 19:30 à 22:30 (durée de 3 heures) + 01:30 nécessaire à l'équipage pour remettre en état l'embarcation et nous arrivons bien à 00:00.
Ma dropdown devrait être peuplée avec les valeurs suivantes afin que le client puisse choisir l'heure d'embarquement qui lui convient :
Prenons l'exemple 2 :
Les dix créneaux disponibles de 6 heures sont entre 06:00 et 14:00 et entre 16:00 et 00:00. L'heure d'embarquement du client peut donc intervenir à 07:30, 08:00, 08:30, 09:00, 09:30, 17:30, 18:00, 18:30, 19:00 et 19:30.
Ma dropdown devrait être peuplée avec les valeurs suivantes afin que le client puisse choisir l'heure d'embarquement qui lui convient :
Deux problèmes se posent donc à moi :
1. "Activer" les dates du date picker si au moins un créneau de 6 heures existe pour la date choisie par le client
2. Peupler les heures d'embarquement disponibles pour le client
Merci d'avance pour toute suggestion qui pourraient m'aider à avancer.
Marc
J'ai créé un formulaire de réservation à partir duquel un client peut réserver une embarcation avec son équipage pour une durée unique de 3 heures. Au delà de 3 heures, la réservation se fait en backoffice.
Rechercher les créneaux disponibles à la réservation
Lorsque le client choisit une date de réservation via un date picker, je souhaiterais :
- qu'il ne puisse choisir la date que s'il existe un créneau de 6 heures disponible entre 06:00 et 00:00. 6 heures ( 6 heures car il faut 01:30 heure à l'équipage pour préparer la sortie et 01:30 heure pour remettre en état l'embarcation après la sortie de 3 heures).
Veuillez noter que des entraînement et des événements internes, qui peuvent avoir des durées variables comprises entre 01:00 et X heures, sont également enregistrés dans la table
fab_booking
Les dates de début et de fin des sorties (réservations clients, entraînements et événements internes) existantes sont à vérifier | comparer dans les deux champs suivants de la table
fab_booking
book_crewstartdate = la date d'embarquement de l'équipage
book_crewenddate = la date de débarquement de l'équipage
S'il existe une réservation client le jour même par exemple entre 12:00 à 18:00, une entraînement de 06:00 à 08:00, alors il existe un créneau de 6 heures entre 18:00 et 00:00 pour cette date.
Exemple 2 :
S'il un entraînement le jour même par exemple entre 14:00 et 16:00, alors il existe neuf créneaux de 6 heures entre 06:00 et 14:00 et entre 16:00 et 00:00.
Peupler un dropdown avec les heures d'embarquement disponibles
Lorsque les créneaux disponibles ont été trouvés, je souhaiterai peupler un dropdown avec les heures d'embarquement disponibles pour le client.
Les valeurs possible de ce dropdown sont rendues par tranche d'une demi-heure :
Code:
1 | 07:30 2 | 08:00 3 | 08:30 4 | 09:00 5 | 09:30 6 | 10:00 7 | 10:30 8 | 11:00 9 | 11:30 10 | 12:00 11 | 12:30 12 | 13:00 13 | 13:30 14 | 14:00 15 | 14:30 16 | 15:00 17 | 15:30 18 | 16:00 19 | 16:30 20 | 17:00 21 | 17:30 22 | 18:00 23 | 18:30 24 | 19:00 25 | 19:30 26 | 20:00
Prenons l'exemple 1 :
Le créneau de 6 heures est de 16:00 à 00:00. L'équipage embarque 01:30 avant le client, l'heure d'embarquement du client peut donc intervenir à 19:30 uniquement :
19:30 étant la dernière heure d'embarquement possible : 19:30 à 22:30 (durée de 3 heures) + 01:30 nécessaire à l'équipage pour remettre en état l'embarcation et nous arrivons bien à 00:00.
Ma dropdown devrait être peuplée avec les valeurs suivantes afin que le client puisse choisir l'heure d'embarquement qui lui convient :
Code:
Valeur | Label 25 | 19:30
Les dix créneaux disponibles de 6 heures sont entre 06:00 et 14:00 et entre 16:00 et 00:00. L'heure d'embarquement du client peut donc intervenir à 07:30, 08:00, 08:30, 09:00, 09:30, 17:30, 18:00, 18:30, 19:00 et 19:30.
Ma dropdown devrait être peuplée avec les valeurs suivantes afin que le client puisse choisir l'heure d'embarquement qui lui convient :
Code:
Valeur | Label 1 | 07:30 2 | 08:00 3 | 08:30 4 | 09:00 5 | 09:30 21 | 17:30 22 | 18:00 23 | 18:30 24 | 19:00 25 | 19:30
1. "Activer" les dates du date picker si au moins un créneau de 6 heures existe pour la date choisie par le client
2. Peupler les heures d'embarquement disponibles pour le client
Merci d'avance pour toute suggestion qui pourraient m'aider à avancer.
Marc