Пример #1
0
async def check_and_change_master_param(message: types.Message,
                                        state: FSMContext):
    async with state.proxy() as data:
        contact_name = data.get('contact_name')
        employee_id = data.get('employee_id')
        update_param = data.get('update_param')
    value = message.text
    if update_param == 'phone_number':
        default_number = message.text
        if not re.match(NUMBER_PATTERN, default_number):
            logger.info("Invalid number at get_employee handler")
            await message.answer(
                'Вы ввели номер телефона в неверном формате.\n'
                'Попробуйте ввести ещё раз!')
            raise CancelHandler()
        value = parse_number(default_number)
        if value.find("+") == -1:
            value = "+" + value
        await message.answer(
            f'Вы успешно изменили номер телефона {contact_name}',
            reply_markup=generate_start_keyboard(message))
    elif update_param == 'name':
        await message.answer(
            f'Вы успешно изменили имя мастера на {message.text}',
            reply_markup=generate_start_keyboard(message))
    else:
        await message.answer(
            f'Вы успешно изменили комментарий мастера на "{message.text}"',
            reply_markup=generate_start_keyboard(message))
    await manager.employee.update_entry(update_values={update_param: value},
                                        employee_id=employee_id)
    await StartState.in_general_menu.set()
Пример #2
0
async def get_employee(msg: types.Message, state: FSMContext):
    default_number = msg.text
    if not re.match(NUMBER_PATTERN, default_number):
        logger.info("Invalid number at get_employee handler")
        await msg.answer('Вы ввели номер телефона в неверном формате.\n'
                         'Попробуйте ввести ещё раз!')
        raise CancelHandler()
    number = parse_number(default_number)
    master = await manager.employee.select_master_by_phone(
        phone_number=number,
        default_number=default_number
    )
    if not isinstance(master, Record):
        await msg.answer('Такого мастера не найдено.\n'
                         'Можешь добавить его в базу, нажав на кнопку ниже', reply_markup=add_master_keyboard)
        await state.update_data(
            phone_number=default_number
        )
        await SearchMaster.add_master.set()
        raise CancelHandler()
    text = f"""Номер в базе данных: {master.get('employee_id')}
Имя: {master.get('name')}
Номер: {master.get('phone_number')}
Комментарий: {master.get('comment') if master.get('comment') is not None else '-'}\n"""
    await msg.answer(
        text=text,
        reply_markup=generate_start_keyboard(msg)
    )
    await StartState.in_general_menu.set()
Пример #3
0
async def handle_code(message: types.Message):
    answer = await check_promo(message)
    if not answer:
        raise CancelHandler()
    await message.answer(
        'Вы успешно зарегистрировались в боте используя код доступа',
        reply_markup=generate_start_keyboard(message))
    await StartState.in_general_menu.set()
Пример #4
0
async def add_new_master(call: types.CallbackQuery, state: FSMContext):
    async with state.proxy() as data:
        phone_number = data.get('phone_number')
        name = data.get('name')
        comment = data.get('comment')
        master_type = data.get('master_type')
        info = data.get('info')
    await manager.employee.add_entry(
        employee_type=master_type,
        type_of_employment=comment,
        name=name,
        phone_number=phone_number,
        comment=info
    )
    await call.message.answer('Успешно добавил нового сотрудника',
                              reply_markup=generate_start_keyboard(call))
    await state.reset_data()
    await StartState.in_general_menu.set()
Пример #5
0
async def start(message: types.Message):
    await message.answer(text='Вы в главном меню!',
                         reply_markup=generate_start_keyboard(message))
    await StartState.in_general_menu.set()
Пример #6
0
async def not_add_master(call: types.CallbackQuery, state: FSMContext):
    await state.reset_data()
    await StartState.in_general_menu.set()
    await call.message.answer('Вы успешно отменили добавление работника',
                              reply_markup=generate_start_keyboard(call))