def additem(self, _id, code): item_dao = item.ItemDAO() if item_dao.read(code=code): basket_dao = basket.BasketDAO() return basket_dao.additem(_id, code) self.logger.error("Item with code '%s', does not exist in inventory", code) return False
def get(self, _code=None, _name=None): """ Gets an item in inventory either by code or name. :param code: item code. \n :type code: string. \n :param name: item name. \n :type name: string. \n :returns: item dictionary. \n :rtype: `dict`. """ if not _code and not _name: raise ValueError("Must specify code and name!") _item = item.ItemDAO() return _item.read(code=_code, name=_name)
def remove(self, _code=None, _name=None): """ Removes an item from inventory by code or name. :param code: item code. \n :type code: string. \n :param name: item name. \n :type name: string. \n :returns: True if success else False. \n :rtype: boolean. """ if not _code and not _name: raise ValueError("Item name and price cannot be None") _item = item.ItemDAO() return _item.delete(code=_code, name=_name)
def create(self, codes): if not isinstance(codes, list): self.logger.error("Codes must be in formt of list.") return None code_errors = False for code in codes: if not item.ItemDAO().read(code=code): code_errors = True break if code_errors: self.logger.error( "There are item codes in your list that do not exist in inventory!" ) return None return basket.BasketDAO().create(codes)
def add(self, code, name, price): """ Add item to inventory. :param code: item code. \n :type code: string. \n :param name: item name. \n :type name: string. \n :param price: item price. \n :type price: float. \n :returns: True if success else False. \n :rtype: boolean. """ price = float(price) _item = item.ItemDAO() return _item.create(code, name, price)
def update(self, code, _name=None, _price=None): """ Updates an item in inventory either by name, price or both. :param code: item code. \n :type code: string. \n :param name: item name. \n :type name: string. \n :param price: item price. \n :type price: float. \n :returns: True if success else False. \n :rtype: boolean. """ if not _name and not _price: raise ValueError("Item name and price cannot be None") _item = item.ItemDAO() if _item.update(code, name=_name, price=_price): return True return False