Autolekérdezés - KTRNinjas/Car-Rental GitHub Wiki

Kéne bele néhány kép a Home-ról

Autólekérdezés

A vásárló egy adott időintervalumban kereshet a nem foglalt autok között.

Intervalumok

kezdoDATE- az intervalum kezdete/ a szürt időszak első napja

vegDATE- az intervalum vége / a szürt időszak utolsó napja

Érintett táblák

  • Márka -autotipus tábla márka mezője
  • Tipus -autotipus tábla tipus mezője
  • Fajta -fajta táblából az autotipus táblában levő ID beazonositásával
  • Kategoria -kategoria táblából az autotipus táblában levő ID beazonositásával
  • Prémium díj -autotipus tábla tipus mezője
  • Hajtaslanc -hajtaslanc táblából az cars táblában levő ID beazonositásával
  • Evjarat -a cars tábla Evjarat mezője
  • Valtotipus -valtotipus táblából az cars táblában levő ID beazonositásával
  • Napi Ár- Ar tábla Ar mezője
  • Összár - AutolekerdezesService.php-ben számolunk ki a arSzamolo függvénnyel az ár és a napok számánka szorzatával

Kapcsolatok

  • A két fő táblaban (cars és autotipus) vannak elraktározva az egyes autok tuljadonságainak kodja amit a mellék táblákból tudunk kinyerni
  • Update és deletelése esetén az adatbázis megköveteli, hogy a role megváltoztatása, vagy törlése csak akkor történhet meg, ha nem tartozik hozzá Contact

Lekérdezés szerepe

Lekérdezés fontossága és buktatoi

  • A lekérdezés szerepe, hogy egyszer netudjon több vásárló úgyan azt a kocsit lefogalni.
  • A vásárlok csak azokat a kocsikt lássák amik az általuk kiválaszott intervalumban elérhetőek
  • Elérhetőnek akkor nevezünk egy autot ha a kivánt intervalum minden napján rendelkezésre lehet bocsáltania vevő számára és nincs kivezetve a kocsi a rendszerből
  • Ha a vevő felcseréli a kezdő és vég dátumok akkor egy hiba üzenetet küld vissza a rendszer

Home oldal

  • A lekérdezés a home oldalon jelenik meg kezdetben 2 input mező és egy buton segitségével a dátum bevitele után egy táblázatott kapunk amiben a lehetséges választási lehetőségek vannak és azok paraméterei
  • A dátumok megváltozatássával megváltozhat az adat tábla is

Elfogadási tesztek:

  • test_Home_with_KezdonagyobbMintVegDate() leteszteli hogy egy kezdődátumnál kisebb vég dátum esetén hiba üzenetet kap a lekérdező
  • test_Home_with_KezdokissebbMintVegDate() tesztek itt három különböző intervalumba kérdez le a rendszer és keresi ki a lehetséges lefogalható autokat 2022.08.01-2022.08.15,2022.08.16-2022.09.10,2022.09.11-2022.09.30

Autolekerdesés Controller

  • autolekerdezes_controller autolekerdezes() metódusa figyeli, hogy az home honlapon megnyomták e a keresés gombot.
  1. Ha megnyomták, küld egy kérést a AutolekerdezesService GetLekerdezesAutok($kedoDate, $Vegdate) metódusának, ahová a kért paramétereket a $_POST globális változóból szedi ki.
  2. Ha a GetLekerdezesAutok($kedoDate, $Vegdate) metódus üres tömbbel tér vissza, akkor ebben az intervalumban nincs lefoglalható auto
  3. Ha a GetLekerdezesAutok($kedoDate, $Vegdate) metodus nem üres tömbbel tér vissza, akkor kinyomtat egy táblázatott elöször a Autolekerdezesfejlec() a fejlécet majd a AutolekerdezesBody() a táblázat törzsét az autok adataival.
  • Autolekerdezesfejlec: szerepe a lekérdezett autok táblázat fejlécének létrehozása ami 10 mezőt hoz létre
  • AutolekerdezesBody: szerepe a lekérdezett adatok táblázatba való rendezésének a szerepe
  • autolekerdezes: meghivja az AutolekerdezesBody függvénzt

Autolekerdezes Service:

  • meghivodik az GetLekerdezesAutok függvény ami a $kezdoDATE, $vegDATE addatok tovább adja az AutoLekredezesDAO.php adatokat, meghivja a arSzamolo függvényt
  • arSzamolo kiszámolja az összárat a napiár a kezdoDATE és a VegDATE segitségével és visszakldi azt.

Autolekéredes DAO:

LekerdezesAutok_kivantIntervalumba() lekérdezis az adatábisból azokat az táblákat és ellemeket amik megfelelnek a paramétereknek. 0