예제 #1
0
파일: sell.py 프로젝트: sychov/conditer
        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
예제 #2
0
파일: lost.py 프로젝트: sychov/conditer
    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)
예제 #3
0
파일: sell.py 프로젝트: sychov/conditer
        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
예제 #4
0
파일: verify.py 프로젝트: sychov/conditer
    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)