Booking-system

Tags:    php

Hej alle på udvikleren.dk
Jeg er igang med at lave et booking-system, men ved ikke lige hvordan det er smartest at lave.

Systemet skal laves sådan at man f.eks. som frisør kan indtaste hvor lang tid en klipning tager, f.eks. 30min. Så kan man sige om der skal være tillægsydelser til der forlænger tiden. Det kunne være en farvning af hår, og så skriver frisøren at det tager 45min. Tillægsydelser kan der laves 3 af. det kunne også være f.eks. vask af hår, det tager måske 20min.

Så kan frisøren skrive hvornår hun har åbent. F.eks. 8 til 16. Og hun kan skrive hvor mange frisører der er i salonen. F.eks. 5 frisører.

Så får kunden vist en form, hvor han kan vælge tillægsydelserne, og får derefter vist hvad for nogle ledige tider der er.

Selve den del med at f.eks. frisøren skriver åbningstider, tillægsydelser er lavet og bliver gemt som et timestamp.

Men hvordan laver jeg den sidste del, med at kunden får vist de ledige tider?

Håber virkelig på hjælp!
Jakobvj



6 svar postet i denne tråd vises herunder
2 indlæg har modtaget i alt 8 karma
Sorter efter stemmer Sorter efter dato
Jeg vil ikke gemme tiden for hårvask som et timestamp. I stedet ville jeg nøjes med det antal sekunder det estimeres til. (20min * 60sek = 1200sek)

Herefter kan du se på hvornår kunden der skal have vasket hår skal starte(tid konverteres til unix.) Så lægger du de 1200sek , evt plus 300sek så har de også tid til at komme ud af stolen. Det er så deres aktuelle start og stop tider.
Er der en kunde herefter inden for en tidsramme der siger fra kunden med hårvask er færdig + den totale sum sekunder, så er det ikke muligt at reservere tid der.

Altså du skal operere med et par forskellige faktorer:
start og stop tider for første kunde,
start tid for næste kunde
start og stop tider for ny kunde.
åbningstid og lukketid som er de ydre grænser

Har prøvet at konstruere et pseudo eksempel:
Fold kodeboks ind/udPHP kode 


Se om du kan bruge det.



Hvad med at have en tilgængelige tidstabel.
tabel:
ID
SalonID
PersonID
FraTid
TilTid


Så er det bare at lave en søgning:
mysql_query("SELECT * FROM tabel WHERE $needed_time>=TilTid-FraTid");

Når en kunde så bestilte en tid. Skal du slette rækken med det ID og indsætte to nye rækker.

Hvis rækken starter ved x og slutter ved y og kunden bestiller en tid der starter ved a og slutter ved b er de to nye rækker:

ID, SalonID, PersonID, x ,a
ID, SalonID, PersonID, b ,y

tabel skal selvfølgelig fyldes med tider, men det ville frisørene vel gøre når de lavede skema om hvem der var på arbejde til hvilken tid.










Lidt kode ville hjælpe :-)



Ja det synes jeg jo også der mangler ;)

Der er ikke så meget jeg kan poste som egentlig har relevans til det jeg mangler.

Som skrevet ligger åbningstider som timestamp, ugens 7 dage liger i databasen, 0 hvis der er lukket, og 1 hvis der er åbnet den dag.

Så vil kunden booke, og det er der det går galt. Hvor lang tid ydelsen tager ligger i databasen, men der er også tillæg som kunden skal kunne vælge. når det er gjort skal den kigge hvad der er af ledigt?

Og det er det der er problemet. hvordan man kan se i databasen hvornår der er ledigt? hvordan det skal gemmes osv.




Det ser faktisk ganske fornuftigt ud michael.
Har så lige et par spørgsmål til det.

Hvordan vil du få vist de forskellige tider der er ledige? f.eks. tider hver 10min. 8.10-8.20-8.30 osv osv. det skal jo vises efter kunden har valgt om de vil have tilvalg til klipningen, da der skal laves en sql-forespørgsel for at se ledige tider.

Og hvordan vil du gemme de forskellgie ting i databasen? f.eks. længden på selve klipningen, og de tider som kunden nu booker.

VH



Til det spørgsmål: det vil jeg netop gemme som tidligere nævnt, med et start tidspunkt og det estimeret tidsforbrug i sekunder.

Hvis du forbereder din data til sidste gennemløb så burde det ikke være helt umuligt at opstille tider + optaget tid.

Dit sidste loop kan ligne noget a la.
Fold kodeboks ind/udPHP kode 




Indlæg senest redigeret d. 30.07.2010 19:53 af Bruger #10216
t