Добавление заказа справки фнс
This commit is contained in:
@@ -88,7 +88,8 @@ main_menu = InlineKeyboardMarkup(row_width=2).add(
|
||||
InlineKeyboardButton("🌍 Контакты", callback_data="menu_contacts"),
|
||||
InlineKeyboardButton("📞 Связь", callback_data="menu_contact"),
|
||||
InlineKeyboardButton("✅ Добавить пациента", callback_data="menu_registration"),
|
||||
InlineKeyboardButton("🏥 О Клинике", callback_data="o_klinike")
|
||||
InlineKeyboardButton("🏥 О Клинике", callback_data="o_klinike"),
|
||||
InlineKeyboardButton("📑 Заказать справку для налоговой", callback_data="fns_spravka")
|
||||
)
|
||||
|
||||
# Подменю "контакты"
|
||||
@@ -201,6 +202,30 @@ async def handle_main_menu(call: types.CallbackQuery):
|
||||
|
||||
|
||||
|
||||
@dp.callback_query_handler(lambda c: c.data == "fns_spravka")
|
||||
async def show_patient_list(call: types.CallbackQuery):
|
||||
user_id = call.from_user.id
|
||||
form_url = f"https://tgbotpolimed.pirogov.ai/?user_id={user_id}"
|
||||
form_url_fns = f"https://tgbotpolimed.pirogov.ai/fns?user_id={user_id}"
|
||||
telegram_id = call.from_user.id
|
||||
patients = find_patients_by_id(telegram_id)
|
||||
|
||||
if not patients:
|
||||
await call.message.edit_text("Пациенты с вашим Telegram ID не найдены.")
|
||||
return
|
||||
|
||||
patient_list = "\n".join(
|
||||
[f"{i + 1}. {patient['ФИО']}" for i, patient in enumerate(patients)]
|
||||
)
|
||||
|
||||
await call.message.edit_text(f'Если пациент присутствует в списке, то для оформления налогового вычета за медицинские услуги, предоставленные в Клинике, пожалуйста, заполните форму ниже, нажав на кнопку "Заказать справку".\n\n'
|
||||
f'☝🏼Если пациента нет в списке зарегистрированных, пожалуйста, добавьте его через Telegram, нажав на кнопку ниже "Добавить пациента".\n\n'
|
||||
f"<b>Список зарегистрированных пациентов:</b>\n\n{patient_list}\n\n",
|
||||
reply_markup=InlineKeyboardMarkup(row_width=1).add(InlineKeyboardButton(text="Заказать справку", web_app=WebAppInfo(url=form_url_fns)),
|
||||
InlineKeyboardButton(text="Добавить пациента", web_app=WebAppInfo(url=form_url)),
|
||||
InlineKeyboardButton("▶️ Назад", callback_data="main_menu")),parse_mode="HTML")
|
||||
|
||||
|
||||
|
||||
|
||||
# Обработка нажатия на "Запись на исследование"
|
||||
@@ -591,7 +616,7 @@ def find_patients_by_id(telegram_id):
|
||||
records = sheet.get_all_records() # Получаем все строки таблицы
|
||||
patients = []
|
||||
for record in records:
|
||||
if str(record["Telegram ID"]) == str(telegram_id):
|
||||
if str(record["Telegram ID"]) == str(telegram_id) and str(record["Верификация"]) == "Пройдена":
|
||||
patients.append(record)
|
||||
return patients
|
||||
|
||||
@@ -753,24 +778,18 @@ patient_callback = CallbackData("patient", "index")
|
||||
async def show_patients(message: types.Message):
|
||||
telegram_id = message.from_user.id
|
||||
patients = find_patients_by_id(telegram_id)
|
||||
print(patients)
|
||||
|
||||
if not patients:
|
||||
await message.answer("Пациенты с вашим Telegram ID не найдены.")
|
||||
return
|
||||
|
||||
keyboard = InlineKeyboardMarkup(row_width=3) # Теперь 2 кнопки в строке
|
||||
buttons = [
|
||||
InlineKeyboardButton(
|
||||
text=patient["ФИО"],
|
||||
callback_data=patient_callback.new(index=index)
|
||||
)
|
||||
for index, patient in enumerate(patients)
|
||||
]
|
||||
# Формируем текстовый список пациентов
|
||||
patient_list = "\n".join(
|
||||
[f"{index + 1}. {patient['ФИО']}" for index, patient in enumerate(patients)]
|
||||
)
|
||||
|
||||
# Добавляем кнопки в клавиатуру по 2 в строке
|
||||
keyboard.add(*buttons)
|
||||
|
||||
await message.answer("Выберите пациента:", reply_markup=keyboard)
|
||||
await message.answer(f"Вот список ваших пациентов:\n\n{patient_list}")
|
||||
|
||||
|
||||
def authorize_google():
|
||||
|
||||
Reference in New Issue
Block a user