def create_review(self, item, rate): new_review = Review(self, item, rate) self.reviews.append(new_review) logger.info( f"New review by {new_review}, is created by the customer: {self.id}" ) return new_review
def check_order(self, order): logger.debug(f"Checking orders {order.id}") if not order.status == 'New': return order for supply in self.supply: if supply.item == order.item and supply.amount >= order.amount: order.status = 'Confirmed' logger.info(f"New order: {order}, is confirmed") return order order.status = 'On Hold' return order
def check_review(self, review): logger.debug(f"Checking reviews {review.id}") if not review.validate_review(): logger.error( f"Error. Invalid rate '{review.rate}'. Should input rate from 1 to 5" ) exit() if not review.status == 'Moderation': return review for rate in self.reviews: if rate.item == review.item: review.status = 'Published' logger.info(f"New review by {review}, is published") return review review.status = 'Not confirmed' return review
def create_order(self, item, amount): new_order = Order(self, item, amount) self.orders.append(new_order) logger.info( f"New order, {new_order} is created by the customer: {self.id}") return new_order
supplier2 = Supplier("isupplytoo", "4real", "Reliable Company", "Van Reliable", "011-112-35-8", "*****@*****.**") customer1 = Customer("iamguido", "4sure", "Guido", "Van Rossum", "000-112-35-8", "*****@*****.**", "09-09-1968") customer2 = Customer("_iamguido", "_4sure", "_Guido", "_Van Rossum", "000-112-35-8", "*****@*****.**", "09-09-1968") item1 = Item("Banana", "Better than ever before", 799.0, ("Golden", "Fresh Green")) item2 = Item("Best Banana", "Better than others", 899.0, ("Truly Golden", "Fresher Green")) supply.append(supplier1.add_supply(item1, 10)) supply.append(supplier2.add_supply(item2, 5)) customer1.create_order(item2, 5) logger.info(customer1.orders[0].status) customer1.create_review(item1, 10) logger.info(customer1.reviews[0].status) customer2.create_order(item1, 4) logger.info(customer2.orders[0].status) customer2.create_review(item1, 4) logger.info(customer2.reviews[0].status) admin1.update_supply([supplier1, supplier2]) admin1.update_orders([customer1, customer2]) admin1.update_reviews([customer1, customer2]) admin1.check_order(customer1.orders[0]) admin1.check_review(customer1.reviews[0]) logger.info(customer1.orders[0].status)
def update_supply(self, suppliers_list): self.supply.clear() for supplier in suppliers_list: logger.info(f"Supply {supplier} is updated by administrator") self.supply.extend(supplier.supply)