Пример #1
0
def process_callback(query):
    bot.answer_callback_query(query.id, text=None, show_alert=False)
    bot.delete_message(query.message.chat.id, query.message.message_id)

    data = query.data.split(sep='_')
    command = data[0]
    id_ = int(data[-1])
    parent_id = int(data[-2])
    if (id_ == -1):
        higher_id = views.get_prev_level(parent_id)
        process_command(query.message, command, higher_id)
    elif (id_ != 0):
        process_command(query.message, command, id_)
    else:
        if (query.data.startswith('add_item')):
            bot.send_message(query.message.chat.id,
                             'Введите наименование товара:')
            bot.register_next_step_handler(query.message, add_name, parent_id)
        elif (query.data.startswith('delete_item')):
            category = views.get_full_name_by_id(parent_id)
            views.delete(parent_id)
            bot.send_message(
                query.message.chat.id,
                '{} {} {}'.format('Категория', category, 'удалена'))
        elif (query.data.startswith('name_item')):
            category = views.get_full_name_by_id(parent_id)
            bot.send_message(query.message.chat.id,
                             'Введите новое наименование товара:')
            bot.register_next_step_handler(query.message, change_name,
                                           parent_id, category)
Пример #2
0
def change_amount(message, id_):
    try:
        amount = int(message.text)
        views.change(id_, amount)
        full_name = views.get_full_name_by_id(id_)
        text = '{} {}: {}'.format('Новое кол-во товара', full_name, amount)
        bot.send_message(message.chat.id, text=text)
    except:
        bot.send_message(message.chat.id, text='Введите количество числом!')
        bot.register_next_step_handler(message, change_amount, id_)
Пример #3
0
def finish_delete_item_processing_order(query):
    bot.answer_callback_query(query.id, text=None, show_alert=False)
    bot.delete_message(query.message.chat.id, query.message.message_id)

    data = query.data.split(sep='_')
    id_ = int(data[-1])
    order_id = int(data[-3])

    if (id_ != 0):
        amount = views.erase_item_order_by_ids(id_, order_id)
        name = views.get_full_name_by_id(id_)
        text = '{} {}::{} {}'.format('Товар', name, amount, 'удален')
        bot.send_message(query.message.chat.id, text=text)

    process_next_order_step(query.message.chat.id, order_id)
Пример #4
0
def add_price(message, parent_id, name, amount):
    try:
        price = int(message.text)
        id_ = views.add(name, amount, parent_id, price)
        full_name = views.get_full_name_by_id(id_)
        bot.send_message(message.chat.id,
                         text='{} {} {} {} {} {}'.format(
                             'Товар', full_name, 'стоимостью', price,
                             'добавлен в количестве', amount))
    except ValueError:
        bot.send_message(message.chat.id, text='Введите цену числом!')
        bot.register_next_step_handler(message, add_price, parent_id, name,
                                       amount)
    except:
        bot.send_message(message.chat.id, text=sys.exc_info()[1])
Пример #5
0
def process_order_callback(query):
    bot.answer_callback_query(query.id, text=None, show_alert=False)
    bot.delete_message(query.message.chat.id, query.message.message_id)
    data = query.data.split(sep='_')
    id_ = int(data[-1])
    parent_id = int(data[-2])
    order_id = int(data[-3])
    if (views.check_order(order_id) == -2 and order_id != 0):
        bot.send_message(query.message.chat.id, text='Заказ удален!')
    else:
        if (id_ == -2):
            process_next_order_step(query.message.chat.id, order_id)
        else:
            if (id_ == -1):
                id_ = views.get_prev_level(parent_id)
            items = views.get_immed_heirs(id_, False)
            full_category = views.get_full_name_by_id(id_)
            if (len(items) != 0):
                markup = generate_markup(items, 'order', '', id_, order_id)
                bot.send_message(query.message.chat.id,
                                 text='Выберите категорию: ' + full_category,
                                 reply_markup=markup)
            else:
                if (id_ != 1):
                    try:
                        if (order_id == 0):
                            admin = views.get_admin()
                            order_id = views.add_new_order(
                                query.message.chat.id, admin)
                            text = '{} {} {}'.format('Заказ', order_id,
                                                     'начат!')
                            bot.send_message(admin, text=text)
                            bot.send_message(query.message.chat.id, text=text)
                        check_timeout()
                        bot.send_message(query.message.chat.id,
                                         text=full_category)
                        bot.send_message(query.message.chat.id,
                                         text='Введите количество:')
                        bot.register_next_step_handler(query.message,
                                                       order_amount, id_,
                                                       full_category, order_id)
                    except OverflowError:
                        bot.send_message(query.message.chat.id,
                                         text=sys.exc_info()[1])
                else:
                    bot.send_message(query.message.chat.id,
                                     text='Товаров нет!')
Пример #6
0
def change_amount_start(message, level=1):
    if (views.check_id(str(message.chat.id))):
        properties = ['amount_item', '', 'Выберите категорию для изменения:']
        all_items = views.get_immed_heirs(level)
        if (level == 1 and len(all_items) == 0):
            bot.send_message(message.chat.id, text='Товаров нет!')
        elif (len(all_items) == 0):
            bot.send_message(message.chat.id,
                             'Введите новое количество товара:')
            bot.register_next_step_handler(message, change_amount, level)
        else:
            markup = generate_markup(all_items, properties[0], properties[1],
                                     level)
            message_ = properties[2] + views.get_full_name_by_id(level)
            bot.send_message(message.chat.id,
                             text=message_,
                             reply_markup=markup)
    else:
        bot.send_message(message.chat.id, text=message.text)
Пример #7
0
def process_command(message, command, level):
    add_properties = ['add_item', 'Новая категория', 'Выберите категорию:']
    delete_properties = [
        'delete_item', 'Удалить категорию', 'Выберите категорию для удаления:'
    ]
    name_properties = [
        'name_item', 'Изменить категорию', 'Выберите категорию для изменения:'
    ]
    items_properties = ['items_all', 'Завершить просмотр', 'Категория:']
    properties_ = {
        'add': add_properties,
        'delete': delete_properties,
        'name': name_properties,
        'items': items_properties,
    }
    properties = properties_[command]
    all_items = views.get_immed_heirs(level)
    if (command != 'add' and level == 1 and len(all_items) == 0):
        bot.send_message(message.chat.id, text='Товаров нет!')
    else:
        markup = generate_markup(all_items, properties[0], properties[1],
                                 level)
        message_ = properties[2] + views.get_full_name_by_id(level)
        bot.send_message(message.chat.id, text=message_, reply_markup=markup)