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)
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_)
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)
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])
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='Товаров нет!')
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)
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)