Untitled

 avatar
user_3592770
plain_text
2 years ago
2.6 kB
6
Indexable
class Warehouse:
    def __init__(self):
        self.products = {}

    def add_product(self, name, price, quantity, currency="EUR"):
        if currency != "EUR":
            price = self.convert_to_eur(price, currency)
        if name in self.products:
            self.products[name]["quantity"] += quantity
        else:
            self.products[name] = {"price": price, "quantity": quantity}

    def remove_quantity(self, name, quantity):
        if name in self.products:
            current_quantity = self.products[name]["quantity"]
            if current_quantity >= quantity:
                self.products[name]["quantity"] -= quantity
                print(f"Removed {quantity} {name}(s) from the warehouse.")
            else:
                print(f"Not enough {name}s in the warehouse to remove {quantity}.")

    def update_price(self, name, price, currency="EUR"):
        if currency != "EUR":
            price = self.convert_to_eur(price, currency)
        if name in self.products:
            self.products[name]["price"] = price
            print(f"Updated the price of {name} to {price} €.")
        else:
            print(f"{name} is not in the warehouse.")

    def update_quantity(self, name, quantity):
        if name in self.products:
            self.products[name]["quantity"] += quantity
            print(f"Added {quantity} {name}(s) to the warehouse.")
        else:
            print(f"{name} is not in the warehouse.")

    def convert_to_eur(self, price, currency):
        conversion_rates = {"USD": 0.82, "JPY": 0.0077, "CAD": 0.64, "SEK": 0.097}
        if currency in conversion_rates:
            return round(price * conversion_rates[currency], 2)
        else:
            raise ValueError("Currency not supported for conversion")

    def __repr__(self):
        product_list = []
        for name, product in self.products.items():
            product_list.append(f"{name}: {product['price']} €, {product['quantity']} available")
        return "\n".join(product_list)


# create a new warehouse
w = Warehouse()

# add some products to the warehouse
w.add_product("apple", 1.2, 10)
w.add_product("banana", 0.8, 20)
w.add_product("orange", 1.5, 15, "USD") # add a product with USD currency

# print the warehouse contents
print(w)

# update the price of an existing product
w.update_price("apple", 1.5)

# update the quantity of an existing product
w.update_quantity("banana", 5)

# remove some products from the warehouse
w.remove_quantity("orange", 5)

# print the warehouse contents again
print(w)
Editor is loading...