示例#1
0
文件: verify.py 项目: sychov/conditer
        def b_verify(self):
            """Срабатывает при нажатии кнопки "Сверить список".
            Проводит предварительную сверку количества товаров."""

            if tkMessageBox.askokcancel('Внимание!',
                          'Вы действительно хотите сверить список со складом?'):

                self.button_del.configure(state=NORMAL)
                for cath in queries.cathegories():
                    for eat in queries.real_items_in_cathegory_shown(cath):

                        storage_quantity = int(queries.items_in_storage(eat))
                        if storage_quantity and (eat not in self.bill):
                            self.bill.append(eat)
                            self.quantity.append(0)
                            string = u' %-' + unicode(VERIFY_WIDTH -
                                                     30) + u's %8d %3s (%s %3s)'
                            string = string % (eat.name, 0, eat.measure,
                                                  storage_quantity, eat.measure)
                            self.listbox.insert(END, string)
                            self.listbox.itemconfig(END, {'fg':'red'})

                #и для Ингредиентов
                for eat in queries.real_items_in_cathegory_shown(None):
                    storage_quantity = int(queries.items_in_storage(eat))
                    if storage_quantity and (eat not in self.bill):
                        self.bill.append(eat)
                        self.quantity.append(0)
                        string = u' %-' + unicode(VERIFY_WIDTH -
                                                 30) + u's %8d %3s (%s %3s)'
                        string = string % (eat.name, 0, eat.measure,
                                              storage_quantity, eat.measure)
                        self.listbox.insert(END, string)
                        self.listbox.itemconfig(END, {'fg':'red'})
示例#2
0
文件: report.py 项目: sychov/conditer
    def assortiment_fill():
        """Функция заполнения списков товаров/ингредиентов"""

        for q in range(len(assortiment)):       # Очищаем список товаров
            del(assortiment[0])
        listbox_goods.delete(0, END)

        for cath in queries.cathegories():
            assortiment.append(None)
            listbox_goods.insert(END, '')
            assortiment.append(None)
            head = '-' * (REPORT_WIDTH - len(cath.name) -1) + cath.name + u'-'
            listbox_goods.insert(END, head)

            for item in queries.items_in_cathegory(cath):
                assortiment.append(item)
                listbox_goods.insert(END, ' ' + item.name)
                if not item.show:
                    listbox_goods.itemconfig(END, {'fg':'grey'})

        assortiment.append(None)
        listbox_goods.insert(END, '')
        assortiment.append(None)
        head = '-' * (REPORT_WIDTH - len(u'Ингредиенты') -1) + u'Ингредиенты-'
        listbox_goods.insert(END, head)

        for item in queries.items_in_cathegory(None):
            assortiment.append(item)
            listbox_goods.insert(END, ' ' + item.name)
            if not item.show:
                listbox_goods.itemconfig(END, {'fg':'grey'})
示例#3
0
    def listbox_fill():
        """Функция заполнения левого листа товарами"""

        for q in range(len(assortiment)):       # Очищаем список
            del(assortiment[0])
        listbox.delete(0, END)

        category_list = queries.cathegories()

        if not category_list:
            assortiment.append(None)
            listbox.insert(END, 'Список пуст.')
        else:
            for cath in category_list:

                if cath.name <> u'Акции':

                    assortiment.append(None)
                    listbox.insert(END, '')
                    assortiment.append(None)
                    head = '-' * (CONTROL_WIDTH - len(cath.name) -1) + cath.name + u'-'
                    listbox.insert(END, head)

                    for item in queries.items_in_cathegory(cath):

                        if not item.sales:
                            assortiment.append(item)
                            listbox.insert(END, ' ' + item.name)
                            if not item.show:
                                listbox.itemconfig(END, {'fg':'grey'})

        small_listbox.delete(0, END)
示例#4
0
文件: verify.py 项目: sychov/conditer
        def b_accept(self):
            """Срабатывает при нажатии "Провести операцию" на панели списка.
            Полностью проводит приход по бухгалтерии, добавляя излишки товара и
            списывая недостачу. Изменяет базу данных"""

            if not self.bill:
                tkMessageBox.showwarning('Однако!',
                                       'Список пуст, инвентаризировать нечего.')

            elif tkMessageBox.askokcancel('Внимание!',
                                   'Вы утверждаете результаты инвентаризации?'):

                #Проводим сверку инвентаризационного списка со складом
                for cath in queries.cathegories():
                    for eat in queries.real_items_in_cathegory_shown(cath):

                        storage_quantity = int(queries.items_in_storage(eat))
                        if storage_quantity and (eat not in self.bill):
                            self.bill.append(eat)
                            self.quantity.append(0)
                            string = u' %-' + unicode(VERIFY_WIDTH -
                                                     30) + u's %8d %3s (%s %3s)'
                            string = string % (eat.name, 0, eat.measure,
                                                  storage_quantity, eat.measure)
                            self.listbox.insert(END, string)
                            self.listbox.itemconfig(END, {'fg':'red'})

                #...и для ингредиентов
                for eat in queries.real_items_in_cathegory_shown(None):
                    storage_quantity = int(queries.items_in_storage(eat))
                    if storage_quantity and (eat not in self.bill):
                        self.bill.append(eat)
                        self.quantity.append(0)
                        string = u' %-' + unicode(VERIFY_WIDTH -
                                                 30) + u's %8d %3s (%s %3s)'
                        string = string % (eat.name, 0, eat.measure,
                                              storage_quantity, eat.measure)
                        self.listbox.insert(END, string)
                        self.listbox.itemconfig(END, {'fg':'red'})

                if not tkMessageBox.askyesno('Внимание!',
              'Будете ознакамливаться с окончательным списком (после сверки)?'):
                    queries.execute_inventarize(self.bill, self.quantity,
                                                         self.memo.get(1.0,END))
                    self.bill = []
                    self.quantity = []
                    self.listbox.delete(0, END)
                    self.button_del.configure(state=DISABLED)

                    show_verify.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)
示例#5
0
文件: report.py 项目: sychov/conditer
    def menu_update():
        """Обновляет меню выбора категорий."""

        menu  =  Menu(cathMenu, tearoff=0)
        cathMenu['menu'] = menu

        for cath in queries.cathegories():
            menu.add_command(label=cath.name, font=('Verdana', FONT_SIZE_BIG),
                                      command=lambda key=cath: menu_change(key))
        menu.add_command(label=u'-Отсутствует-', font=('Verdana',FONT_SIZE_BIG),
                                    command=lambda: menu_change(None))
示例#6
0
    def listbox_cath_fill():
        """Заполняет лист категорий"""

        for q in range(len(cathegories)):       # Очищаем список
            del(cathegories[0])
        listbox_cath.delete(0, END)

        for cath in queries.cathegories():
            cathegories.append(cath)
            string = u'%-' + unicode(CONTROL_4_WIDTH - 2 - len(cath.picture))
            string = (string + u's%s') % (cath.name, cath.picture)
            listbox_cath.insert(END, ' ' + string)
            if not queries.items_in_cathegory(cath):
                listbox_cath.itemconfig(END, {'fg':'red'})
示例#7
0
文件: gui.py 项目: sychov/conditer
    def __init__(self, back):

        self.IMAGES = {}
        for key in queries.cathegories():
            self.IMAGES[key.picture] = PhotoImage(file='static//food//' +
                    key.picture).subsample(
                                   SELL_BUTTON_PIC_SCALE, SELL_BUTTON_PIC_SCALE)
        self.IMAGES[u'Ингредиенты'] = PhotoImage(
                    file='static//food//ingredients.gif'
                    ).subsample(SELL_BUTTON_PIC_SCALE, SELL_BUTTON_PIC_SCALE)

        self.IMG_INTERFACE = []
        for q in range(11):
            self.IMG_INTERFACE.append(PhotoImage(file='static//interface//' +
                    str(q)+'.gif').subsample(INTERFACE_BUTTON_PIC_SCALE,
                                                INTERFACE_BUTTON_PIC_SCALE))

        self.photo = PhotoImage(file = 'static\\back\\' + back,
                                                        width=2000, height=1200)
        self.restart = False
示例#8
0
文件: sell.py 项目: sychov/conditer
    def show_sell_cathegory():
        """Заполняет нижний фрейм списком категорий товаров (кнопками с
        картинками). """

        master = show_sell.master

        big_buttons = []
        for cathegory in queries.cathegories():
            big_buttons.append(Button(master,
                        text=cathegory.name,
                        image=data.IMAGES[cathegory.picture],
                        compound="top", style='Default.TButton',
                        command=lambda cath=cathegory:
                                       press_cathegory(cath)))

            if not queries.actual_items_in_cathegory(cathegory):
                                    big_buttons[-1].configure(state=DISABLED)

        # Вынос картинок на глобальную переменную (в объекте data) не дурость,
        # а, к сожалению, проблема взаимоотношения Ткинтера с интерпретатором.
        # Иначе картинки банально исчезают под уборщиком мусора.

        if not big_buttons:
            return

        big_buttons[0].grid(column=0, row=0,
                        padx=SELL_BUTTON_PADX, pady=SELL_BUTTON_PADY)

        master.update()
        x1 = master.winfo_width()
        x2 = big_buttons[0].winfo_width()
        master.update()
        SELL_BUTTON_COUNT = x1//(x2+SELL_BUTTON_PADX*2)
        if SELL_BUTTON_COUNT:
            for q in range (1, len(big_buttons)):
                big_buttons[q].grid(column=q%SELL_BUTTON_COUNT,
                                    row=q//SELL_BUTTON_COUNT,
                                    padx=SELL_BUTTON_PADX,
                                    pady=SELL_BUTTON_PADY)
示例#9
0
文件: lost.py 项目: sychov/conditer
    def show_lost_cathegory(master):
        """Заполняет нижний фрейм списком категорий товаров (кнопками с
        картинками). """

        big_buttons = []
        for cathegory in queries.cathegories():
            if cathegory.name <> u'Акции':
                big_buttons.append(Button(master,
                            text=cathegory.name,
                            image=data.IMAGES[cathegory.picture],
                            compound="top", style='Default.TButton',
                            command=lambda cath=cathegory:
                                           press_cathegory(master, cath)))

                if not queries.actual_items_in_cathegory(cathegory):
                                       big_buttons[-1].configure(state=DISABLED)

        # + одну кнопку для "голых" индредиентов
        big_buttons.append(Button(master,
                        text=u'Ингредиенты',
                        image=data.IMAGES[u'Ингредиенты'],
                        compound="top", style='Default.TButton',
                        command=lambda cath=None:
                                       press_cathegory(master, cath)))

        big_buttons[0].grid(column=0, row=0,
                        padx=SELL_BUTTON_PADX, pady=SELL_BUTTON_PADY)

        master.update()
        x1 = master.winfo_width()
        x2 = big_buttons[0].winfo_width()
        SELL_BUTTON_COUNT = x1//(x2+SELL_BUTTON_PADX*2)
        if SELL_BUTTON_COUNT:
            for q in range (1, len(big_buttons)):
                big_buttons[q].grid(column=q%SELL_BUTTON_COUNT,
                                    row=q//SELL_BUTTON_COUNT,
                                    padx=SELL_BUTTON_PADX,
                                    pady=SELL_BUTTON_PADY)