Recherche créneaux horaires disponibles à partir date de début et date de fin | Peupler un dropdown
Posté : 28 août 2016, 06:12
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 :
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
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 le dropdown avec 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).
.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
sont :fab_booking
book_crewstartdate = la date d'embarquement de l'équipage
Exemple 1 :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 : Tout sélectionner
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:00Prenons 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 : Tout sélectionner
Valeur | Label
25 | 19:30Les 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 : Tout sélectionner
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:301. "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 le dropdown avec les heures d'embarquement disponibles pour le client
Merci d'avance pour toute suggestion qui pourraient m'aider à avancer.
Marc