def verify_calc(self, item, item_quantity): """Подсобная функция для работы функции verify(). Проверяет наличие на складе ингредиентов, входящих в сложный товар на момент продажи. В случае недостатка предлагает совершить мгновенный приход товара. Возвращает True или False в зависимости от итогового наличия необходиомого количества товара на складе для продажи.""" result = True for calc in queries.item_calculation(item): if calc.ingredient.calculation: for calc2 in queries.item_calculation(calc.ingredient): quantity = int(queries.items_in_storage( calc2.ingredient)) need_quantity = (item_quantity * calc2.quantity * calc.quantity) if quantity < need_quantity: if tkMessageBox.askyesno(u'Внимание!', u'Вы пытаетесь продать %d единицы товара "%s".' % (need_quantity, calc2.ingredient.name) + u'\nНа складе имеется всего %d единицы!'% quantity + u'\nВыполнить мгновенную поставку товара?'): incoming = panel() if not queries.execute_incoming_express( calc2.ingredient, incoming) or (need_quantity > incoming + quantity): result = False else: result = False else: quantity = int(queries.items_in_storage(calc.ingredient)) need_quantity = item_quantity * calc.quantity if quantity < need_quantity: if tkMessageBox.askyesno(u'Внимание!', u'Вы пытаетесь продать %d единицы товара "%s".' % (need_quantity, calc.ingredient.name) + u'\nНа складе имеется всего %d единицы!'% quantity + u'\nВыполнить мгновенную поставку товара?'): incoming = panel() if not queries.execute_incoming_express( calc.ingredient, incoming) or (need_quantity > incoming + quantity): result = False else: result = False return result
def press_eat(master, eat): """Срабатывает при нажатии на кнопку выбора собственно блюда. Добавляет блюдо в список, или возвращается к выбору категории, если нажата кнопка с eat=''.""" if eat: count = panel() if count: rest = queries.items_in_storage(eat) if rest and (count > int(rest)): if tkMessageBox.askokcancel('Внимание!', 'Вы хотите списать больше, чем есть на складе!\n\n'+ 'В настоящий момент на складе %s единиц\n' % rest + 'А вы хотите списать %d!\n\n' % count + 'Желаете списать все со склада, что там осталось?\n'): if int(rest): lostList.add_eat(eat, int(rest)) else: tkMessageBox.showwarning('ОДнако!', 'А там ничего не осталось...') else: lostList.add_eat(eat, count) else: parent_name = master.winfo_parent() parent = master._nametowidget(parent_name) master.destroy() lostBottomFrame = Canvas(MasterFrame, highlightthickness=0) show_lost.master = lostBottomFrame if USE_BACKGROUND: lostBottomFrame.create_image(0,0, anchor='nw', image=data.photo) lostBottomFrame.pack(side=LEFT, fill=BOTH, expand=YES) show_lost_cathegory(lostBottomFrame)
def verify(self): """Проверяет наличие на складе товаров, входящих в счет, на момент продажи, в случае недостатка предлагает совершить мгновенный приход товара. Возвращает True или False в зависимости от итогового наличия необходиомого количества товара на складе для продажи.""" all_present = True for item, item_quantity in zip(self.bill, self.quantity): if item.calculation: if not self.verify_calc(item, item_quantity): all_present = False else: quantity = int(queries.items_in_storage(item)) if quantity < item_quantity: if tkMessageBox.askyesno(u'Внимание!', u'Вы пытаетесь продать %d единицы товара "%s".' % (item_quantity, item.name) + u'\nНа складе имеется всего %d единицы!' % quantity + u'\nВыполнить мгновенную поставку товара?'): incoming = panel() if not queries.execute_incoming_express(item, incoming) or (item_quantity > incoming + quantity): all_present = False else: all_present = False return all_present
def press_eat(master, eat): """Срабатывает при нажатии на кнопку выбора собственно блюда. Добавляет блюдо в список, или возвращается к выбору категории, если нажата кнопка с eat=''.""" if eat: count = panel() if count: rest = queries.items_in_storage(eat) incomingList.add_eat(eat, count) else: parent_name = master.winfo_parent() parent = master._nametowidget(parent_name) master.destroy() incomingBottomFrame = Canvas(MasterFrame, highlightthickness=0) show_verify.master = incomingBottomFrame if USE_BACKGROUND: incomingBottomFrame.create_image(0,0, anchor='nw', image=data.photo) incomingBottomFrame.pack(side=LEFT, fill=BOTH, expand=YES) show_verify_cathegory(incomingBottomFrame)