Varauskalenteri on nimensä mukaisesti varausjärjestelmä esim. neuvotteluhuoneiden varaukseen.
Varaukset tallentuvat tietokantaan, josta haetaan myös varattavat huoneet. Uusia varauksia saa lisättyä hiirtä heiluttamalla. Varaukset näkyvät eri väreillä ja kootusti yhteenvedossa.
Ohjelma on tehty toimivaksi php + mysql ympäristössä. Graafiseen puoleen ei ole kiinnitetty huomiota, joten se jääköön muitten huolehdittavaksi.
Mikäli haluat jatkokehittää tai muuten vaan tutustua lähdekoodiin, tästä saat ladattua materiaalin.
Latausehtona on, että lähdekoodista muokattu ohjelma ei saa olla maksullisessa levityksessä.
Testaamaan pääset sitä tästä: Varauskalenteri demo.
Vakiomittaisia testaamaan tästä: Varauskalenteri demo 2.
17.04.2013 (uutta!)
Rajauksien hallintasivu, jossa voi määrittää aikoja, jolloin varauksia ei voi tehdä. Mahdollisuus määrittää aikavälin lisäksi erilaisia toistuvuusasetuksia yhdelle tai kaikille neuvotteluhuoneille. Huom! Jos teet toistuvaisvarauksen esim. ma-pe klo 11-12 loppuvuodeksi ja haluatkin poistaa ne, joudut klikkaamaan ne pois varaus kerrallaan eli massapoistoja ei tueta. ver.1.1.13
Rajausten hallinta
07.04.2013
Lähdekoodiin lisätty määritysmahdollisuudet päivän alkamis ja loppumisajoille. Lisäksi mahdollisuus määrittää varaukset pysymään määrityissä rajoissa (vakiomittainen varaus) eli esim. osa 60 min varauksesta ei mene rajojen ulkopuolelle. ver.1.0.12
29.03.2013
Nyt varauskalenterissa myös vakiomittaiset varaukset.
Ohjelma huolehtii, että päällekkäisiä varauksia ei pääse muodostumaan.
Koska ohjelmissa on joskus myös "yllätyksiä" ja "ominaisuuksia", laitan tähän listaa korjatuista asioista.
Ominaisuuksia:
- Yli viikon mittainen varaus mahdollista tehdä tekemällä varaus ja muokkaamalla sitä (siirretään esim. loppumisaikaa viikko kauemmaksi, tallennetaan ja muokataan samalla tavalla uudelleen.)
- Suora linkki haluttuun päivään (esim. index2.php?selected_date=2013-12-24)
Bugs:
Varaukset tallentuvat tietokantaan, josta haetaan myös varattavat huoneet. Uusia varauksia saa lisättyä hiirtä heiluttamalla. Varaukset näkyvät eri väreillä ja kootusti yhteenvedossa.
Ohjelma on tehty toimivaksi php + mysql ympäristössä. Graafiseen puoleen ei ole kiinnitetty huomiota, joten se jääköön muitten huolehdittavaksi.
Mikäli haluat jatkokehittää tai muuten vaan tutustua lähdekoodiin, tästä saat ladattua materiaalin.
Latausehtona on, että lähdekoodista muokattu ohjelma ei saa olla maksullisessa levityksessä.
Testaamaan pääset sitä tästä: Varauskalenteri demo.
Vakiomittaisia testaamaan tästä: Varauskalenteri demo 2.
17.04.2013 (uutta!)
Rajauksien hallintasivu, jossa voi määrittää aikoja, jolloin varauksia ei voi tehdä. Mahdollisuus määrittää aikavälin lisäksi erilaisia toistuvuusasetuksia yhdelle tai kaikille neuvotteluhuoneille. Huom! Jos teet toistuvaisvarauksen esim. ma-pe klo 11-12 loppuvuodeksi ja haluatkin poistaa ne, joudut klikkaamaan ne pois varaus kerrallaan eli massapoistoja ei tueta. ver.1.1.13
Rajausten hallinta
07.04.2013
Lähdekoodiin lisätty määritysmahdollisuudet päivän alkamis ja loppumisajoille. Lisäksi mahdollisuus määrittää varaukset pysymään määrityissä rajoissa (vakiomittainen varaus) eli esim. osa 60 min varauksesta ei mene rajojen ulkopuolelle. ver.1.0.12
29.03.2013
Nyt varauskalenterissa myös vakiomittaiset varaukset.
Ohjelma huolehtii, että päällekkäisiä varauksia ei pääse muodostumaan.
Koska ohjelmissa on joskus myös "yllätyksiä" ja "ominaisuuksia", laitan tähän listaa korjatuista asioista.
Ominaisuuksia:
- Yli viikon mittainen varaus mahdollista tehdä tekemällä varaus ja muokkaamalla sitä (siirretään esim. loppumisaikaa viikko kauemmaksi, tallennetaan ja muokataan samalla tavalla uudelleen.)
- Suora linkki haluttuun päivään (esim. index2.php?selected_date=2013-12-24)
Bugs:
- 13#.)
löydetty xx.04.2013, korjattu: 16.04.2013
Jos huomiselle tekee varauksen ja muokkaa sitä alkamaan ennen kalenterin aloitusaikaa, tulee ongelmia taas piilosarakkeita ym.
fix
Lisätty 1 tarkistus lisää rowspannin tekoon.
- 12#.)
löydetty 10.04.2013, korjattu: 14.04.2013
IE:llä varauksen lisääminen ei toimi. Eikä purkaminenkaan. Syy: IE:n kanssa $_SERVER['HTTP_REFERER'] ei toimi.
fix
Tehty käsin uusi hidden muuttuja referer. Samaan menkööt edit.php:n korjaus: lisätty sinnekin $DAY_START_TIME.
- 11#.)
löydetty 07.04.2013, korjattu 07.04.2013
Vakiomittaisesta varausta tehtäessä tuleville päiville, pituuden vaihto heitti kuluvalle päivälle.
fix
Lisätty vakiomittaiseen hidden selected_date
- 10#.)
löydetty 06.04.2013, korjattu 06.04.2013
Bugissa #5 korjattu vika jäi vielä add.php:lle. Sama ongelma. Quartersin maksimia ei tarkistettu.
fix
Lisätty quarters tarkistus, if ($quarters>673) $quarters=672;
Samalla selvisi yksi mysteeri, miksi maksimi quarters oli 3355 eli 34 päivää, 22 h, 45 min (838 h 45 min).
Timediffin maksimi (MySql) on 838:59:59 johtuen time:n rangesta. (http://dev.mysql.com/doc/refman/5.1/en/time.html)
- 9#.)
löydetty 22.03.2013, korjattu 22.03.2013
15 minuutin varaus ei onnistunut, jos lopetusajankohtana alkoi uusi varaus, seurausta bugin #8 tarkistuksesta
fix
poistettu toinen = -merkki tarkistussäännöistä (testIfReserved)
- 8#.)
löydetty 21.03.2013, korjattu 22.03.2013
Samanaikaisia varauksia oli mahdollista tehdä. Nyt tallennusvaiheessa tarkistetaan, oliko muita alla.
fix
Tarkistus ennen tallennusta. Tehty function testIfReserved($q, $st, $n)
- 7#.)
löydetty 19.03.2013, korjattu 21.03.2013
Oikeassa reunassa on parin pikselin kokoinen "piiloneukkari" sarake, jonka varaukset menevät oikeanpuolisen neukkarin tiliin. Tehdään varaus 8:00 - 18:30, kalenteri näyttää 4 "piiloa" ja kalenterin mukaan aika onkin 8:00 - 19:15. Ongelmavarauksen haku on tarkkaa, 15 min myöhäisempi aloitusajankohta tai 15 min aikaisempi lopetus, ja vikaa ei ole. Tämä pätkä tekee liian pitkän rowspanin
if (($siivu>41) && ($siivu2<0)) $siivu=$siivu3;
else
if ($siivu2>0) $siivu=$siivu-$siivu2;
fix
Koodattu uudelleen.
- 6#.)
löydetty 19.03.2013, korjattu 19.03.2013
tulevaisuuden varauksen aloitusaika on joskus väärin, laatikossa on virheellisesti 2 selectoitua (seurausta #2:sta)
fix
Muokattu bugin 2 koodia, jotta saatiin vertailukohdaksi nykyinen päivä, eikä alkamis/loppumisajan päiviä.
- 5#.)
löydetty 19.03.2013, korjattu 19.03.2013
Yli viikon pituinen varausmahdollisuus
1.) Tehdään varaus
2.) Tehdään toinen varaus samalle neukkarille, vaikka kahden kuukauden päähän
3.) Muokataan kohdan yksi varausta, nyt mahdollista valita loppuajaksi kohdan 2 aloitusaika-15 min.
fix
Muuttujan $quarters maksimia ei tarkistettu lainkaan editissä.
Lisätty: if ($quarters>673) $quarters=672;
- 4#.)
löydetty 18.03.2013, korjattu 19.03.2013
Viikonpäivän nimen näyttö sekoili kuukauden vaihteessa
fix
päivitetty $date->format('j') -->$thisYearAndDayofyear = $date->format('Y') . $date->format('z')
eli kuluvan kuukauden päivä vaihdettu kuluvan vuoden+vuoden päivän järjestysnumeroksi (yksilöllinen juokseva numerointi)
- 3#.)
löydetty 18.03.2013, korjattu 19.03.2013
longressiä ei merkitä, jos mennään kuukauden rajan yli varausta tehdessä (add+edit).
fix
nyt käytetään molemmissa
$alkupvm=date_create($_POST['start_time'])->format('Y') . date_create($_POST['start_time'])->format('z');
$loppupvm=date_create($_POST['end_time'])->format('Y') . date_create($_POST['end_time'])->format('z');
if ($loppupvm>$alkupvm) $overnigthinfo = ...
- 2#.)
löydetty 18.03.2013, korjattu 18.03.2013
ikuinen varaus taaksepäin nykyisestä päivästä
1.) Tehdään varaus, joka ulottuu vähintään kahdelle päivälle
2.) Muokattaessa seuraavana päivänä kyseistä varausta, aloitusajaksi asettuu 00.00.0000 00:00 (tai laitetaan kantaan aloituspäiväksi eilinen)
fix
Jos muokataan varausta, joka on alkanut ennen tätä päivää, laitetaan listalle (ainoastaan) alkup. aloitusaika
if ($date->format('z')<date_create()->format('z')) {
echo "<option selected=\"selected\" value=\"" . $date->format('Y-n-j H:i') . "\">" . $date->format('H:i (D, j.n.Y)') . "</option>\n"; break;}
Käytetty myöhemmin #4:n korjausta lisänä.
- 1#.)
löydetty 18.03.2013, korjattu ylläolevassa bugissa (#2)
ikuinen varaus taaksepäin nykyisestä päivästä
1.) Tilanteessa, jota ei saatu toistettua, varauksen aloitusajankohta jää tyhjäksi, kun varausta muokataan.
2.) aloitusajaksi asettuu 00.00.0000 00:00
fix
Lisätty tarkistus: Jos aloitusaika on tyhjä, estetään tallennus (ei siis varsinainen korjaus vaan bugin haitan esto).