Добавление заказа справки фнс
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_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 в строке
|
await message.answer(f"Вот список ваших пациентов:\n\n{patient_list}")
|
||||||
keyboard.add(*buttons)
|
|
||||||
|
|
||||||
await message.answer("Выберите пациента:", reply_markup=keyboard)
|
|
||||||
|
|
||||||
|
|
||||||
def authorize_google():
|
def authorize_google():
|
||||||
|
|||||||
Reference in New Issue
Block a user