async def adding_comment(message: types.Message, state: FSMContext): message.text = function.string_handler(message.text) await state.update_data(message=message.text) await UserMes.wait.set() await message.answer( config.message["comment_confirmation"].format(text=message.text), reply_markup=await buttons.getConfirmationKeyboard(cancel="Отменить"))
async def close_order_text(message: types.Message, state: FSMContext): message.text = function.string_handler(message.text) await state.update_data(text=message.text) await AdminPrMes.wait.set() await message.answer( config.message["comment_confirmation"].format(text=message.text), reply_markup=await buttons.getConfirmationKeyboard())
async def create_code_name(message: types.Message, state: FSMContext): message.text = function.string_handler(message.text) await state.update_data(name=message.text) await CodeAdd.wait.set() await message.answer( message.text + "\n" + config.adminMessage["code_add_confirmation"], reply_markup=await buttons.getConfirmationKeyboard(cancel="Отменить создание"))
async def message_add_mes(message: types.Message, state: FSMContext): message.text = function.string_handler(message.text) data = await state.get_data() mes = data.get("description") if "description" in data.keys() else "" await state.update_data(description=(mes + message.text + "\n")) await message.answer(config.adminMessage["mes_add"] + "\n" + config.adminMessage["message_send_confirmation"], reply_markup=await buttons.getConfirmationKeyboard())
async def edit_code_code(message: types.Message, state: FSMContext): message.text = function.string_handler(message.text) promoCodes = promoCodesModel.get_ALLPromoCode() if not (promoCodes and message.text in [promo.code for promo in promoCodes]): await state.update_data(code=message.text) await message.answer( message.text + "\n" + config.adminMessage["code_add_confirmation"], reply_markup=await buttons.getConfirmationKeyboard()) else: await message.answer("Такой промокод уже существует")
async def edit_code_name(message: types.Message, state: FSMContext): message.text = function.string_handler(message.text) departments = departmentModel.get_all_departments() if not (departments and message.text in [department.name for department in departments]): await state.update_data(name=message.text) await message.answer( message.text + "\n" + config.adminMessage["code_add_confirmation"], reply_markup=await buttons.getConfirmationKeyboard()) else: await message.answer("Отдел с таким именем уже существует", reply_markup=await buttons.getCustomKeyboard(cancel="Отменить"))
async def adding_comment(message: types.Message, state: FSMContext): message.text = function.string_handler(message.text) pattern = compile('(^|\s)[-a-z0-9_.]+@([-a-z0-9]+\.)+[a-z]{2,6}(\s|$)') if pattern.match(message.text): await state.update_data(email=message.text) await UserMes.wait.set() await message.answer( config.message["email_confirmation"].format(text=message.text), reply_markup=await buttons.getConfirmationKeyboard(cancel="Отменить")) else: await message.answer( config.message["comment_email_no_validation"].format( text=message.text), reply_markup=await buttons.getCustomKeyboard(cancel="Отменить"))
async def edit_code_code(message: types.Message, state: FSMContext): message.text = function.string_handler(message.text) departments = departmentModel.get_all_departments() if (not "@" in message.text and not "." in message.text and not "\"" in message.text ) and not (departments and message.text in [department.tag for department in departments]): await state.update_data(tag=message.text) await message.answer( message.text + "\n" + config.adminMessage["code_add_confirmation"], reply_markup=await buttons.getConfirmationKeyboard()) else: await message.answer( "Недопустимые символы (@ . \") или отдел с таким тэгом уже существует", reply_markup=await buttons.getCustomKeyboard(cancel="Отменить"))
async def adding_promoCode(message: types.Message, state: FSMContext): message.text = function.string_handler(message.text) code = promoCodesModel.get_promo_code(message.text) if code and code.limitation_use and code.count <= 0: await message.answer("Данный промокод закончился") elif code: await state.update_data(percent=code.percent, discount=code.discount, promoCode=code.code) await SellInfo.wait.set() await message.answer(config.message["promoCode_confirmation"].format( name=code.name, discount=str(code.discount) + ("%" if code.percent else " р.")), reply_markup=await buttons.getConfirmationKeyboard( cancel="Отменить заказ")) else: await message.answer(text=config.message["code_missing"] + "\n" + config.message["comment_confirmation_no"], reply_markup=await buttons.getCustomKeyboard(cancel="Отменить заказ" ))
async def start_edit_code(message: types.Message, state: FSMContext): mes = "В работе" tags = function.check_all_tag(message.text) staff = {} for tag in tags: tag_temporary = tag.split(".")[0] if "." in tag else tag department = departmentModel.get_department(tag_temporary) if department: try: staff_temporary = [department.staff[int(tag.split(".")[1]) - 1]] if "." in tag else department.staff if tag_temporary in staff.keys(): staff[tag_temporary] = sorted(staff[tag_temporary] + staff_temporary) else: staff[tag_temporary] = staff_temporary except: pass else: await message.answer(text=config.adminMessage["department_missing"]) return orderID = function.check_number(message.text) text = function.string_handler(function.check_text(message.text)) order = orderModel.get_order(orderID) if orderID is None or not order: await message.answer("Вы не указали номер заказа или указали на несуществующий заказ") return elif not order.active: await message.answer("Заказ уже закрыт") return elif not staff: await message.answer("Вы неверно указали сотрудников") return for departmentTag in staff: for userID in staff[departmentTag]: tasksModel.del_task_duplicate(userID, departmentTag, orderID) tasksCompletesModel.del_task_duplicate(userID, departmentTag, orderID) await bot.send_message(chat_id=userID, text=config.adminMessage["new_task_staff"]) tasksModel.create_task(orderID, staff[departmentTag], departmentTag, text) await message.answer(mes)
async def close_order_text(message: types.Message, state: FSMContext): message.text = function.string_handler(message.text) await state.update_data(text=message.text) await AdminCloseOrderPr.wait.set() await message.answer(config.adminMessage["order_close_confirm"], reply_markup=await buttons.getConfirmationKeyboard())
async def edit_code_name(message: types.Message, state: FSMContext): message.text = function.string_handler(message.text) await state.update_data(name=message.text) await message.answer(message.text + "\n" + config.adminMessage["code_add_confirmation"], reply_markup=await buttons.getConfirmationKeyboard())