Advertisement
stinxu

Untitled

Nov 19th, 2019
195
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 0.98 KB | None | 0 0
  1. def aggregate_order(self, customer: str, max_items_quantity: int, max_volume: int):
  2. """
  3. Create an order for customer which contains order lines added by add_item method.
  4.  
  5. Iterate over added orders items and add them to order if they are for given customer
  6. and can fit to the order.
  7.  
  8. :param customer: Customer's name to create an order for.
  9. :param max_items_quantity: Maximum amount on items in order.
  10. :param max_volume: Maximum volume of order. All items volumes must not exceed this value.
  11. :return: Order.
  12. """
  13. current_volume = 0
  14. current_quantity = 0
  15. orders = []
  16. for i in self.order_items:
  17. if customer == i.customer and current_volume <= max_volume and current_quantity <= max_items_quantity:
  18. current_volume += (i.quantity * i.one_item_volume)
  19. current_quantity += i.quantity
  20. orders.append(i)
  21. return Order(orders)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement