Browse Source

Добавление заказа справки фнс

master
parent
commit
e90bc346ed
  1. 45
      BotPM.py

45
BotPM.py

@ -88,7 +88,8 @@ main_menu = InlineKeyboardMarkup(row_width=2).add(
InlineKeyboardButton("🌍 Контакты", callback_data="menu_contacts"), InlineKeyboardButton("🌍 Контакты", callback_data="menu_contacts"),
InlineKeyboardButton("📞 Связь", callback_data="menu_contact"), InlineKeyboardButton("📞 Связь", callback_data="menu_contact"),
InlineKeyboardButton("✅ Добавить пациента", callback_data="menu_registration"), 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() # Получаем все строки таблицы records = sheet.get_all_records() # Получаем все строки таблицы
patients = [] patients = []
for record in records: 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) patients.append(record)
return patients return patients
@ -753,24 +778,18 @@ patient_callback = CallbackData("patient", "index")
async def show_patients(message: types.Message): async def show_patients(message: types.Message):
telegram_id = message.from_user.id telegram_id = message.from_user.id
patients = find_patients_by_id(telegram_id) patients = find_patients_by_id(telegram_id)
print(patients)
if not patients: if not patients:
await message.answer("Пациенты с вашим Telegram ID не найдены.") await message.answer("Пациенты с вашим Telegram ID не найдены.")
return return
keyboard = InlineKeyboardMarkup(row_width=3) # Теперь 2 кнопки в строке # Формируем текстовый список пациентов
buttons = [ patient_list = "\n".join(
InlineKeyboardButton( [f"{index + 1}. {patient['ФИО']}" for index, patient in enumerate(patients)]
text=patient["ФИО"],
callback_data=patient_callback.new(index=index)
) )
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(): def authorize_google():

Loading…
Cancel
Save