Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- def aggregate_order(self, customer: str, max_items_quantity: int, max_volume: int):
- """
- Create an order for customer which contains order lines added by add_item method.
- Iterate over added orders items and add them to order if they are for given customer
- and can fit to the order.
- :param customer: Customer's name to create an order for.
- :param max_items_quantity: Maximum amount on items in order.
- :param max_volume: Maximum volume of order. All items volumes must not exceed this value.
- :return: Order.
- """
- current_volume = 0
- current_quantity = 0
- orders = []
- for i in self.order_items:
- if customer == i.customer and current_volume <= max_volume and current_quantity <= max_items_quantity:
- current_volume += (i.quantity * i.one_item_volume)
- current_quantity += i.quantity
- orders.append(i)
- return Order(orders)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement