Skip to content
Snippets Groups Projects
Commit 17034b9f authored by Florian Schröder's avatar Florian Schröder
Browse files

fix bug

parent 528b1802
No related branches found
No related tags found
1 merge request!27Resolve "Orders"
Pipeline #44021 passed
......@@ -53,7 +53,11 @@ class OrderGeneration:
@abstractmethod
def get_orders(
self, passed_time: timedelta, now: datetime, new_finished_orders: list[Order]
self,
passed_time: timedelta,
now: datetime,
new_finished_orders: list[Order],
expired_orders: list[Order],
) -> list[Order]:
...
......@@ -92,9 +96,14 @@ class RandomOrderGeneration(OrderGeneration):
)
def get_orders(
self, passed_time: timedelta, now: datetime, new_finished_orders: list[Order]
self,
passed_time: timedelta,
now: datetime,
new_finished_orders: list[Order],
expired_orders: list[Order],
) -> list[Order]:
self.number_cur_orders -= len(new_finished_orders)
self.number_cur_orders -= len(expired_orders)
if self.kwargs.sample_on_serving:
if new_finished_orders:
self.create_random_next_time_delta(now)
......@@ -196,6 +205,7 @@ class OrderAndScoreManager:
self.served_meals: list[Tuple[Item, datetime]] = []
self.last_finished = []
self.next_relevant_time = datetime.max
self.last_expired = []
def update_next_relevant_time(self):
next_relevant_time = datetime.max
......@@ -255,10 +265,14 @@ class OrderAndScoreManager:
def progress(self, passed_time: timedelta, now: datetime):
new_orders = self.order_gen.get_orders(
passed_time=passed_time, now=now, new_finished_orders=self.last_finished
passed_time=passed_time,
now=now,
new_finished_orders=self.last_finished,
expired_orders=self.last_expired,
)
self.open_orders.extend(new_orders)
self.last_finished = []
self.last_expired = []
if new_orders or self.next_relevant_time <= now:
remove_orders = []
for index, order in enumerate(self.open_orders):
......@@ -273,9 +287,11 @@ class OrderAndScoreManager:
for i in reversed(remove_penalties):
# or del order.timed_penalties[index]
order.timed_penalties.pop(i)
expired_orders = []
for remove_order in reversed(remove_orders):
expired_orders.append(self.open_orders[remove_order])
del self.open_orders[remove_order]
self.last_expired = expired_orders
self.update_next_relevant_time()
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment