order.py 782 B

12345678910111213141516171819202122232425
  1. import datetime
  2. import tabulate
  3. class Item:
  4. def __init__(self, name, price, quantity):
  5. self.name = name
  6. self.price = price
  7. self.quantity = quantity
  8. class Order:
  9. def __init__(self,user, items):
  10. self.user: str = user
  11. self.items:list[Item] = items
  12. self.total = sum(item.price * item.quantity for item in items)
  13. self.date = datetime.datetime.now()
  14. def tabulate(self):
  15. headers = ["Nombre", "Cantidad", "Total"]
  16. data = [[item.name, item.quantity, item.price*item.quantity] for item in self.items]
  17. return tabulate.tabulate(data, headers=headers, tablefmt="fancy_grid")
  18. def __str__(self):
  19. return f"Orden de {self.date.strftime('%d/%m/%Y')}\n{self.items}\nTotal: {self.total}"