def main_menu(message): if message.text == '☎ Контакты': bot.send_message(message.chat.id, Messages.CONTACTS.value, reply_markup=keyboards.main_menu()) elif message.text == '🚀 Доставка': bot.send_message(message.chat.id, Messages.DELIVERY.value, parse_mode='HTML', reply_markup=keyboards.main_menu()) elif message.text == '✏ Информация': bot.send_message(message.chat.id, Messages.INFO.value, parse_mode='HTML', reply_markup=keyboards.main_menu()) elif message.text == '🍴 Меню': bot.send_message(message.chat.id, 'Выберите раздел, чтобы вывести список блюд 👇🏻', reply_markup=keyboards.categories()) states.set_state(message.chat.id, States.S_MENU.value) elif message.text == '📥 Корзина': bot.send_message(message.chat.id, messages.basket(message.chat.id), parse_mode='HTML', reply_markup=keyboards.basket()) else: bot.send_message(message.chat.id, 'Неизвесная команда!\n' 'Попробуйте /start или /help')
def chose_weight_menu(message): weights = product.get_pizza_weight_by_title(db.get_cache(message.chat.id)) if message.text == '⬅ Назад': bot.send_message(message.chat.id, 'Выберите раздел, чтобы вывести список блюд 👇🏻', reply_markup=keyboards.categories()) db.delete_empty_orders(message.chat.id) states.set_state(message.chat.id, States.S_MENU.value) else: for w in weights: if message.text in w['text']: product_ = product.get_pizza_by_title( db.get_cache(message.chat.id)) db.add_order_pizza(message.chat.id, db.get_cache(message.chat.id), product_['comp'], w['text'], int(product_['price']) + int(w['price']), product_['picture']) bot.send_message(message.chat.id, 'Выбор количества ⬇', reply_markup=keyboards.back_keyboard()) bot.send_message( message.chat.id, '<b>' + db.get_cache(message.chat.id) + '</b>\n<b>Цена: ' + str(int(product_['price']) + int(w['price'])) + '</b> — ' + message.text, reply_markup=keyboards.chose_amount(), parse_mode='HTML') states.set_state(message.chat.id, States.S_CHOSE_AMOUNT.value)
def back_btn(message): if message.text == '⬅ Назад': bot.send_message(message.chat.id, 'Выберите раздел, чтобы вывести список блюд 👇🏻', reply_markup=keyboards.categories()) db.delete_empty_orders(message.chat.id) states.set_state(message.chat.id, States.S_MENU.value) else: bot.send_message(message.chat.id, 'Неизвесная команда!\n' 'Попробуйте /start или /help')
def others_menu(message): for p in product.get_others_titles(): if message.text == p: bot.send_chat_action(message.chat.id, 'upload_photo') img_url = product.get_others_by_title(message.text)['picture'] try: urllib2.urlretrieve(img_url, 'cache/other.jpg') img = open('cache/other.jpg', 'rb') except: urllib2.urlretrieve(img_url, 'cache/other_two.jpg') img = open('cache/other_two.jpg', 'rb') product_ = product.get_others_by_title(message.text) bot.send_message(message.chat.id, 'Ваш продукт: ', reply_markup=keyboards.back_keyboard()) bot.send_photo(message.chat.id, img, messages.product_data(product_), parse_mode='HTML', reply_markup=keyboards.add_to_basket()) img.close() db.add_order(message.chat.id, message.text, product_['comp'], product_['price'], product_['picture']) db.set_cache(message.chat.id, message.text) if message.text == '⬅ Назад': bot.send_message(message.chat.id, 'Выберите раздел, чтобы вывести список блюд 👇🏻', reply_markup=keyboards.categories()) db.delete_empty_orders(message.chat.id) states.set_state(message.chat.id, States.S_MENU.value) elif message.text == '🏠 Начало': bot.send_message(message.chat.id, '🏠 Главное меню', reply_markup=keyboards.main_menu()) states.set_state(message.chat.id, States.S_MAIN_MENU.value) db.delete_empty_orders(message.chat.id) elif message.text == '📥 Корзина': bot.send_message(message.chat.id, messages.basket(message.chat.id), parse_mode='HTML', reply_markup=keyboards.basket()) elif not product.get_others_by_title(message.text)['title']: bot.send_message( message.chat.id, 'Неизвесное название продукта попробуйте другое!\n' 'Или попробуйте /start или /help')
def cmd_menu(message): bot.send_message(message.chat.id, 'Выберите раздел, чтобы вывести список блюд 👇🏻', reply_markup=keyboards.categories()) states.set_state(message.chat.id, States.S_MENU.value)
def add_to_basket(call): state = states.get_current_state(call.message.chat.id) if call.data == 'add_to_basket': bot.edit_message_reply_markup(call.message.chat.id, call.message.message_id, reply_markup=keyboards.chose_amount()) bot.answer_callback_query(call.id, 'Выберите количество') states.set_state(call.message.chat.id, States.S_CHOSE_AMOUNT.value) elif call.data == 'add_to_basket_pizza': bot.edit_message_reply_markup( call.message.chat.id, call.message.message_id, reply_markup=keyboards.chose_pizza_weight()) bot.answer_callback_query(call.id, 'Выберите вес ⬇') weights = product.get_pizza_weight_by_title( db.get_cache(call.message.chat.id)) bot.send_message(call.message.chat.id, 'Выберите вес ⬇', reply_markup=keyboards.pizza_weights(weights)) states.set_state(call.message.chat.id, States.S_CHOSE_PIZZA_WEIGHT.value) elif call.data == 'chose_weight': bot.answer_callback_query(call.id, 'Выберите вес') elif call.data == 'back_to_menu': bot.answer_callback_query(call.id, '⬅ Назад') bot.send_message(call.message.chat.id, 'Выберите раздел, чтобы вывести список блюд 👇🏻', reply_markup=keyboards.categories()) states.set_state(call.message.chat.id, States.S_MENU.value) elif call.data == 'back': bot.edit_message_reply_markup(call.message.chat.id, call.message.message_id, reply_markup=keyboards.add_to_basket()) bot.answer_callback_query(call.id, '⬅ Назад') bot.send_message(call.message.chat.id, 'Выберите раздел, чтобы вывести список блюд 👇🏻', reply_markup=keyboards.categories()) states.set_state(call.message.chat.id, States.S_MENU.value) db.delete_empty_orders(call.message.chat.id) elif call.data == 'chose_amount': bot.answer_callback_query(call.id, 'Выберите колличество') elif state == States.S_CHOSE_AMOUNT.value: title = db.get_cache(call.message.chat.id) if call.data == '1': sum = db.get_orders_by_chat_id_and_title(call.message.chat.id, title)[0][2] + 1 db.edit_order_amount(call.message.chat.id, title, sum) bot.edit_message_reply_markup( call.message.chat.id, call.message.message_id, reply_markup=keyboards.add_to_basket()) bot.answer_callback_query(call.id, '✅ Успешно добавлено в корзину') bot.send_message( call.message.chat.id, '✅ Успешно добавлено в корзину\n\n' 'Вы уже можете оформить ваш заказ, кликнув на кнопку "📥 Корзина"', reply_markup=keyboards.main_menu()) states.set_state(call.message.chat.id, States.S_MAIN_MENU.value) elif call.data == '2': sum = db.get_orders_by_chat_id_and_title(call.message.chat.id, title)[0][2] + 2 db.edit_order_amount(call.message.chat.id, title, sum) bot.edit_message_reply_markup( call.message.chat.id, call.message.message_id, reply_markup=keyboards.add_to_basket()) bot.answer_callback_query(call.id, '✅ Успешно добавлено в корзину') bot.send_message( call.message.chat.id, '✅ Успешно добавлено в корзину\n\n' 'Вы уже можете оформить ваш заказ, кликнув на кнопку "📥 Корзина"', reply_markup=keyboards.main_menu()) states.set_state(call.message.chat.id, States.S_MAIN_MENU.value) elif call.data == '3': sum = db.get_orders_by_chat_id_and_title(call.message.chat.id, title)[0][2] + 3 db.edit_order_amount(call.message.chat.id, title, sum) bot.edit_message_reply_markup( call.message.chat.id, call.message.message_id, reply_markup=keyboards.add_to_basket()) bot.answer_callback_query(call.id, '✅ Успешно добавлено в корзину') bot.send_message( call.message.chat.id, '✅ Успешно добавлено в корзину\n\n' 'Вы уже можете оформить ваш заказ, кликнув на кнопку "📥 Корзина"', reply_markup=keyboards.main_menu()) states.set_state(call.message.chat.id, States.S_MAIN_MENU.value) elif call.data == '4': sum = db.get_orders_by_chat_id_and_title(call.message.chat.id, title)[0][2] + 4 db.edit_order_amount(call.message.chat.id, title, sum) bot.edit_message_reply_markup( call.message.chat.id, call.message.message_id, reply_markup=keyboards.add_to_basket()) bot.answer_callback_query(call.id, '✅ Успешно добавлено в корзину') bot.send_message( call.message.chat.id, '✅ Успешно добавлено в корзину\n\n' 'Вы уже можете оформить ваш заказ, кликнув на кнопку "📥 Корзина"', reply_markup=keyboards.main_menu()) states.set_state(call.message.chat.id, States.S_MAIN_MENU.value) elif call.data == '5': sum = db.get_orders_by_chat_id_and_title(call.message.chat.id, title)[0][2] + 5 db.edit_order_amount(call.message.chat.id, title, sum) bot.edit_message_reply_markup( call.message.chat.id, call.message.message_id, reply_markup=keyboards.add_to_basket()) bot.answer_callback_query(call.id, '✅ Успешно добавлено в корзину') bot.send_message( call.message.chat.id, '✅ Успешно добавлено в корзину\n\n' 'Вы уже можете оформить ваш заказ, кликнув на кнопку "📥 Корзина"', reply_markup=keyboards.main_menu()) states.set_state(call.message.chat.id, States.S_MAIN_MENU.value) elif call.data == '6': sum = db.get_orders_by_chat_id_and_title(call.message.chat.id, title)[0][2] + 6 db.edit_order_amount(call.message.chat.id, title, sum) bot.edit_message_reply_markup( call.message.chat.id, call.message.message_id, reply_markup=keyboards.add_to_basket()) bot.answer_callback_query(call.id, '✅ Успешно добавлено в корзину') bot.send_message( call.message.chat.id, '✅ Успешно добавлено в корзину\n\n' 'Вы уже можете оформить ваш заказ, кликнув на кнопку "📥 Корзина"', reply_markup=keyboards.main_menu()) states.set_state(call.message.chat.id, States.S_MAIN_MENU.value) elif call.data == '7': sum = db.get_orders_by_chat_id_and_title(call.message.chat.id, title)[0][2] + 7 db.edit_order_amount(call.message.chat.id, title, sum) bot.edit_message_reply_markup( call.message.chat.id, call.message.message_id, reply_markup=keyboards.add_to_basket()) bot.answer_callback_query(call.id, '✅ Успешно добавлено в корзину') bot.send_message( call.message.chat.id, '✅ Успешно добавлено в корзину\n\n' 'Вы уже можете оформить ваш заказ, кликнув на кнопку "📥 Корзина"', reply_markup=keyboards.main_menu()) states.set_state(call.message.chat.id, States.S_MAIN_MENU.value) elif call.data == '8': sum = db.get_orders_by_chat_id_and_title(call.message.chat.id, title)[0][2] + 8 db.edit_order_amount(call.message.chat.id, title, sum) bot.edit_message_reply_markup( call.message.chat.id, call.message.message_id, reply_markup=keyboards.add_to_basket()) bot.answer_callback_query(call.id, '✅ Успешно добавлено в корзину') bot.send_message( call.message.chat.id, '✅ Успешно добавлено в корзину\n\n' 'Вы уже можете оформить ваш заказ, кликнув на кнопку "📥 Корзина"', reply_markup=keyboards.main_menu()) states.set_state(call.message.chat.id, States.S_MAIN_MENU.value) elif call.data == '9': sum = db.get_orders_by_chat_id_and_title(call.message.chat.id, title)[0][2] + 9 db.edit_order_amount(call.message.chat.id, title, sum) bot.edit_message_reply_markup( call.message.chat.id, call.message.message_id, reply_markup=keyboards.add_to_basket()) bot.answer_callback_query(call.id, '✅ Успешно добавлено в корзину') bot.send_message( call.message.chat.id, '✅ Успешно добавлено в корзину\n\n' 'Вы уже можете оформить ваш заказ, кликнув на кнопку "📥 Корзина"', reply_markup=keyboards.main_menu()) states.set_state(call.message.chat.id, States.S_MAIN_MENU.value) elif call.data == 'clear_basket': db.clear_basket(call.message.chat.id) bot.answer_callback_query(call.id, '✅ Корзина очищена') bot.send_message( call.message.chat.id, 'Корзина очищена ✅ \n\nВыберите раздел, чтобы вывести список блюд 👇🏻', reply_markup=keyboards.categories()) states.set_state(call.message.chat.id, States.S_MENU.value) elif call.data == 'reg_order': try: orders = db.get_orders_by_chat_id(call.message.chat.id) sum = 0 for o in orders: sum = sum + o[5] * o[2] except: sum = 0 if sum <= 0: bot.answer_callback_query(call.id, '❌ Не доступно') bot.send_message( call.message.chat.id, 'Минимальная сумма заказа должна быть больше чем 0 руб.') else: bot.answer_callback_query(call.id, '✅ Выберите вид доставки') bot.send_message( call.message.chat.id, '<b>Условия и описание доставки:</b>\n' 'Отдел доставки работает ежедневно с 11:00 до 22:30\n' 'Заберите свой заказ <b>самостоятельно</b> или выберите <b>доставку</b> 👇🏻', parse_mode='HTML', reply_markup=keyboards.check_delivery()) states.set_state(call.message.chat.id, States.S_DELIVERY.value) orders = db.get_orders_by_chat_id(call.message.chat.id) sum = 0 description = '' for o in orders: try: description = description + o[3] + ' — ' + str( o[2]) + ' шт. \n(' + o[7] + ') = ' + str( o[5] * o[2]) + ' руб.;' except: description = description + o[3] + ' — ' + str( o[2]) + ' шт. = ' + str(o[5] * o[2]) + ' руб.;' for o in orders: sum = sum + o[5] * o[2] db.add_reg_order(call.message.chat.id, description, sum) db.set_cache(call.message.chat.id, db.get_reg_orders(call.message.chat.id)[-1][0])