formulaire de réservation et calcul automatique

mluce

Habitué
Bonjour,

Je dois réaliser un formulaire de réservation pour de la location d'engins à deux-roues qui calcule automatiquement le tarif que devra payer le client en fonction de trois critères :
- le temps qu'il passera avec le véhicule (cela peut aller de quelques heures à quelques mois)
- les heures pendant lesquelles il aura le véhicule en sa possession (certaines heures sont plus chères que d'autres, par exemple le soir)
- les jours pendant lesquels il aura le véhicule en sa possession (certains jours, comme les jours fériés ou les dimanches, sont plus chers)
Pour l'instant, tout ce que je sais faire avec certitude, c'est le calcul du nombre d'heures total passé avec le véhicule. Pour ce qui concerne les heures de la journée et les jours de l'année plus chers, je ne sais pas trop comment m'y prendre. Je suppose qu'il me faut créer un calendrier dans une base de données mysql, par contre pour faire communiquer le formulaire et la base de données je ne sais pas trop. De plus, le coup du calendrier résout le problème des jours plus chers mais pas forcément le problème des heures plus chères. Quelqu'un aurait-il une piste à me donner ?

Merci beaucoup !


 

boub popsyteam

Grand Maître
Je verrais bien 2 tables:
1 table calendrier qui définit les jours plus chers (365 lignes)
1 table heures qui définit les heures plus chères (si c'est une constante quelque soit le jour (24 lignes - Sinon il faudrait 365*24 lignes ... ce qui reste faisable ;))

Apres à toi de regarder dans la bonne table selon que tu comptes ta location en heures ou en jours ... ou les 2 si tu comptes en heures tous les jours et que les hausses de prix se cumulent ;)
 

mluce

Habitué
J'aime bien ton idée de faire une table pour les heures, par contre dans mon formulaire j'ai aussi les minutes. Ca voudrait donc dire que je dois faire une table pour chaque heure et chaque minute ?
 

boub popsyteam

Grand Maître
Je doutes que le tarif change selon les minutes ;)

Mais bon tu peux clairement mettre des bornes de temps en decimal en effet ;)

à 10.5 il est 10h30 :o

Tu pourrais creer une table non pas pour chaque heure, mais pour chaques tranches de tarifs avec une heure (minutes, secondes etc) de debut et de fin.

Apres tu compares ton heure avec les tranches et hopla tu as ton tarif.
 

mluce

Habitué
Merci pour vos conseils.

Finalement, pour les heures j'ai utilisé des calculs basés des conditions :
- si la date de début et de fin sont pareilles
- si la date de début et de fin sont différentes
Pour la deuxième condition, j'ai fait le calcul du premier jour, calcul du dernier jour et calcul des jours entre. En effet, pour les jours entre, c'est le même nombre d'heures plus chères par jour, donc facile à calculer.

Par contre, pour les dimanches et jours fériés, je vais utiliser un calendrier dans une base de données.

Pouvez-vous m'en dire plus concernant les valeurs décimales ? Mon nombre d'heures total apparaît au format type 5.25 au lieu de 5h15 et je ne sais pas comment changer le format. :??:

 

mluce

Habitué
J'ai trouvé une solution pour le format des minutes. Maintenant je cherche comment convertir du texte en date. En effet, l'utilisateur rentre une date en format texte dans mon formulaire et il faut que je convertisse ce texte en un format date reconnu par mysql. Savez-vous comment faire ?
 

KangOl

Grand Maître
faut que tu forces l'utilisateur a rentrer la date dans un format connu...
 

mluce

Habitué
Mais les dates rentrées dans ma base mysql sont au format yyyy-mm-dd alors je ne sais pas si ce format va trop m'aider :heink:
 

boub popsyteam

Grand Maître
Bah ça ne pause AUCUN problèmes de passer de l'un à l'autre c'est trivial ...


http://pcaboche.developpez.com/article/mysql/fonctions-date-heure/ ;)
 

mluce

Habitué
Finalement, j'ai trouvé la solution à mon problème. Je créeais une variable de date au format yyyy-mm-dd. Finalement, j'ai essaye plus ou moins au hasard d'enlever les tirets. Et le format yyyymmdd est reconnu sans problème par ma base de données, youpi !
 
Vous devez vous inscrire ou vous connecter pour répondre ici.
Derniers messages publiés
Statistiques globales
Discussions
730 132
Messages
6 718 000
Membres
1 586 387
Dernier membre
ouistititouille
Partager cette page
Haut