예제 #1
0
 def dest(event):
     print(name_entry.get())
     string_dish.append(name_entry.get())
     prog.insert_type_string_excel(string_dish)  # Ввод типа в таблицу Excel
     trees.insert_type_string(
     )  # Вывод типа в treeview (в типы и в полную таблицы)
     print("KILL")
     ins_enter.destroy()  # Удаление окна
예제 #2
0
 def dest_type(event):
     print(name_entry.get())
     string_dish.append(name_entry.get())
     index_type = trees.changing_string(note_tree, string_dish)
     prog.change_type_string_excel(
         string_dish, index_type)  # Ввод типа в таблицу Excel
     print("KILL")
     ins_enter.destroy()  # Удаление окна
예제 #3
0
def save_table():
    """
    Автор: Исмаилов Асад, Гамидов Шамсудин
    Цель: Вызывается кнопкой "Сохранить", сохранение данных treeview (в исходный файл)
    Вход: Нет входных данных
    Выход: Обновленные данные исходного файла
    
    """
    prog.save_table_name()
예제 #4
0
def insert_orders_string():
    """
    Автор: Исмаилов Асад
    Цель: Вызов функции и передача данных дерева заказов
    Вход: Нет выходных данных
    Выход: Нет выходных данных

    """
    prog.insert_orders_string_tree(tree_orders, tree_full)
예제 #5
0
def insert_menu_string():
    """
    Автор: Исмаилов Асад
    Цель: Вызов функции и передача данных дерева меню
    Вход: Нет входных данных
    Выход: Нет выходных данных

    """
    prog.insert_menu_string_tree(tree_menu, tree_full)
예제 #6
0
def insert_type_string():
    """
    Автор: Исмаилов Асад
    Цель: Вызов функции и передача данных дерева типов
    Вход: Нет входных данных
    Выход: Нет выходных данных

    """
    prog.insert_type_string_tree(tree_type)
예제 #7
0
 def dest_dish(event):
     print(name_entry.get())
     string_dish.append(name_entry.get())
     string_dish.append(price_entry.get())
     string_dish.append(size_entry.get())
     string_dish.append(typed_entry.get())
     print(string_dish)
     index_dish = trees.changing_string(note_tree, string_dish)
     prog.change_dish_string_excel(
         string_dish, index_dish)  # Ввод типа в таблицу Excel
     print("KILL")
     ins_enter.destroy()  # Удаление окна
예제 #8
0
 def dest(event):
     print(name_entry.get())
     string_dish.append(name_entry.get())
     string_dish.append(price_entry.get())
     string_dish.append(size_entry.get())
     string_dish.append(typed_entry.get())
     print(string_dish)
     prog.insert_menu_string_excel(
         string_dish)  # Ввод блюда в таблицу Excel
     trees.insert_menu_string(
     )  # Вывод блюда в treeview (в Меню и в полную таблицы)
     print("KILL")
     ins_enter.destroy()  # Удаление окна
예제 #9
0
def export_table():
    """
    Автор: Исмаилов Асад, Гамидов Шамсудин
    Цель: Вызывается кнопкой "Экспорт", экспорт данных treeview (директорию выбирает пользователь)
    Вход: Нет входных данных
    Выход: Файл с данными с treeview
    
    """
    fname = filedialog.asksaveasfilename(filetypes=[
        ("Excel files", "*.xlsx")
    ])  # Получение директории папки, куда сохранять
    print(fname)
    prog.export_table_name(fname)
예제 #10
0
def open_table():
    """
    Автор: Исмаилов Асад, Гамидов Шамсудин
    Цель: Вызывается кнопкой "Открыть", открытие вводимой пользователем таблицы и вывод ее данных в treeview
    Вход: Нет входных данных
    Выход: Обновленный treeview
    
    """
    file_name = filedialog.askopenfilename(
    )  # Получение директории папки с данными
    print(file_name)
    prog.open_table_name(file_name)
    trees.open_tables()
예제 #11
0
    def dest(event):
        string_dish.append(0)
        string_dish.append(data_entry.get())
        string_dish.append(time_entry.get())
        string_dish.append(code_dish_entry.get())
        string_dish.append(kolvo_entry.get())

        print(string_dish)
        prog.insert_orders_string_excel(
            string_dish)  # Ввод заказа в таблицу Excel
        trees.insert_orders_string(
        )  # Вывод заказа в treeview (в Заказы и в полную таблицу под блюдо из заказа)
        print("KILL")
        ins_enter.destroy()  # Удаление окна
예제 #12
0
def open_tables():
    """
    Автор: Исмаилов Асад
    Цель: Вывод данных таблицы в treeview
    Вход: Нет входных данных
    Выход: Обновленный treeview (с добавленными из таблицы данными)

    """
    prog.insert_type(tree_type)  # Вывод данных из Excel в treeview
    prog.insert_orders(tree_orders)  # Вывод данных из Excel в treeview
    prog.insert_menu(tree_menu)  # Вывод данных из Excel в treeview
    prog.insert_full(tree_full)  # Вывод данных из Excel в treeview
예제 #13
0
def deleting_string(note_tree):
    """
    Автор: Исмаилов Асад
    Цель: Удаление выделенной строки и элементов, зависящих от данной строки, как в treeview, так и в Excel
    Вход: note_tree (виджет для управления коллекцией окон и отображения только 1 окна за раз)
    Выход: Обновленные treeview и Excel (после удаления)
    
    """
    global tree_type
    global tree_menu
    global tree_orders
    global tree_full

    print("Current tree is number ", note_tree.index("current"))
    id_tree = note_tree.index(
        "current")  # Номер открытой пользователем таблицы [0, 1, 2, 3]

    if id_tree == 0:  # Если открыта таблица типов
        selected_item = tree_type.selection(
        )[0]  # Id выделенной строки "type0", где 0 - номер типа в таблице типов
        values = tree_type.item(selected_item,
                                option="values")  # Данные выделенной строки
        print(values)
        tree_type.delete(
            selected_item)  # Удаление строки в treeview (в таблице типов)
        dish_child = tree_menu.get_children()
        for id_dish in range(
                len(dish_child) - 1, -1,
                -1):  # С конца, иначе удаляется через 1 из-за сдвига
            item_menu = dish_child[id_dish]
            values_dish = tree_menu.item(item_menu, option="values")
            if int(float(values_dish[3])) == int(selected_item[4:]):
                print(id_dish)
                tree_menu.delete(
                    item_menu)  # Удаление блюда в treeview (в таблице Меню)
                try:
                    prog.deleting_string(id_dish, 2)  # Удаление блюда в Excel
                except:
                    print("Gi")
                full_child = tree_full.get_children(
                    "full%d" % (int(item_menu[4:]))
                )  # "Дети" данного блюда в полной таблице, т.е. подстроки, заказы с этим блюдом
                for id_orders in range(
                        len(full_child)
                ):  # id_orders - id заказов с данным блюдом - "subAB", где A - номер блюда в Меню, B - номер заказа среди "детей"
                    tree_orders.delete(
                        "order%d" % (int(
                            ((tree_full.item(full_child[id_orders],
                                             option="values"))[4])[1:]))
                    )  # Удаление заказов в treeview (в таблице заказов)
                    prog.deleting_string(
                        int(((tree_full.item(full_child[id_orders],
                                             option="values"))[4])[1:]) - 1,
                        1)  # Удаление заказа в Excel
                tree_full.delete(
                    "full%d" % (int(item_menu[4:]))
                )  # Удаление блюда в treeview (в полной таблице с его подстроками)
        print(selected_item)
        prog.deleting_string(int(selected_item[4:]) - 1,
                             id_tree)  # Удаление типа в Excel

    if id_tree == 1:  # Если открыта таблица заказов
        selected_item = tree_orders.selection(
        )[0]  # Id выделенной строки "order0", где 0 - номер заказа в таблице заказов
        values = tree_orders.item(selected_item,
                                  option="values")  # Данные выделенной строки
        print(values)
        k = prog.num_sub(int(
            selected_item[5:]))  # Номер данного заказа в полной таблице
        tree_full.delete("sub%d%d" % (int(float(
            values[2])), k))  # Удаление заказа в treeview (в полной таблице)
        tree_orders.delete(
            selected_item)  # Удаление заказа в treeview (в таблице заказов)
        print(selected_item)
        prog.deleting_string(int(selected_item[5:]) - 1,
                             id_tree)  # Удаление заказа в Excel

    if id_tree == 2:  # Если открыта таблица Меню
        selected_item = tree_menu.selection(
        )[0]  # Id выделенной строки "menu0", где 0 - номер блюда в таблице Меню
        values = tree_menu.item(selected_item,
                                option="values")  # Данные выделенной строки
        print(values)
        tree_menu.delete(
            selected_item)  # Удаление блюда в treeview (в таблице Меню)
        full_child = tree_full.get_children(
            "full%d" % (int(selected_item[4:]))
        )  # "Дети" данного блюда в полной таблице, т.е. подстроки, заказы с этим блюдом
        print(full_child)  # Вывод массива из "детей" блюда
        for id_orders in range(
                len(full_child) - 1, -1, -1
        ):  # id_orders - id заказов с данным блюдом - "subAB", где A - номер блюда в Меню, B - номер заказа среди "детей"
            tree_orders.delete("order%d" % (int(
                ((tree_full.item(full_child[id_orders], option="values"))[4]
                 )[1:])))  # Удаление заказов в treeview (в таблице заказов)
            try:
                prog.deleting_string(
                    int(((tree_full.item(full_child[id_orders],
                                         option="values"))[4])[1:]) - 1,
                    1)  # Удаление заказа в Excel
            except:
                print("Gi")
        tree_full.delete(
            "full%d" % (int(selected_item[4:]))
        )  # Удаление блюда в treeview (в полной таблице с его подстроками)
        print(selected_item)
        prog.deleting_string(int(selected_item[4:]) - 1,
                             id_tree)  # Удаление блюда в Excel

    if id_tree == 3:  # Если открыта полная таблица
        # Id выделенной строки:
        # "full0", если это блюдо в полной таблице, где 0 - номер блюда в таблице
        # "subAB", если это заказ в полной таблице, где A - номер блюда в таблице, B - номер заказа среди "детей" блюда6
        selected_item = tree_full.selection()[0]
        values = tree_full.item(selected_item,
                                option="values")  # Данные выделенной строки
        print(values)
        if selected_item[0] == 'f':  # Если это блюдо ("full0"[0] = 'f')
            tree_menu.delete("menu%d" % (int(selected_item[4:]))
                             )  # Удаление блюда в treeview (в таблице Меню)
            full_child = tree_full.get_children(
                selected_item
            )  # "Дети" данного блюда в полной таблице, т.е. подстроки, заказы с этим блюдом
            print(full_child)  # Вывод массива из "детей" блюда
            for id_orders in range(
                    len(full_child) - 1, -1, -1
            ):  # id_orders - id заказов с данным блюдом - "subAB", где A - номер блюда в Меню, B - номер заказа среди "детей"
                tree_orders.delete("order%d" % (int((
                    (tree_full.item(full_child[id_orders], option="values"))[4]
                )[1:])))  # Удаление заказов в treeview (в таблице заказов)
                prog.deleting_string(
                    int(((tree_full.item(full_child[id_orders],
                                         option="values"))[4])[1:]) - 1,
                    1)  # Удаление заказа в Excel
            try:
                prog.deleting_string(int(selected_item[4:]) - 1,
                                     2)  # Удаление блюда в Excel
            except:
                print('Gi')
            tree_full.delete(
                selected_item)  # Удаление строки в treeview (в полной таблице)
        elif selected_item[0] == 's':  # Если это заказ ("subAB"[0] = 's')
            tree_orders.delete(
                "order%d" % (int((values[4])[1:]))
            )  # Удаление заказа в treeview (в таблице заказов)
            full_child = tree_full.get_children(
                "full%d" % (int(selected_item[3:-1]))
            )  # "Дети" данного блюда в полной таблице, т.е. подстроки, заказы с этим блюдом
            prog.deleting_string(
                int(((tree_full.item(full_child[int(selected_item[-1]) - 1],
                                     option="values"))[4])[1:]) - 1,
                1)  # Удаление заказа в Excel
            tree_full.delete(
                selected_item)  # Удаление строки в treeview (в полной таблице)
        print(selected_item)
예제 #14
0
def changing_string(note_tree, string_dish):
    """
    Автор: Исмаилов Асад
    Цель: Изменение выделенной строки и элементов, зависящих от данной строки, как в treeview, так и в Excel
    Вход: note_tree (виджет для управления коллекцией окон и отображения только 1 окна за раз), string_dish (массив из данных новой строки)
    Выход: номер выделенной типа/блюда в таблице Excel
    
    """
    global tree_type
    global tree_menu
    global tree_orders
    global tree_full

    print("Current tree is number ", note_tree.index("current"))
    id_tree = note_tree.index(
        "current")  # Номер открытой пользователем таблицы [0, 1, 2, 3]

    if id_tree == 0:  # Если открыта таблица типов
        selected_item = tree_type.selection(
        )[0]  # Id выделенной строки "type0", где 0 - номер типа в таблице типов
        values = tree_type.item(selected_item,
                                option="values")  # Данные выделенной строки
        tree_type.item(selected_item, values=(string_dish[0]))
        print(values)
        dish_child = tree_menu.get_children()
        for id_dish in range(len(dish_child)):
            item_menu = dish_child[id_dish]
            values_dish = tree_menu.item(item_menu, option="values")
            if int(float(values_dish[3])) == int(selected_item[4:]):
                tree_full.item("full%d" % (int(item_menu[4:])),
                               values=(values_dish[0], values_dish[1],
                                       values_dish[2], string_dish[0]))
        return (int(selected_item[4:]) - 1)

    if id_tree == 2:  # Если открыта таблица Меню
        selected_item = tree_menu.selection(
        )[0]  # Id выделенной строки "menu0", где 0 - номер блюда в таблице Меню
        values = tree_menu.item(selected_item,
                                option="values")  # Данные выделенной строки
        price_dish = int(string_dish[1])
        if int(string_dish[1]) != int(values[1]):
            for id_orders in range(len(tree_orders.get_children())):
                values_orders = tree_orders.item("order%d" % (id_orders + 1),
                                                 option="values")
                if int(float(values_orders[2])) == int(selected_item[4:]):
                    tree_orders.item(
                        "order%d" % (id_orders + 1),
                        values=(values_orders[0], values_orders[1],
                                values_orders[2], values_orders[3],
                                price_dish * int(float(values_orders[3]))))
                    prog.change_order_string_excel([
                        0, values_orders[0], values_orders[1],
                        values_orders[2], values_orders[3],
                        price_dish * int(float(values_orders[3]))
                    ], id_orders)
                    k = prog.num_sub(
                        id_orders + 1)  # Номер данного заказа в полной таблице
                    values_sub = tree_full.item("sub%d%d" %
                                                (int(selected_item[4:]), k),
                                                option="values")
                    tree_full.item(
                        "sub%d%d" % (int(selected_item[4:]), k),
                        values=('', '', '', '', '', values_sub[5],
                                values_sub[6], values_sub[7],
                                price_dish * int(float(values_orders[3]))))
        tree_menu.item(selected_item,
                       values=(string_dish[0], string_dish[1], string_dish[2],
                               string_dish[3]))
        values_type = tree_type.item(
            "type%d" % (int(string_dish[3])),
            option="values")  # Данные выделенной строки
        tree_full.item("full%d" % (int(selected_item[4:])),
                       values=(string_dish[0], string_dish[1], string_dish[2],
                               values_type[0]))
        print(values)
        return (int(selected_item[4:]) - 1)