diff --git a/classes/data/data_initializer.py b/classes/data/data_initializer.py index deb52ad..b659e04 100644 --- a/classes/data/data_initializer.py +++ b/classes/data/data_initializer.py @@ -64,6 +64,10 @@ for person in root.findall('person'): favorite_meal_element = person.find('favoriteMeal') favorite_meal = favorite_meal_element.text if favorite_meal_element is not None else None + + restriction_element = person.find('restrictions') + restrictions = restriction_element.text if restriction_element is not None else None + if favorite_meal in [meal.nazwa for meal in meals]: favorite_meal = next((meal for meal in meals if meal.nazwa == favorite_meal), None) @@ -71,7 +75,8 @@ for person in root.findall('person'): 'imie': name, 'nazwisko': surname, 'wiek': age, - 'ulubiony_posilek': favorite_meal + 'ulubiony_posilek': favorite_meal, + 'restrykcje_dietowe': restrictions } clients.append(Klient(**person_data)) @@ -135,10 +140,13 @@ for klient in [k for k in clients if k.stolik is not None]: print(f"Klient {klient.imie} {klient.nazwisko} ma następujące Zamowienia:") print(f"\t{klient.rachunek} i sumą {klient.rachunek.suma()}") +print("----------------\n\n") +import logic_test as logic - - +for klient in [k for k in clients if k.stolik is not None]: + for zamownienie in klient.rachunek.zamowienia: + print(logic.diet_restriction(zamowienie, klient)) # for meal in meals: # print(meal) diff --git a/classes/data/klient.py b/classes/data/klient.py index ff43d49..37361c8 100644 --- a/classes/data/klient.py +++ b/classes/data/klient.py @@ -3,14 +3,14 @@ from rachunek import Rachunek import random class Klient: - def __init__(self,imie,nazwisko,wiek,ulubiony_posilek=None): + def __init__(self,imie,nazwisko,wiek,ulubiony_posilek=None, restrykcje_dietowe=None): self.imie = imie self.nazwisko = nazwisko self.wiek = wiek self.stolik = None self.rachunek = Rachunek(random.randint(1,1000)) self.ulubiony_posilek = ulubiony_posilek - + self.restrykcje_dietowe = restrykcje_dietowe def zloz_zamowienie(self,zamowienie,stolik): if self.stolik is None: self.stolik = stolik @@ -21,5 +21,5 @@ class Klient: print("Klient ma juz przypisany stolik.") def __str__(self): - return f"Klient: {self.imie} {self.nazwisko} {self.wiek}, ulubione Danie: {self.ulubiony_posilek}" + return f"Klient: {self.imie} {self.nazwisko} {self.wiek}, ulubione Danie: {self.ulubiony_posilek}, restrykcje diet: {self.restrykcje_dietowe}" diff --git a/classes/data/logic_test.py b/classes/data/logic_test.py new file mode 100644 index 0000000..f98518b --- /dev/null +++ b/classes/data/logic_test.py @@ -0,0 +1,14 @@ +def diet_restriction(meals,client): + for meal in meals: + vegan,vegetarian,meat = meal.vegan_vegetarian_meat + print(meal) + print(client.restrykcje_dietowe) + if vegan and client.restrykcje_dietowe == 'Vegan': + return True + elif vegetarian and (client.restrykcje_dietowe == 'Vegetarian' or meat and client.restrykcje_dietowe == 'Vegan'): + return True + elif client.restrykcje_dietowe == 'Meat': + return True + else: + return False + diff --git a/classes/data/zamowenie.py b/classes/data/zamowenie.py index f413d22..0c25676 100644 --- a/classes/data/zamowenie.py +++ b/classes/data/zamowenie.py @@ -5,7 +5,6 @@ from posilek import Posilek class Zamowienie: def __init__(self,numer_zamowienia,posilek): self.numer_zamowienia = numer_zamowienia - print(type(posilek)) assert all(isinstance(p, Posilek) for p in posilek), "Zamowienie: posilek nie jest listą tylko typu Posilek" self.posilek = posilek def __str__(self): diff --git a/database/clients.xml b/database/clients.xml index d51e8c8..9ddb023 100644 --- a/database/clients.xml +++ b/database/clients.xml @@ -4,23 +4,28 @@ Bowie 21 Tatar + Meat Kamil Stop 17 Pomidorowa z Makaronem + Vegetarian Jon Snow 23 Grochówka + Vegan + Andrzej Kowalski 44 Spaghetti Bolognese + Meat diff --git a/database/meals.xml b/database/meals.xml index cc48d8e..6f3d55b 100644 --- a/database/meals.xml +++ b/database/meals.xml @@ -66,7 +66,7 @@ false true - true + false Pomidorowa z Makaronem Soup