Справка ФНС для всех пациентов
This commit is contained in:
@@ -217,6 +217,39 @@ def send_registration_request():
|
|||||||
@webApp.route('/request_patient', methods=['POST'])
|
@webApp.route('/request_patient', methods=['POST'])
|
||||||
def request_patient_information():
|
def request_patient_information():
|
||||||
try:
|
try:
|
||||||
|
# return {
|
||||||
|
# "fio": "Чистогов Илья Дмитриевич",
|
||||||
|
# "formatted_birthdate": "24.09.2003",
|
||||||
|
# "js_formatted_passport_date": "2016-09-25",
|
||||||
|
# "js_formatted_birthdate": "2003-09-24",
|
||||||
|
# "pct_doc_ser": "1234",
|
||||||
|
# "pct_doc_nom": "123456",
|
||||||
|
# "pct_doc_org_kod": "590-003",
|
||||||
|
# "pct_doc_org_name": "ГУ МВД РОССИИ ПО ПЕРМСКОМУ КРАЮ",
|
||||||
|
# "pct_email": "1@1.ru",
|
||||||
|
# "pct_inn": "123123123123",
|
||||||
|
# "taxpayer_status_zapros": "Отец",
|
||||||
|
# "pct_doc_ind": "1",
|
||||||
|
# "server_data": {
|
||||||
|
# "pct_birthday": "2003-09-24T00:00:00.000Z",
|
||||||
|
# "pct_doc_date": "",
|
||||||
|
# "pct_doc_ind": "",
|
||||||
|
# "pct_doc_nom": "",
|
||||||
|
# "pct_doc_org_kod": "",
|
||||||
|
# "pct_doc_org_name": "",
|
||||||
|
# "pct_doc_ser": "",
|
||||||
|
# "pct_doc_type": "",
|
||||||
|
# "pct_email": "",
|
||||||
|
# "pct_first_name": "Илья",
|
||||||
|
# "pct_inn": "",
|
||||||
|
# "pct_last_name": "Чистогов",
|
||||||
|
# "pct_second_name": "Дмитриевич",
|
||||||
|
# "result": "OK",
|
||||||
|
# "status_code": 200
|
||||||
|
# },
|
||||||
|
# "success": True,
|
||||||
|
# "user_id": "766945900"
|
||||||
|
# }
|
||||||
|
|
||||||
|
|
||||||
data = request.get_json()
|
data = request.get_json()
|
||||||
@@ -247,7 +280,7 @@ def request_patient_information():
|
|||||||
}
|
}
|
||||||
print(payload)
|
print(payload)
|
||||||
headers = {"User-Agent": "Mozilla/5.0", "Content-Type": "application/json"}
|
headers = {"User-Agent": "Mozilla/5.0", "Content-Type": "application/json"}
|
||||||
url = "http://192.168.1.10:8081/AppZaprSvedPac"
|
url = "http://192.168.1.10:8080/AppZaprSvedPac"
|
||||||
response = requests.post(url, json=payload, headers=headers)
|
response = requests.post(url, json=payload, headers=headers)
|
||||||
|
|
||||||
if response.status_code == 200:
|
if response.status_code == 200:
|
||||||
@@ -375,7 +408,7 @@ def sending_patient_data():
|
|||||||
#Успешный ответ
|
#Успешный ответ
|
||||||
HEADER1 = {"User-Agent": "Mozilla/5.0", "Content-Type": "application/json"}
|
HEADER1 = {"User-Agent": "Mozilla/5.0", "Content-Type": "application/json"}
|
||||||
try:
|
try:
|
||||||
response = requests.post("http://192.168.1.10:8081/AppSaveSvedPac", headers=HEADER1, json=data1, timeout=5)
|
response = requests.post("http://192.168.1.10:8080/AppSaveSvedPac", headers=HEADER1, json=data1, timeout=5)
|
||||||
print("Ответ сервера:", response.text) # вдруг сервер всё же что-то вернёт
|
print("Ответ сервера:", response.text) # вдруг сервер всё же что-то вернёт
|
||||||
if response.status_code == 200:
|
if response.status_code == 200:
|
||||||
return jsonify({'success': True})
|
return jsonify({'success': True})
|
||||||
@@ -396,6 +429,291 @@ def sending_patient_data():
|
|||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
@webApp.route('/request_patient2', methods=['POST'])
|
||||||
|
def request_patient2():
|
||||||
|
try:
|
||||||
|
# return {
|
||||||
|
# "fio": "Чистогов Илья Дмитриевич",
|
||||||
|
# "formatted_birthdate": "24.09.2003",
|
||||||
|
# "js_formatted_passport_date": "2016-09-25",
|
||||||
|
# "js_formatted_birthdate": "2003-09-24",
|
||||||
|
# "pct_doc_ser": "1234",
|
||||||
|
# "pct_doc_nom": "123456",
|
||||||
|
# "pct_doc_org_kod": "590-003",
|
||||||
|
# "pct_doc_org_name": "ГУ МВД РОССИИ ПО ПЕРМСКОМУ КРАЮ",
|
||||||
|
# "pct_email": "1@1.ru",
|
||||||
|
# "pct_inn": "123123123123",
|
||||||
|
# "taxpayer_status_zapros": "Отец",
|
||||||
|
# "pct_doc_ind": "1",
|
||||||
|
# "server_data": {
|
||||||
|
# "pct_birthday": "2003-09-24T00:00:00.000Z",
|
||||||
|
# "pct_doc_date": "",
|
||||||
|
# "pct_doc_ind": "",
|
||||||
|
# "pct_doc_nom": "",
|
||||||
|
# "pct_doc_org_kod": "",
|
||||||
|
# "pct_doc_org_name": "",
|
||||||
|
# "pct_doc_ser": "",
|
||||||
|
# "pct_doc_type": "",
|
||||||
|
# "pct_email": "",
|
||||||
|
# "pct_first_name": "Илья",
|
||||||
|
# "pct_inn": "",
|
||||||
|
# "pct_last_name": "Чистогов",
|
||||||
|
# "pct_second_name": "Дмитриевич",
|
||||||
|
# "result": "OK",
|
||||||
|
# "status_code": 200
|
||||||
|
# },
|
||||||
|
# "success": True,
|
||||||
|
# "user_id": "766945900"
|
||||||
|
# }
|
||||||
|
|
||||||
|
|
||||||
|
data = request.get_json()
|
||||||
|
print(data)
|
||||||
|
user_id = data.get('user_id')
|
||||||
|
taxpayer_status_zapros = data.get('taxpayer_status')
|
||||||
|
patient_fio = data.get('patient_fio')
|
||||||
|
|
||||||
|
sheet = authorize_google().open("Пациенты клиники").sheet1
|
||||||
|
records = sheet.get_all_values()
|
||||||
|
|
||||||
|
# Получаем список всех людей с таким user_id
|
||||||
|
birthday_users = [datetime.strptime(row[2], "%Y-%m-%d").strftime("%Y-%m-%dT00:00:00.000Z") for row in records[1:] if row[0] == patient_fio]
|
||||||
|
print(birthday_users)
|
||||||
|
|
||||||
|
|
||||||
|
payload = {
|
||||||
|
"telegram_id": int(user_id),
|
||||||
|
"first_name": patient_fio.split()[1] if len(patient_fio.split()) > 1 else "",
|
||||||
|
"second_name": patient_fio.split()[2] if len(patient_fio.split()) > 2 else "",
|
||||||
|
"last_name": patient_fio.split()[0],
|
||||||
|
"pac_poluchat": "False",
|
||||||
|
"poluchat_status": data.get('taxpayer_status'),
|
||||||
|
"birthday": birthday_users[0] if birthday_users else None
|
||||||
|
}
|
||||||
|
print(payload)
|
||||||
|
headers = {"User-Agent": "Mozilla/5.0", "Content-Type": "application/json"}
|
||||||
|
url = "http://192.168.1.10:8081/AppZaprSvedPac"
|
||||||
|
response = requests.post(url, json=payload, headers=headers)
|
||||||
|
|
||||||
|
if response.status_code == 200:
|
||||||
|
print("Ответ:", response.text)
|
||||||
|
result = response.json
|
||||||
|
print(result)
|
||||||
|
try:
|
||||||
|
result = response.json()
|
||||||
|
except:
|
||||||
|
result = {}
|
||||||
|
|
||||||
|
js_formatted_birthdate = (
|
||||||
|
datetime.strptime(result.get("pct_birthday", ""), "%Y-%m-%dT%H:%M:%S.%fZ").strftime("%Y-%m-%d")
|
||||||
|
if result.get("pct_birthday") else "")
|
||||||
|
|
||||||
|
js_formatted_birthdate_plc = (
|
||||||
|
datetime.strptime(result.get("plc_birthday", ""), "%Y-%m-%dT%H:%M:%S.%fZ").strftime("%Y-%m-%d")
|
||||||
|
if result.get("plc_birthday") else "")
|
||||||
|
|
||||||
|
js_formatted_passport_date = (
|
||||||
|
datetime.strptime(result.get("pct_doc_date", ""), "%Y-%m-%dT%H:%M:%S.%fZ").strftime("%Y-%m-%d")
|
||||||
|
if result.get("pct_doc_date") else "")
|
||||||
|
|
||||||
|
js_formatted_passport_date_plc = (
|
||||||
|
datetime.strptime(result.get("plc_doc_date", ""), "%Y-%m-%dT%H:%M:%S.%fZ").strftime("%Y-%m-%d")
|
||||||
|
if result.get("plc_doc_date") else "")
|
||||||
|
|
||||||
|
return jsonify(
|
||||||
|
user_id=user_id,
|
||||||
|
taxpayer_status_zapros=taxpayer_status_zapros,
|
||||||
|
fio=patient_fio,
|
||||||
|
server_data=result,
|
||||||
|
js_formatted_birthdate=js_formatted_birthdate,
|
||||||
|
js_formatted_passport_date=js_formatted_passport_date,
|
||||||
|
pct_doc_ser=result.get('pct_doc_ser', ''),
|
||||||
|
pct_doc_nom=result.get('pct_doc_nom', ''),
|
||||||
|
pct_inn=result.get('pct_inn', ''),
|
||||||
|
pct_doc_type=result.get('pct_doc_type', ''),
|
||||||
|
pct_doc_ind=result.get('pct_doc_ind', ''),
|
||||||
|
pct_email=result.get('pct_email', ''),
|
||||||
|
pct_doc_org_kod=result.get('pct_doc_org_kod', ''),
|
||||||
|
pct_doc_org_name=result.get('pct_doc_org_name', ''),
|
||||||
|
plc_status=result.get('plc_status', ''),
|
||||||
|
plc_fio=result.get('plc_fio', ''),
|
||||||
|
js_formatted_birthdate_plc=js_formatted_birthdate_plc,
|
||||||
|
plc_inn=result.get('plc_inn', ''),
|
||||||
|
plc_doc_type=result.get('plc_doc_type', ''),
|
||||||
|
plc_doc_ind=result.get('plc_doc_ind', ''),
|
||||||
|
plc_doc_ser=result.get('plc_doc_ser', ''),
|
||||||
|
plc_doc_nom=result.get('plc_doc_nom', ''),
|
||||||
|
js_formatted_passport_date_plc=js_formatted_passport_date_plc,
|
||||||
|
plc_doc_org_name=result.get('plc_doc_org_name', ''),
|
||||||
|
plc_doc_org_kod=result.get('plc_doc_org_kod', ''),
|
||||||
|
success = True
|
||||||
|
)
|
||||||
|
else:
|
||||||
|
return f"Ошибка: {response.status_code} - {response.text}", 500
|
||||||
|
except Exception as e:
|
||||||
|
return f"Произошла ошибка: {e}", 500
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
@webApp.route('/sending_patient2', methods=['POST'])
|
||||||
|
def send_registration_request2():
|
||||||
|
try:
|
||||||
|
raw_data = json.loads(request.data)
|
||||||
|
|
||||||
|
print("Полученные данные:", raw_data)
|
||||||
|
|
||||||
|
# Разделение ФИО
|
||||||
|
fio = raw_data.get("patient_fio", "")
|
||||||
|
parts = fio.split(" ")
|
||||||
|
if len(parts) < 3:
|
||||||
|
return jsonify({'success': False, "error": "ФИО должно содержать 3 слова"}), 400
|
||||||
|
|
||||||
|
pct_last_name = parts[0]
|
||||||
|
pct_first_name = parts[1]
|
||||||
|
pct_second_name = " ".join(parts[2:])
|
||||||
|
|
||||||
|
# Обработка даты рождения
|
||||||
|
dob = raw_data.get("dob1", "")
|
||||||
|
pct_birthday = ""
|
||||||
|
if dob:
|
||||||
|
date_obj = datetime.strptime(dob, "%Y-%m-%d")
|
||||||
|
pct_birthday = date_obj.strftime("%Y-%m-%dT00:00:00.000Z")
|
||||||
|
|
||||||
|
# Определение документа
|
||||||
|
if raw_data.get("passport1") and raw_data.get("passport_date1") and raw_data.get(
|
||||||
|
"postal_code1") and raw_data.get("passport_issued_by1"):
|
||||||
|
pct_doc_type = "Паспорт"
|
||||||
|
pct_doc_ind = 1
|
||||||
|
passport = raw_data.get("passport1", "")
|
||||||
|
parts = passport.split(" ")
|
||||||
|
pct_doc_ser = parts[0]
|
||||||
|
pct_doc_nom = parts[1]
|
||||||
|
formatted_date = raw_data.get("passport_date1", "")
|
||||||
|
date_obj = datetime.strptime(formatted_date, "%Y-%m-%d")
|
||||||
|
pct_doc_date = date_obj.strftime("%Y-%m-%dT00:00:00.000Z")
|
||||||
|
pct_doc_org_name = raw_data.get("passport_issued_by1", "")
|
||||||
|
pct_doc_org_kod = raw_data.get("postal_code1", "")
|
||||||
|
|
||||||
|
elif raw_data.get("svedetelstvo") and raw_data.get("svedetelstvo_date") and raw_data.get(
|
||||||
|
"svedetelstvo_issued_by"):
|
||||||
|
pct_doc_type = "Свидетельство о рождении"
|
||||||
|
pct_doc_ind = 2
|
||||||
|
pct_doc_ser, pct_doc_nom = raw_data.get("svedetelstvo", "").split(" ")
|
||||||
|
formatted_date = raw_data.get("svedetelstvo_date", "")
|
||||||
|
date_obj = datetime.strptime(formatted_date, "%Y-%m-%d")
|
||||||
|
pct_doc_date = date_obj.strftime("%Y-%m-%dT00:00:00.000Z")
|
||||||
|
pct_doc_org_name = raw_data.get("svedetelstvo_issued_by", "")
|
||||||
|
pct_doc_org_kod = ""
|
||||||
|
else:
|
||||||
|
return jsonify({'success': False, "error": "Недостаточно данных для определения документа"}), 400
|
||||||
|
|
||||||
|
# Данные родителей
|
||||||
|
plc_fio = raw_data.get("fional", "")
|
||||||
|
plc_status = raw_data.get("taxpayer_status_zapros", "")
|
||||||
|
dob_parent = raw_data.get("dobnal", "")
|
||||||
|
plc_birthday = ""
|
||||||
|
if dob_parent:
|
||||||
|
date_obj = datetime.strptime(dob_parent, "%Y-%m-%d")
|
||||||
|
plc_birthday = date_obj.strftime("%Y-%m-%dT00:00:00.000Z")
|
||||||
|
|
||||||
|
plc_doc_ser, plc_doc_nom = raw_data.get("passportnal", "").split(" ")
|
||||||
|
formatted_date = raw_data.get("passport_datenal", "")
|
||||||
|
date_obj = datetime.strptime(formatted_date, "%Y-%m-%d")
|
||||||
|
plc_doc_date = date_obj.strftime("%Y-%m-%dT00:00:00.000Z")
|
||||||
|
plc_doc_org_name = raw_data.get("passport_issued_bynal", "")
|
||||||
|
plc_doc_org_kod = raw_data.get("postal_codenal", "")
|
||||||
|
plc_inn = raw_data.get("innnal", "")
|
||||||
|
|
||||||
|
user_id = raw_data.get('user_id')
|
||||||
|
inn1=raw_data.get("inn1", "")
|
||||||
|
email1=raw_data.get("email1", "")
|
||||||
|
# Извлекаем годы
|
||||||
|
selected_years = raw_data.get('selected_years', [])
|
||||||
|
|
||||||
|
if selected_years:
|
||||||
|
# Преобразуем элементы в целые числа
|
||||||
|
selected_years = list(map(int, selected_years))
|
||||||
|
|
||||||
|
# Находим минимальный и максимальный год
|
||||||
|
year_beg_spr1 = min(selected_years)
|
||||||
|
year_end_spr2 = max(selected_years)
|
||||||
|
|
||||||
|
# Если выбран только один год, то обе переменные будут одинаковыми
|
||||||
|
if year_beg_spr1 == year_end_spr2:
|
||||||
|
year_end_spr2 = year_beg_spr1
|
||||||
|
|
||||||
|
# Теперь у нас есть year_beg_spr и year_end_spr
|
||||||
|
print("Минимальный год:", year_beg_spr1)
|
||||||
|
print("Максимальный год:", year_end_spr2)
|
||||||
|
|
||||||
|
# Формируем данные
|
||||||
|
data2 = {
|
||||||
|
"telegram_id": int(user_id),
|
||||||
|
"pct_last_name": pct_last_name,
|
||||||
|
"pct_first_name": pct_first_name,
|
||||||
|
"pct_second_name": pct_second_name,
|
||||||
|
"pct_birthday": pct_birthday,
|
||||||
|
"pct_inn": inn1,
|
||||||
|
"pct_doc_type": pct_doc_type,
|
||||||
|
"pct_doc_ind": pct_doc_ind,
|
||||||
|
"pct_doc_ser": pct_doc_ser,
|
||||||
|
"pct_doc_nom": pct_doc_nom,
|
||||||
|
"pct_doc_date": pct_doc_date,
|
||||||
|
"pct_doc_org_name": pct_doc_org_name,
|
||||||
|
"pct_doc_org_kod": pct_doc_org_kod,
|
||||||
|
"pac_poluchat": "False",
|
||||||
|
"pct_email": email1,
|
||||||
|
"plc_status": plc_status,
|
||||||
|
"plc_fio": plc_fio,
|
||||||
|
"plc_birthday": plc_birthday,
|
||||||
|
"plc_inn": plc_inn,
|
||||||
|
"plc_doc_type": "Паспорт",
|
||||||
|
"plc_doc_ind": 1,
|
||||||
|
"plc_doc_ser": plc_doc_ser,
|
||||||
|
"plc_doc_nom": plc_doc_nom,
|
||||||
|
"plc_doc_date": plc_doc_date,
|
||||||
|
"plc_doc_org_name": "ГУ МВД РОССИИ ПО ПЕРМСКОМУ КРАЮ",
|
||||||
|
"plc_doc_org_kod": plc_doc_org_kod,
|
||||||
|
"year_beg_spr": year_beg_spr1,
|
||||||
|
"year_end_spr": year_end_spr2
|
||||||
|
}
|
||||||
|
|
||||||
|
# print("Отправляемые данные:", data2)
|
||||||
|
# return jsonify({'success': True, 'data': data2})
|
||||||
|
# except Exception as e:
|
||||||
|
# return jsonify({'success': False, 'error': str(e)}), 500
|
||||||
|
|
||||||
|
|
||||||
|
print("Отправляемые данные:", data2)
|
||||||
|
|
||||||
|
# Успешный ответ
|
||||||
|
HEADER2 = {"User-Agent": "Mozilla/5.0", "Content-Type": "application/json"}
|
||||||
|
try:
|
||||||
|
response = requests.post("http://192.168.1.10:8081/AppSaveSvedPac", headers=HEADER2, json=data2, timeout=5)
|
||||||
|
print("Ответ сервера:", response.text) # вдруг сервер всё же что-то вернёт
|
||||||
|
if response.status_code == 200:
|
||||||
|
return jsonify({'success': True})
|
||||||
|
else:
|
||||||
|
return jsonify({'success': False, 'error': f'Сервер вернул статус {response.status_code}'}), 500
|
||||||
|
|
||||||
|
except requests.exceptions.RequestException as e:
|
||||||
|
return jsonify({'success': False, 'error': f'Ошибка соединения: {str(e)}'}), 500
|
||||||
|
|
||||||
|
except Exception as e:
|
||||||
|
print(f"Ошибка: {e}")
|
||||||
|
return jsonify({'success': False, 'error': str(e)}), 500
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
@webApp.route('/')
|
@webApp.route('/')
|
||||||
def main_page_2_0():
|
def main_page_2_0():
|
||||||
return render_template('2.0/main_page.pug', user_id=request.args.get('user_id', None))
|
return render_template('2.0/main_page.pug', user_id=request.args.get('user_id', None))
|
||||||
@@ -424,3 +742,30 @@ def main_page_2_0_fns():
|
|||||||
return render_template('2.0/main_page_fns.pug', user_id=user_id, users=matching_users)
|
return render_template('2.0/main_page_fns.pug', user_id=user_id, users=matching_users)
|
||||||
except Exception as e:
|
except Exception as e:
|
||||||
return f"Произошла ошибка: {e}", 500
|
return f"Произошла ошибка: {e}", 500
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
@webApp.route('/fnstest')
|
||||||
|
def main_page_2_0_fns_test():
|
||||||
|
try:
|
||||||
|
user_id = request.args.get('user_id')
|
||||||
|
if not user_id:
|
||||||
|
return "Ошибка: не передан user_id", 400
|
||||||
|
|
||||||
|
sheet = authorize_google().open("Пациенты клиники").sheet1
|
||||||
|
records = sheet.get_all_values()
|
||||||
|
|
||||||
|
# Получаем список всех людей с таким user_id
|
||||||
|
matching_users = [row[0] for row in records[1:] if row[3] == user_id]
|
||||||
|
matching_users = sum(matching_users, []) if any(isinstance(i, list) for i in matching_users) else matching_users
|
||||||
|
|
||||||
|
print(matching_users)
|
||||||
|
|
||||||
|
if not matching_users:
|
||||||
|
return "Ошибка: пользователь не найден", 404
|
||||||
|
|
||||||
|
return render_template('2.0/main_page_fns2.pug', user_id=user_id, users=matching_users)
|
||||||
|
except Exception as e:
|
||||||
|
return f"Произошла ошибка: {e}", 500
|
||||||
@@ -60,5 +60,3 @@ script(type="text/javascript", src="/js/2.0.dashboard.js?q="~randomString())
|
|||||||
h3="Отлично!"
|
h3="Отлично!"
|
||||||
p="Регистрация завершена. Перейдите в Telegram, чтобы продолжить."
|
p="Регистрация завершена. Перейдите в Telegram, чтобы продолжить."
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -0,0 +1,272 @@
|
|||||||
|
include 2.0/application
|
||||||
|
|
||||||
|
<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/choices.js/public/assets/styles/choices.min.css">
|
||||||
|
<script src="https://cdn.jsdelivr.net/npm/choices.js/public/assets/scripts/choices.min.js"></script>
|
||||||
|
|
||||||
|
link(rel="stylesheet" href="/css/1_model_app.css?q="~randomString())
|
||||||
|
link(rel="stylesheet" href="/css/1_model_icons.css?q="~randomString())
|
||||||
|
script(type="text/javascript", src="/js/UFMS.js?q="~randomString())
|
||||||
|
script(type="text/javascript", src="/js/2.0.dashboard.test_fns.js?q="~randomString())
|
||||||
|
|
||||||
|
.enterblock.custom-font.py-5
|
||||||
|
.row.mx-auto(style='max-width: 448px; vertical-align: middle; padding-bottom: 120%;')
|
||||||
|
.col-12.my-md-auto.p-0.card.shadow.rounded-3(style='min-height: 500px;')
|
||||||
|
.card-body.px-0.pb-0
|
||||||
|
h5.mx-4.fw-bold Заказать справку ФНС
|
||||||
|
input.tg_input#user_id(type="hidden", value=user_id)
|
||||||
|
|
||||||
|
|
||||||
|
.my-3.mx-4.success-field.primary-field
|
||||||
|
label.form-label.m-0(for="patient_fio") <strong>Выберите пациента</strong>
|
||||||
|
select.form-control.tg_input#patient_fio(name="patient_fio" required)
|
||||||
|
option(value="") Выберите пациента
|
||||||
|
each user in users
|
||||||
|
option(value=user) #{user}
|
||||||
|
|
||||||
|
.my-3.mx-4.success-field.primary-field
|
||||||
|
label.form-label.m-0(for="taxpayer_status") <strong>Являюсь налогоплательщиком как</strong>
|
||||||
|
select.form-select.tg_input#taxpayer_status
|
||||||
|
option(disabled, selected)='Выберите статус'
|
||||||
|
small="(Пожалуйста, выберите подходящий вариант)"
|
||||||
|
|
||||||
|
.my-3.mx-4.primary-field
|
||||||
|
button.btn.btn-success.float-end.mb-3#form_submit(type="submit")
|
||||||
|
span.spinner-border.spinner-border-sm.me-1.d-none(role="status" aria-hidden="true")
|
||||||
|
span Отправить
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
.my-3.mx-4.success-field.verification(style="display: none;")
|
||||||
|
label.form-label.m-0(for="fio") <strong>Фамилия Имя Отчество</strong>
|
||||||
|
input.form-control.tg_input#fio(type="text" name="fio")
|
||||||
|
small="(Пожалуйста, проверьте правильность данных)"
|
||||||
|
|
||||||
|
.my-3.mx-4.success-field.verification(style="display: none;")
|
||||||
|
label.form-label.m-0(for="birthdate") <strong>Дата рождения</strong>
|
||||||
|
input.form-control.tg_input#dob(type="date")
|
||||||
|
small="(Пожалуйста, проверьте правильность данных)"
|
||||||
|
|
||||||
|
.my-3.mx-4.success-field.verification(style="display: none;")
|
||||||
|
label.form-label.m-0(for="passport") <strong>Серия и номер паспорта</strong>
|
||||||
|
input.form-control.tg_input#passport
|
||||||
|
small="(Пожалуйста, проверьте правильность данных)"
|
||||||
|
|
||||||
|
.my-3.mx-4.success-field.verification(style="display: none;")
|
||||||
|
label.form-label.m-0(for="passport_date") <strong>Дата выдачи паспорта</strong>
|
||||||
|
input.form-control.tg_input#passport_date(type="date")
|
||||||
|
small="(Пожалуйста, проверьте правильность данных)"
|
||||||
|
|
||||||
|
|
||||||
|
.my-3.mx-4.success-field.verification(style="display: none;")
|
||||||
|
label.form-label.m-0(for="postal_code") <strong>Код подразделения</strong>
|
||||||
|
input.form-control.tg_input#postal_code
|
||||||
|
small="(Пожалуйста, проверьте правильность данных)"
|
||||||
|
|
||||||
|
|
||||||
|
.my-3.mx-4.success-field.verification(style="display: none;")
|
||||||
|
label.form-label.m-0(for="passport_issued_by") <strong>Кем выдан паспорт</strong>
|
||||||
|
select.form-select.tg_input#passport_issued_by(style="")
|
||||||
|
option(disabled, selected)="Кем выдан паспорт"
|
||||||
|
small="(Пожалуйста, проверьте правильность данных)"
|
||||||
|
|
||||||
|
|
||||||
|
.my-3.mx-4.success-field.verification(style="display: none;")
|
||||||
|
label.form-label.m-0(for="inn") <strong>ИНН</strong>
|
||||||
|
input.form-control.tg_input#inn(type="text" name="#inn")
|
||||||
|
small="(Пожалуйста, проверьте правильность данных)"
|
||||||
|
|
||||||
|
|
||||||
|
.my-3.mx-4.success-field.verification(style="display: none;")
|
||||||
|
label.form-label.m-0(for="email") <strong>Электронная почта</strong>
|
||||||
|
input.form-control.tg_input#email(type="text" name="email" value=pct_email)
|
||||||
|
small="(Пожалуйста, проверьте правильность данных)"
|
||||||
|
|
||||||
|
|
||||||
|
.my-3.mx-4.success-field.verification(style="display: none;")
|
||||||
|
label.form-label.m-0 <strong>За какой год выдать данные</strong>
|
||||||
|
.checkbox-container
|
||||||
|
each year in [2025, 2024, 2023, 2022]
|
||||||
|
label.checkbox-item
|
||||||
|
input(type="checkbox" name="god_zapros" value=year)
|
||||||
|
span= year
|
||||||
|
button.btn.btn-primary#select-all Выбрать все
|
||||||
|
|
||||||
|
hr.primary-field(style="display: none;")
|
||||||
|
.my-3.mx-4.primary-field.verification(style="display: none;")
|
||||||
|
button.btn.btn-success.float-end.mb-3#code_submit
|
||||||
|
span.spinner-border.spinner-border-sm.me-1.d-none(role="status" aria-hidden="true")
|
||||||
|
span="Заказать справку"
|
||||||
|
|
||||||
|
.my-3.mx-4.primary-field.success_window(style="display: none;")
|
||||||
|
h3 Отлично!
|
||||||
|
|
||||||
|
p Ваша заявка принята. Справка будет оформлена в течение <strong>трёх рабочих дней</strong>.
|
||||||
|
p <strong>Готовые документы</strong> будут отправлены на вашу электронную почту.
|
||||||
|
p
|
||||||
|
| 📍 Также их можно забрать лично по адресу:
|
||||||
|
br
|
||||||
|
strong г. Пермь, ул. Г. Звезда, д. 31 А
|
||||||
|
| , в удобное для вас время:
|
||||||
|
br
|
||||||
|
| – будни: <strong>с 09:00 до 21:00</strong>
|
||||||
|
br
|
||||||
|
| – выходные и праздничные дни: <strong>с 09:00 до 19:00</strong>
|
||||||
|
br
|
||||||
|
em (❗️Обращаем внимание! Каждый четвёртый четверг месяца Клиника работает до 17:00).
|
||||||
|
p
|
||||||
|
| ☝️
|
||||||
|
strong Важно:
|
||||||
|
br
|
||||||
|
| Справку может получить налогоплательщик при предъявлении паспорта или его представитель с доверенностью и паспортом.
|
||||||
|
p Спасибо за ваше обращение! 😊
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
.my-3.mx-4.success-field.verificationpacient(style="display: none;")
|
||||||
|
p <strong>ДАННЫЕ ПАЦИЕНТА</strong>
|
||||||
|
|
||||||
|
.my-3.mx-4.success-field.verificationpacient(style="display: none;")
|
||||||
|
label.form-label.m-0(for="fio") <strong>Фамилия Имя Отчество</strong>
|
||||||
|
input.form-control.tg_input#fio1(type="text" name="fio")
|
||||||
|
small="(Пожалуйста, проверьте правильность данных)"
|
||||||
|
|
||||||
|
|
||||||
|
.my-3.mx-4.success-field.verificationpacient(style="display: none;")
|
||||||
|
label.form-label.m-0(for="birthdate") <strong>Дата рождения</strong>
|
||||||
|
input.form-control.tg_input#dob1(type="date")
|
||||||
|
small="(Пожалуйста, проверьте правильность данных)"
|
||||||
|
|
||||||
|
|
||||||
|
.my-3.mx-4.success-field.verificationpacient(style="display: none;")
|
||||||
|
label.form-label.m-0(for="documentTypePacient") <strong>Документ пациента:</strong> выберите паспорт, ИНН или свидетельство о рождении и введите его данные.
|
||||||
|
.my-3.d-flex.justify-content-between.gap-2
|
||||||
|
button.btn.btn-secondary.flex-fill#passportBtn(type="button") Паспортные данные пациента
|
||||||
|
button.btn.btn-secondary.flex-fill#INNpacientBtn(type="button") ИНН пациента
|
||||||
|
button.btn.btn-secondary.flex-fill#SvidetelstvoBth(type="button") Свидетельство о рождении
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
#passportFields.d-none
|
||||||
|
.my-3.mx-4.success-field.verificationpacient
|
||||||
|
label.form-label.m-0(for="passport") <strong>Серия и номер паспорта</strong>
|
||||||
|
input.form-control.tg_input#passport1
|
||||||
|
small="(Пожалуйста, проверьте правильность данных)"
|
||||||
|
|
||||||
|
.my-3.mx-4.success-field.verificationpacient
|
||||||
|
label.form-label.m-0(for="passport_date") <strong>Дата выдачи паспорта</strong>
|
||||||
|
input.form-control.tg_input#passport_date1(type="date")
|
||||||
|
small="(Пожалуйста, проверьте правильность данных)"
|
||||||
|
|
||||||
|
|
||||||
|
.my-3.mx-4.success-field.verificationpacient
|
||||||
|
label.form-label.m-0(for="postal_code") <strong>Код подразделения</strong>
|
||||||
|
input.form-control.tg_input#postal_code1
|
||||||
|
small="(Пожалуйста, проверьте правильность данных)"
|
||||||
|
|
||||||
|
|
||||||
|
.my-3.mx-4.success-field.verificationpacient
|
||||||
|
label.form-label.m-0(for="passport_issued_by") <strong>Кем выдан паспорт</strong>
|
||||||
|
select.form-select.tg_input#passport_issued_by1(style="")
|
||||||
|
option(disabled, selected)="Кем выдан паспорт"
|
||||||
|
small="(Пожалуйста, проверьте правильность данных)"
|
||||||
|
|
||||||
|
#INNpacientFields.d-none
|
||||||
|
.my-3.mx-4.success-field.verificationpacient
|
||||||
|
label.form-label.m-0(for="inn") <strong>ИНН</strong>
|
||||||
|
input.form-control.tg_input#inn1(type="text" name="#inn")
|
||||||
|
small="(Пожалуйста, проверьте правильность данных)"
|
||||||
|
|
||||||
|
#SvidetelstvoFields.d-none
|
||||||
|
.my-3.mx-4.success-field.verificationpacient
|
||||||
|
label.form-label.m-0(for="svedetelstvo") <strong>Серия и номер свидетельства о рождении</strong>
|
||||||
|
input.form-control.tg_input#svedetelstvo
|
||||||
|
small="(Пожалуйста, проверьте правильность данных)"
|
||||||
|
|
||||||
|
.my-3.mx-4.success-field.verificationpacient
|
||||||
|
label.form-label.m-0(for="svedetelstvo_date") <strong>Дата выдачи свидетельства о рождении</strong>
|
||||||
|
input.form-control.tg_input#svedetelstvo_date(type="date")
|
||||||
|
small="(Пожалуйста, проверьте правильность данных)"
|
||||||
|
|
||||||
|
|
||||||
|
.my-3.mx-4.success-field.verificationpacient
|
||||||
|
label.form-label.m-0(for="svedetelstvo_issued_by") <strong>Кем выдано свидетельство о рождении</strong>
|
||||||
|
input.form-control.tg_input#svedetelstvo_issued_by
|
||||||
|
small="(Пожалуйста, проверьте правильность данных)"
|
||||||
|
|
||||||
|
|
||||||
|
.my-3.mx-4.success-field.verificationpacient(style="display: none;")
|
||||||
|
p <strong>ДАННЫЕ НАЛОГОПЛАТЕЛЬЩИКА</strong>
|
||||||
|
|
||||||
|
|
||||||
|
.my-3.mx-4.success-field.verificationpacient(style="display: none;")
|
||||||
|
label.form-label.m-0(for="taxpayer_status_zapros") <strong>Являюсь налогоплательщиком как</strong>
|
||||||
|
select.form-select.tg_input#taxpayer_status_zapros
|
||||||
|
option(disabled, selected)='Выберите статус'
|
||||||
|
small="(Пожалуйста, выберите подходящий вариант)"
|
||||||
|
|
||||||
|
.my-3.mx-4.success-field.verificationpacient(style="display: none;")
|
||||||
|
label.form-label.m-0(for="fio") <strong>Фамилия Имя Отчество</strong>
|
||||||
|
input.form-control.tg_input#fional(type="text" name="fio")
|
||||||
|
small="(Пожалуйста, проверьте правильность данных)"
|
||||||
|
|
||||||
|
.my-3.mx-4.success-field.verificationpacient(style="display: none;")
|
||||||
|
label.form-label.m-0(for="birthdate") <strong>Дата рождения</strong>
|
||||||
|
input.form-control.tg_input#dobnal(type="date")
|
||||||
|
small="(Пожалуйста, проверьте правильность данных)"
|
||||||
|
|
||||||
|
|
||||||
|
.my-3.mx-4.success-field.verificationpacient(style="display: none;")
|
||||||
|
label.form-label.m-0(for="inn") <strong>ИНН</strong>
|
||||||
|
input.form-control.tg_input#innnal(type="text" name="#inn")
|
||||||
|
small="(Пожалуйста, проверьте правильность данных)"
|
||||||
|
|
||||||
|
|
||||||
|
.my-3.mx-4.success-field.verificationpacient(style="display: none;")
|
||||||
|
label.form-label.m-0(for="passport") <strong>Серия и номер паспорта</strong>
|
||||||
|
input.form-control.tg_input#passportnal
|
||||||
|
small="(Пожалуйста, проверьте правильность данных)"
|
||||||
|
|
||||||
|
.my-3.mx-4.success-field.verificationpacient(style="display: none;")
|
||||||
|
label.form-label.m-0(for="passport_date") <strong>Дата выдачи паспорта</strong>
|
||||||
|
input.form-control.tg_input#passport_datenal(type="date")
|
||||||
|
small="(Пожалуйста, проверьте правильность данных)"
|
||||||
|
|
||||||
|
|
||||||
|
.my-3.mx-4.success-field.verificationpacient(style="display: none;")
|
||||||
|
label.form-label.m-0(for="postal_code") <strong>Код подразделения</strong>
|
||||||
|
input.form-control.tg_input#postal_codenal
|
||||||
|
small="(Пожалуйста, проверьте правильность данных)"
|
||||||
|
|
||||||
|
|
||||||
|
.my-3.mx-4.success-field.verificationpacient(style="display: none;")
|
||||||
|
label.form-label.m-0(for="passport_issued_by") <strong>Кем выдан паспорт</strong>
|
||||||
|
select.form-select.tg_input#passport_issued_bynal(style="")
|
||||||
|
option(disabled, selected)="Кем выдан паспорт"
|
||||||
|
small="(Пожалуйста, проверьте правильность данных)"
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
.my-3.mx-4.success-field.verificationpacient(style="display: none;")
|
||||||
|
label.form-label.m-0(for="email") <strong>Электронная почта</strong>
|
||||||
|
input.form-control.tg_input#email1(type="text" name="email" value=pct_email)
|
||||||
|
small="(Пожалуйста, проверьте правильность данных)"
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
.my-3.mx-4.success-field.verificationpacient(style="display: none;")
|
||||||
|
label.form-label.m-0 <strong>За какой год выдать данные</strong>
|
||||||
|
.checkbox-container
|
||||||
|
each year in [2025, 2024, 2023, 2022]
|
||||||
|
label.checkbox-item
|
||||||
|
input(type="checkbox" name="god_zapros2" value=year)
|
||||||
|
span= year
|
||||||
|
button.btn.btn-outline-primary.btn-sm#select-all2="Выбрать все"
|
||||||
|
|
||||||
|
hr.primary-field.verificationpacient(style="display: none;")
|
||||||
|
.my-3.mx-4.primary-field.verificationpacient(style="display: none;")
|
||||||
|
button.btn.btn-success.float-end.mb-3#code_submit2
|
||||||
|
span.spinner-border.spinner-border-sm.me-1.d-none(role="status" aria-hidden="true")
|
||||||
|
span="Заказать справку"
|
||||||
File diff suppressed because it is too large
Load Diff
Reference in New Issue
Block a user