Better condition for moving price to options
There's no point in doing this for Ocean Garden's stuff that has a fixed price.
This commit is contained in:
parent
0f9a816eea
commit
aba8301758
1 changed files with 4 additions and 3 deletions
|
@ -25,15 +25,16 @@ def filter_instance(cls, iterable):
|
||||||
class HldsSemanticActions:
|
class HldsSemanticActions:
|
||||||
def location(self, ast) -> Location:
|
def location(self, ast) -> Location:
|
||||||
choices = {choice.id: choice for choice in filter_instance(Choice, ast["items_"])}
|
choices = {choice.id: choice for choice in filter_instance(Choice, ast["items_"])}
|
||||||
dishes = filter_instance(Dish, ast["items_"])
|
dishes: Iterable[Dish] = filter_instance(Dish, ast["items_"])
|
||||||
for dish in dishes:
|
for dish in dishes:
|
||||||
for i, choice in enumerate(dish.choices):
|
for i, choice in enumerate(dish.choices):
|
||||||
if not isinstance(choice[1], Choice):
|
if not isinstance(choice[1], Choice):
|
||||||
dish.choices[i] = (dish.choices[i][0], deepcopy(choices[choice[1]]))
|
dish.choices[i] = (dish.choices[i][0], deepcopy(choices[choice[1]]))
|
||||||
|
|
||||||
# Move the base price to the first single choice if there is any
|
# Move the base price to the first single_choice if the dish has a fixed price
|
||||||
first_single_choice = first(c[1] for c in dish.choices if c[0] == "single_choice")
|
first_single_choice = first(c[1] for c in dish.choices if c[0] == "single_choice")
|
||||||
if dish.price and first_single_choice:
|
price_range = dish.price_range()
|
||||||
|
if dish.price and price_range[0] != price_range[1] and first_single_choice:
|
||||||
for option in first_single_choice.options:
|
for option in first_single_choice.options:
|
||||||
option.price += dish.price
|
option.price += dish.price
|
||||||
dish.price = 0
|
dish.price = 0
|
||||||
|
|
Loading…
Reference in a new issue