Bonjour,
Je suis entrain de développer un système de prise de rendez-vous en ligne dans un SPA
Un rendez-vous concerne :
- Un Client (IdClient)
- Un Service (IdService. Ex. Massage Relaxant, Soin Visage , ...etc)
- Une date
- L'heure début
- L'heure Fin
- Une Ressource Humaine : il s'agit de l'employé qui prendra en charge le client( ex. Employé 1, Employé 2, Employé 3...)
- Un Emplacement , il s'agit ici de la salle ou se fera le rdv (ex. Salle 1, Salle 2, Salle 3,...etc)
Mes contraintes sont les suivante :
a- Chaque Soin (Service) dispose d'une liste d'employés qualifiés pour réaliser ce soin.
Exempe :
Le soin "Massage Corporel" ne peut être réalisé que par "Geraldine" et "Leila"
b- Chaque Soin (Service) dispose d'une liste de salles où il peut être réalisé
Exemple : Le soin "Massage Relaxant" ne peut être réalisé uniquement dans les Salles 1 et 4.
c- Une Salle ne peut être affectée à deux RDV simultanément
d- Un Employé ne peut être chargé de deux RDV simultanément.
Je souhaiterai donc réaliser un système qui permette à un client de
1. Sélectionner une date
2. Sélectionner un ou plusieurs soins
3. Visualiser les créneaux disponibles, en tenant compte des contrainte (a,b,c et d)
Le problème que je rencontre, est lorsque le client, choisi plusieurs soins pour une date donnée (en 1), donc forcément plusieurs RDV au même jour
Dans ce cas, il serait préférable de proposer au client des créneaux adjacents
l'idée qui me vient consiste à calculer les créneaux disponible de chaque soin choisi, ensuite faire un croisement entre les créaneau disponible de manière à faire sortir une combinaison adjacentes si elle existe.
C'est en quelque sorte, une solution "exaustive" qui me parait pas très propre, surtout si le nombre de soin est important.
Je me demande alors, s'il existe des algorithmes propores à ce type de problème?
Merci par avance.
Bien à vous.
Réda
Partager