Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.

Pracenje rezervacija u malom hotelu

[es] :: Access :: Pracenje rezervacija u malom hotelu

[ Pregleda: 3915 | Odgovora: 10 ] > FB > Twit

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

Scelle
Slavko Šćekić
Student, Računarski fakultet
Beograd

Član broj: 151761
Poruke: 174
*.crnagora.net.



Profil

icon Pracenje rezervacija u malom hotelu18.07.2007. u 02:04 - pre 204 meseci
Zdravo,

izvinjavam se ako ovo lici na trazenje gotovog rjesenja to mi nikako nije namjera!

Naime, napravio sam bazu podataka za mali hotel (11 soba) pomocu koje se prate podaci o gostima (posjete, konzumacije, racuni i sl.) ali mi je sada potrebno da napravim i dio koji ce pratiti rezervacije. U Access-u se snalazim prilicno dobro i realizacija nije problem (odnosno ocekujem da nece biti) ali nemam ni najblazu predstavu kako bi to sve trebalo da izgleda.
Slobodno pisite sta god mislite da treba, i najmanja ideja moze da pokrene lavinu drugih.

Unaprijed hvala svima!

[Ovu poruku je menjao Scelle dana 18.07.2007. u 04:24 GMT+1]
"Takozvani praktični ljudi bili bi korisni i zasluživali bi svaku pohvalu i poštovanje kad od te svoje praktičnosti ne bi hteli da naprave smisao života i razlog svoga opstanka, opravdanje za podjarmljivanje i terorisanje svih onih koji su lišeni toga praktičnog smisla, ali zato stvoreni za druge, možda više i bolje podvige."

Ivo Andric
 
Odgovor na temu

Getsbi

Moderator
Član broj: 124608
Poruke: 2831



+45 Profil

icon Re: Pracenje rezervacija u malom hotelu18.07.2007. u 05:08 - pre 204 meseci
U suštini ti treba forma za unos koja će da liči na Gantt Chart u MS Project-u. Znači s jedne strane poslovi (task name), u tvom slučaju 11 soba sa podposlovima odnosno uslugama tipa room-servis, telefon-servis i slično. S druge strane (time line) ili kalendar, kako bi moglo da se prati vremensko korišćenje. E sad pošto su ovde poslovi ti koji su fiksni (brojčano), a dani teku u nizu od 1 ka n, valjalo bi tabelu koncipirati tako da su kolone u tabeli poslovi i podposlovi, pogotovo što se podposlovi mogu dodavati sa Insert, Rows u strukturi tabele. Redovi ili zapisi tabele bili bi datumi koji bi mogli da se izgenerišu i unapred popune. Na taj način dobio bi tabelu za vođenje rezervacija koja bi bila Record Source za gore pomenutu formu. Ovakve forme mogu vrlo lepo da se dizajniraju grafički (viđao sam ali ne umem) te da rade samo na klik mišem.
Evo ti jedan link. Sličica je mala ali možda ti pokrene lavinu kako ti kažeš.
http://www.pcsoft.co.yu/hotelski.asp


 
Odgovor na temu

Scelle
Slavko Šćekić
Student, Računarski fakultet
Beograd

Član broj: 151761
Poruke: 174
*.crnagora.net.



Profil

icon Re: Pracenje rezervacija u malom hotelu23.07.2007. u 00:08 - pre 204 meseci
Najprije da ti se zahvalim na ulozenom trudu i vremenu, jer da mi nisi odgovorio - batalio bih posao. :)

Evo ovako, radio sam nesto i cini mi se da je do sada OK, ali vidim da ovdje ima mnooooogo iskusnijih i znanjem potkovanijih clanova pa rekoh da dam ovo uradjeno na ocjenjivanje. Uradio sam tri tabelice (tblSoba, tblGost, tblIzdavanje) koje su, naravno, povezane i par formica. Ideja je da na formi frmDatumskiOpseg unesem datume izmedju kojih me interesuje rezervacija i da mi on na formi frmListaRezervacija izlista koje su sobe rezervisane za taj period (ili za samo dio tog perioda) a koje su slobodne. Naravno, planiram da napravim formu za unos rezervacija koja bi se pozivala dvoklikom na odredjeni zapis i da onemogu'im izmjene u frmListaRezervacija.
Problem mi je sto ne znam kako da priikazem koje sobe nisu rezervisane za trazeni period. Logicno, to su sve one sobe kojih nema u lijevom dijelu forme, ali ne znam kako da ih izlistam.

Evo, prikacio sam dosadasnji rad, pa vas molim da pogledate. Preporucujem da za datumski opseg koristite od 22.07.2007 do 29.07.2007.
Slobodno kritikujte, predlazite i ucite me, zbog toga sam tu... ;D
"Takozvani praktični ljudi bili bi korisni i zasluživali bi svaku pohvalu i poštovanje kad od te svoje praktičnosti ne bi hteli da naprave smisao života i razlog svoga opstanka, opravdanje za podjarmljivanje i terorisanje svih onih koji su lišeni toga praktičnog smisla, ali zato stvoreni za druge, možda više i bolje podvige."

Ivo Andric
Prikačeni fajlovi
 
Odgovor na temu

Getsbi

Moderator
Član broj: 124608
Poruke: 2831



+45 Profil

icon Re: Pracenje rezervacija u malom hotelu23.07.2007. u 10:58 - pre 204 meseci
Problem je u izvoru podataka (Record Source) za takav uvid. Dakle, kolko god ti se to činilo necelishodno morao bi da imaš na jednom mestu i rezervisane i nerezervisane sobe, kako bi mogao da ih vučeš u upit po različitim kriterijumima. I da iznađeš način (moglo bi verovatno da se napravi upit koji ima sve ostale sobe, a nisu u levom prikazu), ostaje ti problem preklapanja. Nikako ne vidiš da ti recimo soba 401 u tom periodu započinje rezervaciju dan pre isteka zadatog perioda, a završava je recimo nekoliko dana posle. Bar se meni tako čini. Nisam u toj problematici ali sam se potrudio kod kolege koji radi takav program da se malo informišem. Rezervacija se vrši po tipu sobe (“Rezervisao bih jednu dvokrevetnu sa pomoćnim ležajem“). Iza toga ide potvrda rezervacije kad gost izvrši uplatu akontacije. Nakon toga dan pre korišćenja aranžmana ide Bukiranje ili srpski rečeno raspoređivanje gostiju po sobama. Sa pristizanjem gostiju radi se Ček in ili prijem gostiju i zauzimanje sobe. E sad kolega za veće hotele radi rezervaciju po tipu sobe ali kaže da obzirom da je tvoj hotel mali do desetak soba može i rezervacija po sobama. Ono što sam još video na njegovom programu je status sobe: slobodna, zauzeta, van upotrebe (renovira se), napuštena (priprema se i čisti).........

Konkretan odgovor na tvoje pitanje sa ovakvom konstelacijom tabela ne mogu da ti dam jer ne vidim rešenje u tom pravcu. Možda neko ima drugačiju ideju od one iz mog prvog posta. U međuvremenu sam od kolge dobio par prikaza koje ti šaljem u .pdf fajlu. Druga iskustva nije voljan da deli (mislim da je razlog prekompleksnost rešenja u njegovom slučaju).

Prikačeni fajlovi
 
Odgovor na temu

Scelle
Slavko Šćekić
Student, Računarski fakultet
Beograd

Član broj: 151761
Poruke: 174
*.crnagora.net.



Profil

icon Re: Pracenje rezervacija u malom hotelu23.07.2007. u 22:20 - pre 204 meseci
Ovo sto si zamislio, opisao i prikacio je super ali ja nemam potrebu za tako sofisticiranim programom.

Sto se tice preklapanja, PA JA SAM MOZAK IZGORIO DOK SAM SMUCKAO KAKO TO DA NAPRAVIM A TI KRITIKUJES?!!! :)

To sam namjerno uradio, jer kako cu rezervisati sobu od 10.07 do 19.07 ako je ona vec rezervisana od 09.07 do 25.07? Vrlo sam ponosan na taj query, nemoj da mi kvaris merak... :)
A sto se tice izlistavanja soba koje za taj period nisu rezervisane, smislio sam (kao i uvijek) najkomplikovanije resenje. Ide nekako ovako:
U tblSoba cu dodati polje REZERVISANA (YES/NO) i default value postaviti na 0 (NO).
Zatim bih napravio kod koji bi za one sobe koje izlista qryRezervisaneSobe vrijednost ovog polja (tblSoba.Rezervisana) postavio na -1 (YES) i pozvao sledeci query koji ce mi izlistati sve sobe koje nisu rezervisane. Naravno, prije nego ista uradi, ovaj kod bi morao stalno da resetuje sva polja tblSoba.Rezervisana na 0 (NO). Nije ni elegantno ni najsrecnije, ali drugi nacin sa ovakvom postavkom tabela ne vidim. A ne znam ni kako bih mogao drugacije organizovati tabele.

Sad kopam po literaturi da pronadjem nacin kako da odradim sve ovo sto sam zamislio...

[Ovu poruku je menjao Scelle dana 24.07.2007. u 02:59 GMT+1]
"Takozvani praktični ljudi bili bi korisni i zasluživali bi svaku pohvalu i poštovanje kad od te svoje praktičnosti ne bi hteli da naprave smisao života i razlog svoga opstanka, opravdanje za podjarmljivanje i terorisanje svih onih koji su lišeni toga praktičnog smisla, ali zato stvoreni za druge, možda više i bolje podvige."

Ivo Andric
 
Odgovor na temu

Zidar
Canada

Moderator
Član broj: 15387
Poruke: 3085
*.100.46-69.q9.net.



+79 Profil

icon Re: Pracenje rezervacija u malom hotelu24.07.2007. u 14:33 - pre 203 meseci
Citat:
Evo, prikacio sam dosadasnji rad, pa vas molim da pogledate. Preporucujem da za datumski opseg koristite od 22.07.2007 do 29.07.2007.
Slobodno kritikujte, predlazite i ucite me, zbog toga sam tu... ;D

Citat:
To sam namjerno uradio, jer kako cu rezervisati sobu od 10.07 do 19.07 ako je ona vec rezervisana od 09.07 do 25.07? Vrlo sam ponosan na taj query, nemoj da mi kvaris merak... :)

:-)
Ideja da pratis zauzece soba na ovaj nacin, uporedjivanjem dva para datuma, u sustini je zdrava. Judino sto ne pokriva sve slucajeve. Probaj da trazis listu zauzedtih soba od 23 Jula do 26 Jula na primer - dobijes samo sobu 206. Znaci, mozes da obecas nekome sobu 201. oops, ali soba 201 je vec rezervisana, od 22 do 29 Jula. Mozda je kalendar na zidu bolje resenje ;-)

Dalu na stranu, ideja nije losa, a evo kako mozes da zasigurno uhvtis zauzeca u zadatom periodu:

umesto

WHERE (((tblRezervacija.Od) Between [Forms]![frmDatumskiOpseg]![txtOd] And [Forms]![frmDatumskiOpseg]![txtDo]))
OR
(((tblRezervacija.Do) Between [Forms]![frmDatumskiOpseg]![txtOd] And [Forms]![frmDatumskiOpseg]![txtDo]))

probaj


NOT ([Forms]![frmDatumskiOpseg]![txtDo]<tblRezervacija.Od OR [Forms]![frmDatumskiOpseg]![txtOd] > [Forms]![frmDatumskiOpseg]![txtDo])


Mogao bi naravno i da pokusas da zakomplikujes svoj izraz sa jos OR uslova i na kraju bi dobio isti rezultat kao sto daje izraz koji sam ti preporucio. Moj izraz u prevodu znaci:
Za zadati period (PeriodOD, PeriodDo),
A) soba je SLOBODNA ako vazi
(rezervacija sobe zavrsena pre nego sto pocne trazeni period ili soba je rezervisana tek posle kraja zdatog perioda)
sto se moze napisati kao
(SobaRezervisanaDO < PeriodOD OR SobaRezervisanaOD > PeriodDo)

B) soba NIJE SLOBODNA ako vazi suprotno, to jest
NIJE (rezervacija sobe zavrsena pre nego sto pocne trazeni period ili soba je rezervisana tek posle kraja zdatog perioda)
sto se pise isto kao:
NOT (SobaRezervisanaDO < PeriodOD OR SobaRezervisanaOD > PeriodDo)

Eto, znamo da li je soba rezervisana ili nije u zadatom periodu. I sve moze u jednom kveriju. Nee bas, ali smo blizu.

Pogledaj zakaceni primer - tvoj, sa mojim dodacima.

Dodao sam nekoliko objekata (svi imaju _Z na kraju imena):
1) tabela tblPosmatraniPeriod_Z, kao laksi ancin za zadavanje datuma, izbegavaju se ruzni parametri oblika [Forms]![Control]
2) forma frmPregledZauzecaSoba_Z, koja gleda u tabelu tblPosmatraniPeriod_Z i pokrece kveri qryStatusSobaU ZadatomPeriodu_Z
3) kveri qryStatusSobaU ZadatomPeriodu_Z = verujem da je to ono sto te zanima :-)
4) kveri qryZauzeteSobe_Z, osnova za qryStatusSobaU ZadatomPeriodu_Z

Ako nesto ne stimuje, odgovori hitno, jos sutra sam tu i idem na dugacak odmor :-)

Prikačeni fajlovi
 
Odgovor na temu

Scelle
Slavko Šćekić
Student, Računarski fakultet
Beograd

Član broj: 151761
Poruke: 174
*.crnagora.net.



Profil

icon Re: Pracenje rezervacija u malom hotelu25.07.2007. u 00:25 - pre 203 meseci
Buljim u monitor i smisljam kojim bih rijecima mogao da izrazim ovoliku zahvalnost ali ne ide... Hvala ti, sta drugo da kazem?

Samo, ne shvatam zasto koristimo tabelu za datumski opseg. Zasto je losije rjesenje koristiti [Forms]![Control]? I kako si namjestio ovo polje Zauzeta? Izgleda da sam precijenio svoje znanje u Access-u i bazama podataka uopste...
"Takozvani praktični ljudi bili bi korisni i zasluživali bi svaku pohvalu i poštovanje kad od te svoje praktičnosti ne bi hteli da naprave smisao života i razlog svoga opstanka, opravdanje za podjarmljivanje i terorisanje svih onih koji su lišeni toga praktičnog smisla, ali zato stvoreni za druge, možda više i bolje podvige."

Ivo Andric
 
Odgovor na temu

Zidar
Canada

Moderator
Član broj: 15387
Poruke: 3085
*.100.46-69.q9.net.



+79 Profil

icon Re: Pracenje rezervacija u malom hotelu25.07.2007. u 14:03 - pre 203 meseci
Drago mi je da ti se resenje dopada
Citat:
Samo, ne shvatam zasto koristimo tabelu za datumski opseg. Zasto je losije rjesenje koristiti [Forms]![Control]?

Bilo koji kveri sa parametrom je manje upotrebljiv nego kveri bez parametra, generalno govoreci. Kveriji sa parametrom traze parametar pre nego sto se izvrse. Znaci, imas prekid u izvrsavanju akcije. To ih cini skoro neupotrebljivim za programsak resenja. Postoji nacin da se kroz programski kod posalju parametri za kveri, ali je prilicno komplikovano i malo ljudi to ume da uradi, a jos manje ih to zaista i radi. parametarski kveriji su 'quick and dirty' metod za pocetnika da dobiju neku kao fleksibilnost.

Ako su parametri vezani za kontrole na formi, upotrebljivost kverija je jos vise ogranicena - da bi kveri uopste radio, mora biti otvorena i forma.

Kveri bez parametara se moze pozvati lako iz programskog koda. Ako se 'parametri' nalaze u tabeli, mnogo je lakse programski puniti tabelu, kad god zatreba, pa se kveri moze pozvati sa vise razlicitih mesta a ne samo sa jedne forme.

Primeti da je tabela koja pamti datumski opseg napravkljena tako da moze imati samo jedan rekord, ne vise. Bilo bi zlo da imas vise opsega, kveri ne bi znao koji da upotrebi.

Ono sto treba da zapamtis iz ovog primera jeste logika kako se odredjuje da li se dva intervala preklapaju ili ne. Put kojim si ti krenuo je ono sto svi urade u prvom pokusaju. Taj put na kraju zavrsava monstruoznim lancom AND i OR koji uporedjuju sve moguce odnose krajeva dva intervala. Jedan mnogo pametan covek, Joe Celko, uvideo je da se "dva intervala preklapaju kad god ne mozes da dokazes da se ne preklapaju" a izraz za nepreklapanje intervala je u sustini veoma prost. Glasi ovako:
AKO (jedan interval zavrsava pre nego sto je drugi poceo) ONDA (se oni ne preklapaju). U svim ostalim slucajevima se preklapaju (soba je zauzeta

Kako sam namestio polje 'Zauzeta' - kodirao sam izraz za nepreklapanje intervala, pa sa NOT dobio suprotni smisao - prelapanje:
Code:
Zauzeta: NOT([Period_Do]<[OD] Or [Period_OD]>[Do])


Mozda bude jasnije ako nacrtamo sliku:

Ova dva intervala se ne preklapaju:
Code:

Period_Od     Period_DO       Soba_Od         Soba_Do
----{-----------}--------------[---------------]---------------> vreme

ni ova dva se ne preklapaju:
Code:

Soba_Od     Soba_DO        Period_Od         Period_Do
----[-----------]--------------{---------------}---------------> vreme

U svim ostalim kombinacijama intervali se preklapaju ili bar dodiruju.

Prva slika se moze zapisati kao ([Period_Do]<[Soba_OD] )

Druga slika se pise kao ([Period_OD]>[Soba_Do])

Ako vazi prva slika ili vazi druga slika, onde je soba slobodna (intervali se ne poklapaju)

Znaci imamo:

ne-preklapanje: (([Period_Do]<[Soba_OD] ) OR ([Period_OD]>[Soba_Do])) <=> soba je slobodna

preklapanje je suprotno od ne-preklapanja (genijalni Joe Celko pa dobijamo ono sto smo upotrebili u kveriju

NOT (([Period_Do]<[Soba_OD] Or [Period_OD]>[Soba_Do]) <=> soba je zauzeta

Bulova algebra cuda cini

Napomena: ako istu sobu ujutru moze da napusti jedan gost, a u nju udje drugi gost poslepodne, onda ispada da tu istu sobu u jednom danu koriste dva gosta. Koliko znam, to tako i funkcionise u stvarnom zivotu. Da bi to tacno modelirao, mozda ti trebaju negde i znakovi jednakost u izrazu za preklapanje. Experimentisi malo dok ne ne nadjes pravo resenje. To je slucaj kad se intervali dodiruju.

Ja sam ti samo pokazao kako se to 'teorijski' moze odraditi, a ti sad dalje kopaj. Na forumu Baze Podataka imas teme tipa 'Mozgalice' Bila je jedna mozgalica o gostima u restoranu, kad su dosli a kad su otisli, pa se trazilo zauzece iz momenta u momenat. Kolega Negyxo je dao lep graficki prikaz odnosa dva intervala. U toj temi ima i nekih interesantnih ideja. Tebi je verovatno rano da se bavis tim problemom na tom nivou, ali da znas za buducnost

Nemoj da gubis pouzdanje u svoje znanje Accessa, ovo i nije Access, ovo je vise problem modelovanja vremenski zavisnih podatak u relacionim bazama. A to je vrlo tesko i za iskusne majstore. Sve sto u sebi ukljucuje analizu vremena i vremenski zavisnih informacija je vrlo tesko odraditi u relacionim sistemima, a u ne-relacionom jos teze.

Srecan rad i javi nam kako ide, pa nekog leta da svratimo u taj hotel na lozu. Ja sam daleko, ali je Getsbi blizu.






 
Odgovor na temu

gremlin33
Zabreg

Član broj: 68314
Poruke: 13
195.29.157.*



Profil

icon Re: Pracenje rezervacija u malom hotelu25.07.2007. u 15:10 - pre 203 meseci
Bash ste me zaintrigirali:)
ako lupim nešto nemojte zamjeriti..imam najbolju namjeru..
na poslu sam i odavde ne mogu da skinem primjer..no kako je to sve teoretski..

provjera zauzeća/rezervacije sobe

imamo tblRezervacije
datum_od :22.07.07
datum_do :25.07.07
rezerviranoDana=(datum_do-datum_od )
(formula koja bi se okidala svaki put kad otvaramo formu za pregled rezervacija, ili ju staviti na neki timer da kalkulira svakih sat vremena)

ovo polje rezerviranoDana bi zapravo cijelo vrijeme govorilo da li je soba zauzeta ili ne sve dok ne dođe do 0 dana i recimo 12h do kad gost mora izaći van.

s obzirom da nikako doći do primjera(dok ne dođem doma) ako sam krenuo krivim putem zanemarite pliz.
Što me snađe da se ovdje nađe :)
 
Odgovor na temu

Scelle
Slavko Šćekić
Student, Računarski fakultet
Beograd

Član broj: 151761
Poruke: 174
*.crnagora.net.



Profil

icon Re: Pracenje rezervacija u malom hotelu28.07.2007. u 00:21 - pre 203 meseci
Ne, to nije problem ovdje.

Evo sta sam ja do sada uradio, pa ozezite... Najprije treba unijeti zeljeni datumski opseg (preporucujem vec postojeci) i dobijemo sa lijeve strane sobe koje su u tom periodu rezervisane (ili samo u jednom dijelu tog perioda) a sa desne strane dobijemo nerezervisane sobe. Podaci o rezervaciji se mogu mijenjati tako sto se klikne dva puta na "Broj rezervacije" a sobu rezervisemo tako sto kliknemo dva puta na "Broj sobe". Naravno, ovo nije ni blizu finalne verzije, ali zelim da rad izlozim kritici kako bih mogao da radim na poboljsanju.
"Takozvani praktični ljudi bili bi korisni i zasluživali bi svaku pohvalu i poštovanje kad od te svoje praktičnosti ne bi hteli da naprave smisao života i razlog svoga opstanka, opravdanje za podjarmljivanje i terorisanje svih onih koji su lišeni toga praktičnog smisla, ali zato stvoreni za druge, možda više i bolje podvige."

Ivo Andric
Prikačeni fajlovi
 
Odgovor na temu

Getsbi

Moderator
Član broj: 124608
Poruke: 2831



+45 Profil

icon Re: Pracenje rezervacija u malom hotelu28.07.2007. u 03:00 - pre 203 meseci
1. tblNosilac je ostala nepovezana u Relationships. Svi Nosioci moraju da budu iz tabele tblNosioc i rezervacija ne može
da se uradi a da se ne upiše nosioc.
2. Kad kliknem u broj sobe Nerezervisano otvori se forma Rezervacija. Ako je napustim bez ažuriranja prebacuje u
Rezervisano i puni tabelu. Ne bi smelo. To treba da radi tek nakon potvrde operatera da to želi. Ili napravi
mogućnost za odustajanje.
3. Takođe ne bi smelo da može da se uradi dupla rezervacija, a to je upravo moguće.


Kad to srdiš, zakači ponovo da testiramo i dajemo doadatne primedbe i ideje.

 
Odgovor na temu

[es] :: Access :: Pracenje rezervacija u malom hotelu

[ Pregleda: 3915 | Odgovora: 10 ] > FB > Twit

Postavi temu Odgovori

Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.