def __init__(self, category, item_name='item'): Component.__init__(self, Item.item_id, item_name) Item.item_id += 1 self.item_name = item_name self.category = category self.orders_of_item = set() if not self.category: raise CategoryIsNotDefine() else: self.category.items_of_category.add(Component.__str__(self)) Item.all_items.add(Component.__str__(self))
def __str__(self): return '\n{0} \n{1}'.format(Component.__str__(self), ('includes items:\n' + Component.show_items( self.items_of_category)) if self.items_of_category else "hasn't got items")
def __str__(self): return '\n{0} \n{1}\n'.format(Component.__str__(self), ('is included in orders:\n' + Component.show_items( self.orders_of_item) if self.orders_of_item else "hasn't been included in any orders"))
def __init__(self, customer=None, first_item=None, order_name='order'): Component.__init__(self, Order.order_id, order_name) Order.order_id += 1 self.order_name = order_name self.items_of_order = set() if not customer: raise CustomerIsNotDefine() else: self.customer = customer self.customer.orders_of_customer.add(Component.__str__(self)) if not first_item: raise FirstItemIsNotDefine() else: self.first_item = first_item self.items_of_order.add(Component.__str__(self.first_item)) self.first_item.orders_of_item.add(Component.__str__(self)) Order.all_orders.add(Component.__str__(self))
def __init__(self, category_name='Category'): Component.__init__(self, Category.category_id, category_name) Category.category_id += 1 self.category_name = category_name self.items_of_category = set() Category.all_categories.add(Component.__str__(self))
def remove(self, item): self.items_of_category.remove(Component.__str__(item))
def add_item(self, item): self.items_of_category.add(Component.__str__(item))
def __str__(self): return '\n{0}\nowner: {1}\nordered items:\n{2}'.format( Component.__str__(self), Component.__str__(self.customer), Component.show_items(self.items_of_order))
def remove_item(self, removing_item): self.items_of_order.remove(Component.__str__(removing_item)) if not self.items_of_order: raise FirstItemIsNotDefine() removing_item.orders_of_item.remove(Component.__str__(self))
def add_item(self, new_item): self.items_of_order.add(Component.__str__(new_item)) new_item.orders_of_item.add(Component.__str__(self))
def __init__(self, customer_name='Customer'): Component.__init__(self, Customer.customer_id, customer_name) Customer.customer_id += 1 self.customer_name = customer_name self.orders_of_customer = set() Customer.all_customers.add(Component.__str__(self))
def __str__(self): return '\n{0}\n{1}\n'.format( Component.__str__(self), ('has made orders:\n' + Component.show_items(self.orders_of_customer) if self.orders_of_customer else "hasn't got orders"))
def add_order(self, first_item): new_order = Order(self, first_item) self.orders_of_customer.add(Component.__str__(new_order))
def change_category(self, new_category): new_category.items_of_category.add(Component.__str__(self)) self.category.items_of_category.remove(Component.__str__(self)) self.category = new_category