Nyílik, záródik, oké, de hogyan?
Akkor most egy kicsit a program lelkivilágáról, működéséről. Amikor (bármilyen módon) megnyitjuk valamelyik gépet, akkor egy SQL adatbázis táblázatában egy „statusz” nevezetű oszlopba bekerül az adott géphez, hogy „FOGLALT”. Ebből tudja a kliensprogram, ami fut a nyilvános gépen, gépeken, hogy milyen az ő saját státusza. Ha ebben a rublikában „FOGLALT” bejegyzés található, akkor feloldja a zárolást, a gép használható, ha „SZABAD” bejegyzés van, akkor pedig zárolja, a géppel semmit sem lehet csinálni, még a kikapcsoló gombra sem reagál. Ha pedig a státuszként „KARBANTARTÁS” bejegyzés van, akkor a Karbantartásnak megfelelő jogokkal nyílik a gép.
Akkor most lássuk, hogy mit látnak a felhasználók, akik rápillantanak egy lezárt gép monitorára:
Ha nem látszana a képről: „A GÉP ZÁROLVA! Előfizetést vásárolhat vagy hosszabbíthat az Információnál!”Ez a szöveg természetesen szabadon módosítható, szintén az SQL adatbázis config táblázatában, ahol más egyéb beállítások is módosíthatóak.
A kliensprogram úgy van beállítva, hogy 3 másodpercenként kérdezi le a szerverről, hogy milyen az ő státusza és ha „FOGLALT”, akkor mikor kell zárolnia a gépet.
Hirdetés
Már említettem a gépindító ablaknál, hogy van egy „Kedvezmény” opció is. Itt különböző kritériumok szerint megadható, hogy az adott felhasználó jogosult-e valamilyen kedvezményre. Pl. nyugdíjas, vagy tagja-e a könyvtárunknak (ők további kedvezményt kapnak), de lehet bármilyen egyéb kedvezményt felvenni. Ekkor persze már bonyolódik a helyzet, hiszen nem egyértelmű, hogy mennyit is kell elkérni pl. egy 25 percet kérő nyugdíjas könyvtártagtól.
Erre is kitaláltam egy megoldást: a rendszer azonnal kiírja még a START gombra való rányomás előtt, hogy mennyit kell beszedni a vendégtől.
Íme erről egy kép:
Mennyi is az annyi?
Ez a „Fizetendő:” szöveg és az érték csak akkor jelenik meg, ha már kiválasztottuk a netezés hosszát és a kedvezmény mértékét is. Ekkor rögtön végez a rendszer egy fejszámolást és kiböki nekünk 0-ra vagy 5-re kerekítve, hogy mennyit kell bezsebelnünk gyanútlan áldozatunktól! Viccet félretéve, e nélkül az opció nélkül nagyon kényelmetlen volna a dolog, ha nekünk még külön számológépen kellene bennfoglalást végeznünk minden egyes kuncsaftnál. Így viszont kerek-perec, még a gép indítása ELŐTT látjuk és tudjuk közölni az összeget. Ha emberünk rábólint és átadja a pénzt, akkor már indíthatjuk a gépet.
Szerettem volna tovább egyszerűsíteni, könnyíteni a dolgot azzal, hogy összekapcsolom az admingépet és az alkalmazásomat a pénztárgépünkkel, hogy a pénztárgépbe már ne is kelljen minden egyes alkalommal külön beütni az összeget, hanem a rendszer „üsse be” helyettünk, amikor a START gombra nyomunk. De sajnos egyrészt a pénztárgépünk nem alkalmas PC kapcsolatra, másrészt a pénztárgépünk karbantartója szerint ez NAV engedélyköteles téma, tehát a „programomat” előbb engedélyeztetnem kellene, aminek sikerére kevés esélyt látok.
Ez volna tehát az én saját, egyszerű, ámde hibátlanul működő megoldásom arra a kérdésre, hogy „hogyan oldjuk meg olcsón egy netkávézó tagnyilvántartását és egyben vezérlését?”
Biztos sok dolgot kihagytam, amit még tud a programom, de talán így is túl hosszú lett. Sőt, talán több karakter van ebben a leírásban, mint az egész alkalmazás forráskódjában :)
Egy dolog még nagyon fontos: hazudnék, ha azt mondanám, hogy teljesen egyedül készítettem el 0-ról az alkalmazást. A PHP-s alapokban egy kedves barátom, a gépeken futó kliensprogramban pedig egy volt kollégám segített, amit ezúton is köszönök nekik!
Ha valakinek kérdése, észrevétele, mondandója lenne a dologgal kapcsolatban, netalántán szeretné „élesben” kipróbálni, akkor írjon, fel tudok rakni nyilvánosan elérhető módon egy DEMO verziót, ami teljes funkcionalitásában használható, persze leszámítva a gép blokkolást és a regisztrált tagjaink listáját :) Bár a blokkolás szemléltetésére tudok csinálni egy olyat, hogy minden gép doboza alatt lenne egy iframe ablakocska, ami jelképezné a gép monitorát és azon tudnám bemutatni, hogy hogyan reagál, amikor mi változtatjuk a gép státuszát. Illetve mutatná a lejárat közeledtével a figyelmeztetést (utolsó 5 percben).
SZERK.: végül is a napokban megejtettem egy kis ráncfelvarrást, elkészítettem egy új dizájnt az alkalmazáshoz:
Az új megjelenésnek köszönhetően v1.1-ről v1.2-re ugorhatott a verziószám
Legközelebb szívesen írnék arról, hogy hogyan lehet egyszerűen, de stabilan megoldani azt, hogy minél kevesebb dologba tudjanak belenyúlni a netezők egy internetkávézó gépeibe. Ehhez saját netkávézónkban alkalmazott házirendjeimet és technikáimat tudnám bemutatni.



