Files

1202 lines
48 KiB
JavaScript
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
function show_error(message){
$('#error_alert').slideDown(500);
$('#success_alert').hide();
$('#error_alert').delay(5000).slideUp();
$('#alert_error_text').empty();
if (message)
$('#alert_error_text').append(message)
}
function show_success(message){
$('#success_alert').slideDown(500);
$('#success_alert').delay(5000).slideUp();
$('#alert_success_text').empty();
if (message)
$('#alert_success_text').append(message);
}
function validate_length(val, dest_len){
if(val.length < dest_len){
return false;
}
return true;
}
$(document).ready(function(){
$("#select-all").on("click", function() {
$("input[name='god_zapros']").prop("checked", true);
});
$("#select-all2").on("click", function() {
$("input[name='god_zapros2']").prop("checked", true);
});
$("#postal_code").change(function(){
$('#passport_issued_by').empty();
$('#passport_issued_by').append('<option disabled="" selected="">Кем выдан паспорт</option>')
for(i in UFMS_list[$(this).val()])
{
item = UFMS_list[$(this).val()][i];
$('#passport_issued_by').append('<option>'+item+'</option>');
}
// $('#passport_issued_by').select2("change");
});
$("#postal_codenal").change(function(){
$('#passport_issued_bynal').empty();
$('#passport_issued_bynal').append('<option disabled="" selected="">Кем выдан паспорт</option>')
for(i in UFMS_list[$(this).val()])
{
item = UFMS_list[$(this).val()][i];
$('#passport_issued_bynal').append('<option>'+item+'</option>');
}
// $('#passport_issued_by').select2("change");
});
$("#postal_code1").change(function(){
$('#passport_issued_by1').empty();
$('#passport_issued_by1').append('<option disabled="" selected="">Кем выдан паспорт</option>')
for(i in UFMS_list[$(this).val()])
{
item = UFMS_list[$(this).val()][i];
$('#passport_issued_by1').append('<option>'+item+'</option>');
}
// $('#passport_issued_by').select2("change");
});
const statusesMain = ["Я являюсь налогоплательщиком", "Мать", "Отец", "Сын", "Дочь", "Муж", "Жена", "Опекун"];
const selectMain = document.getElementById("taxpayer_status");
statusesMain.forEach(status => {
selectMain.innerHTML += `<option>${status}</option>`;
});
const statusesZapros = ["Мать", "Отец", "Сын", "Дочь", "Муж", "Жена", "Опекун"];
const selectZapros = document.getElementById("taxpayer_status_zapros");
statusesZapros.forEach(status => {
selectZapros.innerHTML += `<option>${status}</option>`;
});
$('#passportBtn').on('click', function() {
$('#passportFields').removeClass('d-none');
$('#INNpacientFields').addClass('d-none');
$('#SvidetelstvoFields').addClass('d-none');
});
// При нажатии на кнопку "ИНН пациента"
$('#INNpacientBtn').on('click', function() {
$('#INNpacientFields').removeClass('d-none');
$('#passportFields').addClass('d-none');
$('#SvidetelstvoFields').addClass('d-none');
});
$('#SvidetelstvoBth').on('click', function() {
$('#SvidetelstvoFields').removeClass('d-none');
$('#passportFields').addClass('d-none');
$('#INNpacientFields').addClass('d-none');
});
const validateEmail = (email) => {
return email.match(
/^(([^<>()[\]\\.,;:\s@\"]+(\.[^<>()[\]\\.,;:\s@\"]+)*)|(\".+\"))@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\])|(([a-zA-Z\-0-9]+\.)+[a-zA-Z]{2,}))$/
);
};
const validate = (selector) => {
const email = $(selector).val();
if (validateEmail(email)) {
$(selector).parent().removeClass('errors-field').addClass('success-field');
} else {
$(selector).parent().removeClass('success-field').addClass('errors-field');
}
};
const sanitizeEmailInput = (selector) => {
$(selector).on('input', function () {
let input = $(this).val();
// Разрешаем только буквы, цифры, точки, дефисы и подчеркивания
input = input.replace(/[^a-zA-Z0-9._@-]/g, '');
// Обновляем поле ввода
$(this).val(input);
validate(selector);
});
};
// Вызов валидации для каждого поля email
sanitizeEmailInput('#email');
sanitizeEmailInput('#email1');
$('body').append('<div id="error_alert" class="alert alert-danger" role="alert" style="position: fixed; top: 50px; left: 10%; right: 10%; z-index: 9999; display: none;">Ошибка<br><small id="alert_error_text"></small></div>');
$('body').append('<div id="success_alert" class="alert alert-success" role="alert" style="position: fixed; top: 50px; left: 10%; right: 10%; z-index: 9999; display: none;">Успех<br><small id="alert_success_text"></small></div>');
$('#fio').on('input', function () {
let input = $(this).val();
// Убираем все лишние символы, кроме букв и пробелов
input = input.replace(/[^a-zA-Zа-яА-ЯёЁ ]/g, '');
// Преобразуем каждое слово, чтобы оно начиналось с заглавной буквы
let formattedInput = input.split(' ').map(word => {
if (word.length > 0) {
return word.charAt(0).toUpperCase() + word.slice(1).toLowerCase();
}
return ''; // Пустые слова не трогаем
}).join(' '); // Объединяем обратно с пробелами
// Обновляем поле ввода с отформатированным текстом
$(this).val(formattedInput);
// Проверяем количество слов
let words = formattedInput.trim().split(/\s+/); // Убираем лишние пробелы
if (words.length < 3 || words.some(word => word.length < 2)) {
$(this).parent().removeClass('success-field').addClass('errors-field'); // Подсветить поле
} else {
$(this).parent().removeClass('errors-field').addClass('success-field'); // Убрать подсветку
}
});
$('#fio1').on('input', function () {
let input = $(this).val();
// Убираем все лишние символы, кроме букв и пробелов
input = input.replace(/[^a-zA-Zа-яА-ЯёЁ ]/g, '');
// Преобразуем каждое слово, чтобы оно начиналось с заглавной буквы
let formattedInput = input.split(' ').map(word => {
if (word.length > 0) {
return word.charAt(0).toUpperCase() + word.slice(1).toLowerCase();
}
return ''; // Пустые слова не трогаем
}).join(' '); // Объединяем обратно с пробелами
// Обновляем поле ввода с отформатированным текстом
$(this).val(formattedInput);
// Проверяем количество слов
let words = formattedInput.trim().split(/\s+/); // Убираем лишние пробелы
if (words.length < 3 || words.some(word => word.length < 2)) {
$(this).parent().removeClass('success-field').addClass('errors-field'); // Подсветить поле
} else {
$(this).parent().removeClass('errors-field').addClass('success-field'); // Убрать подсветку
}
});
$('#fional').on('input', function () {
let input = $(this).val();
// Убираем все лишние символы, кроме букв и пробелов
input = input.replace(/[^a-zA-Zа-яА-ЯёЁ ]/g, '');
// Преобразуем каждое слово, чтобы оно начиналось с заглавной буквы
let formattedInput = input.split(' ').map(word => {
if (word.length > 0) {
return word.charAt(0).toUpperCase() + word.slice(1).toLowerCase();
}
return ''; // Пустые слова не трогаем
}).join(' '); // Объединяем обратно с пробелами
// Обновляем поле ввода с отформатированным текстом
$(this).val(formattedInput);
// Проверяем количество слов
let words = formattedInput.trim().split(/\s+/); // Убираем лишние пробелы
if (words.length < 3 || words.some(word => word.length < 2)) {
$(this).parent().removeClass('success-field').addClass('errors-field'); // Подсветить поле
} else {
$(this).parent().removeClass('errors-field').addClass('success-field'); // Убрать подсветку
}
});
$('#patient_fio').on('input', function () {
let input = $(this).val();
// Убираем все лишние символы, кроме букв и пробелов
input = input.replace(/[^a-zA-Zа-яА-ЯёЁ ]/g, '');
// Преобразуем каждое слово, чтобы оно начиналось с заглавной буквы
let formattedInput = input.split(' ').map(word => {
if (word.length > 0) {
return word.charAt(0).toUpperCase() + word.slice(1).toLowerCase();
}
return ''; // Пустые слова не трогаем
}).join(' '); // Объединяем обратно с пробелами
// Обновляем поле ввода с отформатированным текстом
$(this).val(formattedInput);
// Проверяем количество слов
let words = formattedInput.trim().split(/\s+/); // Убираем лишние пробелы
if (words.length < 3 || words.some(word => word.length < 2)) {
$(this).parent().removeClass('success-field').addClass('errors-field'); // Подсветить поле
} else {
$(this).parent().removeClass('errors-field').addClass('success-field'); // Убрать подсветку
}
});
$('#tel').on('change', function() {
if($(this).val().length != 16){
$(this).parent().removeClass('success-field').addClass('errors-field');
} else{
$(this).parent().removeClass('errors-field').addClass('success-field');
}
});
$('#svedetelstvo').on('input', function() {
let value = $(this).val();
// Оставляем только первый найденный пробел, если он есть
const parts = value.split(' ');
if (parts.length > 2) {
value = parts[0] + ' ' + parts.slice(1).join('');
}
$(this).val(value);
});
// Проверка на дату рождения (не старше 80 лет)
$('#dob').on('change', function() {
const dob = new Date($(this).val());
const currentDate = new Date();
const age = currentDate.getFullYear() - dob.getFullYear();
// Проверка на возраст (не старше 80 лет)
if (age > 100 || (age === 100 && (currentDate.getMonth() < dob.getMonth() || (currentDate.getMonth() === dob.getMonth() && currentDate.getDate() < dob.getDate())))) {
// Если возраст больше 80 лет, подсвечиваем ячейку как ошибку
$(this).parent().removeClass('success-field').addClass('errors-field');
} else {
// Если возраст нормален, подсвечиваем ячейку как успешную
$(this).parent().removeClass('errors-field').addClass('success-field');
}
});
$('#dob1').on('change', function() {
const dob1 = new Date($(this).val());
const currentDate = new Date();
const age = currentDate.getFullYear() - dob1.getFullYear();
// Проверка на возраст (не старше 80 лет)
if (age > 100 || (age === 100 && (currentDate.getMonth() < dob1.getMonth() || (currentDate.getMonth() === dob1.getMonth() && currentDate.getDate() < dob1.getDate())))) {
// Если возраст больше 80 лет, подсвечиваем ячейку как ошибку
$(this).parent().removeClass('success-field').addClass('errors-field');
} else {
// Если возраст нормален, подсвечиваем ячейку как успешную
$(this).parent().removeClass('errors-field').addClass('success-field');
}
});
$('#dobnal').on('change', function() {
const dobnal = new Date($(this).val());
const currentDate = new Date();
const age = currentDate.getFullYear() - dobnal.getFullYear();
// Проверка на возраст (не старше 80 лет)
if (age > 100 || (age === 100 && (currentDate.getMonth() < dobnal.getMonth() || (currentDate.getMonth() === dobnal.getMonth() && currentDate.getDate() < dobnal.getDate())))) {
// Если возраст больше 80 лет, подсвечиваем ячейку как ошибку
$(this).parent().removeClass('success-field').addClass('errors-field');
} else {
// Если возраст нормален, подсвечиваем ячейку как успешную
$(this).parent().removeClass('errors-field').addClass('success-field');
}
});
$('#postal_code').on('input', function() {
let input = $(this).val();
// Удаляем все символы, кроме цифр
input = input.replace(/\D/g, '');
// Форматируем ввод в "000-000" только при наличии 4 и более цифр
if (input.length > 3) {
input = input.replace(/(\d{3})(\d{0,3})/, '$1-$2');
}
// Ограничиваем длину до "000-000"
if (input.length > 7) {
input = input.slice(0, 7);
}
// Обновляем поле ввода
$(this).val(input);
// Проверка на минимальную длину (не менее 11 символов)
if (input.length < 7) {
// Если введено меньше цифр, показываем ошибку
$(this).parent().removeClass('success-field').addClass('errors-field');
} else {
// Если введено достаточно цифр, показываем успех
$(this).parent().removeClass('errors-field').addClass('success-field');
}
});
$('#postal_code1').on('input', function() {
let input = $(this).val();
// Удаляем все символы, кроме цифр
input = input.replace(/\D/g, '');
// Форматируем ввод в "000-000" только при наличии 4 и более цифр
if (input.length > 3) {
input = input.replace(/(\d{3})(\d{0,3})/, '$1-$2');
}
// Ограничиваем длину до "000-000"
if (input.length > 7) {
input = input.slice(0, 7);
}
// Обновляем поле ввода
$(this).val(input);
// Проверка на минимальную длину (не менее 11 символов)
if (input.length < 7) {
// Если введено меньше цифр, показываем ошибку
$(this).parent().removeClass('success-field').addClass('errors-field');
} else {
// Если введено достаточно цифр, показываем успех
$(this).parent().removeClass('errors-field').addClass('success-field');
}
});
$('#postal_codenal').on('input', function() {
let input = $(this).val();
// Удаляем все символы, кроме цифр
input = input.replace(/\D/g, '');
// Форматируем ввод в "000-000" только при наличии 4 и более цифр
if (input.length > 3) {
input = input.replace(/(\d{3})(\d{0,3})/, '$1-$2');
}
// Ограничиваем длину до "000-000"
if (input.length > 7) {
input = input.slice(0, 7);
}
// Обновляем поле ввода
$(this).val(input);
// Проверка на минимальную длину (не менее 11 символов)
if (input.length < 7) {
// Если введено меньше цифр, показываем ошибку
$(this).parent().removeClass('success-field').addClass('errors-field');
} else {
// Если введено достаточно цифр, показываем успех
$(this).parent().removeClass('errors-field').addClass('success-field');
}
});
$('#passport').on('input', function() {
let input = $(this).val();
// Удаляем все символы, кроме цифр
input = input.replace(/\D/g, '');
// Форматируем ввод в "000-000" только при наличии 4 и более цифр
if (input.length > 4) {
input = input.replace(/(\d{4})(\d{0,4})/, '$1 $2');
}
// Ограничиваем длину до "000-000"
if (input.length > 11) {
input = input.slice(0, 11);
}
// Обновляем поле ввода
$(this).val(input);
// Проверка на минимальную длину (не менее 11 символов)
if (input.length < 11) {
// Если введено меньше цифр, показываем ошибку
$(this).parent().removeClass('success-field').addClass('errors-field');
} else {
// Если введено достаточно цифр, показываем успех
$(this).parent().removeClass('errors-field').addClass('success-field');
}
});
$('#passport1').on('input', function() {
let input = $(this).val();
// Удаляем все символы, кроме цифр
input = input.replace(/\D/g, '');
// Форматируем ввод в "000-000" только при наличии 4 и более цифр
if (input.length > 4) {
input = input.replace(/(\d{4})(\d{0,4})/, '$1 $2');
}
// Ограничиваем длину до "000-000"
if (input.length > 11) {
input = input.slice(0, 11);
}
// Обновляем поле ввода
$(this).val(input);
// Проверка на минимальную длину (не менее 11 символов)
if (input.length < 11) {
// Если введено меньше цифр, показываем ошибку
$(this).parent().removeClass('success-field').addClass('errors-field');
} else {
// Если введено достаточно цифр, показываем успех
$(this).parent().removeClass('errors-field').addClass('success-field');
}
});
$('#passportnal').on('input', function() {
let input = $(this).val();
// Удаляем все символы, кроме цифр
input = input.replace(/\D/g, '');
// Форматируем ввод в "000-000" только при наличии 4 и более цифр
if (input.length > 4) {
input = input.replace(/(\d{4})(\d{0,4})/, '$1 $2');
}
// Ограничиваем длину до "000-000"
if (input.length > 11) {
input = input.slice(0, 11);
}
// Обновляем поле ввода
$(this).val(input);
// Проверка на минимальную длину (не менее 11 символов)
if (input.length < 11) {
// Если введено меньше цифр, показываем ошибку
$(this).parent().removeClass('success-field').addClass('errors-field');
} else {
// Если введено достаточно цифр, показываем успех
$(this).parent().removeClass('errors-field').addClass('success-field');
}
});
$("#inn").attr('maxlength','12');
$('#inn').on('input', function() {
let input = $(this).val();
// Убираем все символы, кроме цифр
input = input.replace(/\D/g, '');
// Ограничиваем длину до 12 символов
if (input.length > 12) {
input = input.slice(0, 12);
}
// Обновляем значение в поле ввода
$(this).val(input);
if (input.length < 12) {
// Если введено меньше цифр, показываем ошибку
$(this).parent().removeClass('success-field').addClass('errors-field');
} else {
// Если введено достаточно цифр, показываем успех
$(this).parent().removeClass('errors-field').addClass('success-field');
}
});
$("#inn1").attr('maxlength','12');
$('#inn1').on('input', function() {
let input = $(this).val();
// Убираем все символы, кроме цифр
input = input.replace(/\D/g, '');
// Ограничиваем длину до 12 символов
if (input.length > 12) {
input = input.slice(0, 12);
}
// Обновляем значение в поле ввода
$(this).val(input);
if (input.length < 12) {
// Если введено меньше цифр, показываем ошибку
$(this).parent().removeClass('success-field').addClass('errors-field');
} else {
// Если введено достаточно цифр, показываем успех
$(this).parent().removeClass('errors-field').addClass('success-field');
}
});
$("#innnal").attr('maxlength','12');
$('#innnal').on('input', function() {
let input = $(this).val();
// Убираем все символы, кроме цифр
input = input.replace(/\D/g, '');
// Ограничиваем длину до 12 символов
if (input.length > 12) {
input = input.slice(0, 12);
}
// Обновляем значение в поле ввода
$(this).val(input);
if (input.length < 12) {
// Если введено меньше цифр, показываем ошибку
$(this).parent().removeClass('success-field').addClass('errors-field');
} else {
// Если введено достаточно цифр, показываем успех
$(this).parent().removeClass('errors-field').addClass('success-field');
}
});
$('#passport_date').on('change', function() {
const dob = new Date($(this).val());
const currentDate = new Date();
const age = currentDate.getFullYear() - dob.getFullYear();
// Проверка на возраст (не старше 80 лет)
if (age > 100 || (age === 100 && (currentDate.getMonth() < dob.getMonth() || (currentDate.getMonth() === dob.getMonth() && currentDate.getDate() < dob.getDate())))) {
// Если возраст больше 80 лет, подсвечиваем ячейку как ошибку
$(this).parent().removeClass('success-field').addClass('errors-field');
} else {
// Если возраст нормален, подсвечиваем ячейку как успешную
$(this).parent().removeClass('errors-field').addClass('success-field');
}
});
$('#passport_datenal').on('change', function() {
const dob = new Date($(this).val());
const currentDate = new Date();
const age = currentDate.getFullYear() - dob.getFullYear();
// Проверка на возраст (не старше 80 лет)
if (age > 100 || (age === 100 && (currentDate.getMonth() < dob.getMonth() || (currentDate.getMonth() === dob.getMonth() && currentDate.getDate() < dob.getDate())))) {
// Если возраст больше 80 лет, подсвечиваем ячейку как ошибку
$(this).parent().removeClass('success-field').addClass('errors-field');
} else {
// Если возраст нормален, подсвечиваем ячейку как успешную
$(this).parent().removeClass('errors-field').addClass('success-field');
}
});
$('#passport_date1').on('change', function() {
const dob = new Date($(this).val());
const currentDate = new Date();
const age = currentDate.getFullYear() - dob.getFullYear();
// Проверка на возраст (не старше 80 лет)
if (age > 100 || (age === 100 && (currentDate.getMonth() < dob.getMonth() || (currentDate.getMonth() === dob.getMonth() && currentDate.getDate() < dob.getDate())))) {
// Если возраст больше 80 лет, подсвечиваем ячейку как ошибку
$(this).parent().removeClass('success-field').addClass('errors-field');
} else {
// Если возраст нормален, подсвечиваем ячейку как успешную
$(this).parent().removeClass('errors-field').addClass('success-field');
}
});
$("#kod").attr('maxlength','4');
$('#kod').on('input', function() {
let input = $(this).val();
// Удаляем все символы, кроме цифр
input = input.replace(/\D/g, '');
// Обновляем поле ввода
$(this).val(input);
// Проверка на минимальную длину (не менее 11 символов)
if (input.length < 4) {
// Если введено меньше цифр, показываем ошибку
$(this).parent().removeClass('success-field').addClass('errors-field');
} else {
// Если введено достаточно цифр, показываем успех
$(this).parent().removeClass('errors-field').addClass('success-field');
}
});
// function verification(){
// $("#form_submit").children(".spinner-border").removeClass('d-none');
// $("#form_submit").attr("disabled", true);
// message = {}
// if(!(validate_length($('#fio').val(), 3)))
// {
// show_error('Введите ФИО', false);
// $("#form_submit").children(".spinner-border").addClass('d-none');
// $("#form_submit").removeAttr("disabled");
// return;
// }
//
// if(!(validate_length($('#tel').val(), 16)))
// {
// show_error('Введите Телефон', false);
// $("#form_submit").children(".spinner-border").addClass('d-none');
// $("#form_submit").removeAttr("disabled");
// return;
// }
//
// if ($('#dob').val().length !== 10 || new Date().getFullYear() - new Date($('#dob').val()).getFullYear() > 100) {
// show_error('Дата рождения должна быть корректной и возраст не более 80 лет', false);
// $("#form_submit").children(".spinner-border").addClass('d-none');
// $("#form_submit").removeAttr("disabled");
// return;
// }
//
// if ($('#dob').val().length !== 10 || new Date().getFullYear() < new Date($('#dob').val()).getFullYear()) {
// show_error('Проверьте дату ввода, вы указали дату больше чем сегодняшняя дата', false);
// $("#form_submit").children(".spinner-border").addClass('d-none');
// $("#form_submit").removeAttr("disabled");
// return;
// }
function verificationpacient(){
$("#form_submit").children(".spinner-border").removeClass('d-none');
$("#form_submit").attr("disabled", true);
let message = {};
$('.tg_input').each(function() {
message[$(this).attr("id")] = $(this).val();
});
show_success("Ваши данные отправлены на проверку.");
$.ajax({
type: "POST",
url: "/request_patient2",
contentType: "application/json", // <-- Указываем JSON
data: JSON.stringify(message), // <-- Преобразуем объект в JSON
success: function(data) {
console.log(data);
if (data.success) {
$('.primary-field').hide();
$('.verification').hide();
$('.verificationpacient').show();
$('#fio1').val(data.fio);
$('#fio1').prop('readonly', true);
$('#dob1').val(data.js_formatted_birthdate);
$('#dob1').prop('readonly', true);
if (data.pct_doc_ind == 2) {
// Заполняем данные свидетельства
$('#svedetelstvo').val(data.pct_doc_ser + ' ' + data.pct_doc_nom);
$('#svedetelstvo_date').val(data.js_formatted_passport_date);
$('#svedetelstvo_issued_by').val(data.pct_doc_org_name);
} else if (data.pct_doc_ind == 1) {
// Заполняем данные паспорта
$('#passport1').val(data.pct_doc_ser + ' ' + data.pct_doc_nom);
$('#passport_date1').val(data.js_formatted_passport_date);
$('#postal_code1').val(data.pct_doc_org_kod);
// Обрабатываем код подразделения
for(i in UFMS_list[data.pct_doc_org_kod])
{
item = UFMS_list[data.pct_doc_org_kod][i];
console.log(item.toLowerCase())
console.log(data.pct_doc_org_name.toLowerCase())
console.log(item.toLowerCase()==data.pct_doc_org_name.toLowerCase())
if(item.toLowerCase()==data.pct_doc_org_name.toLowerCase())
{
$('#passport_issued_by1').append('<option selected>'+item+'</option>');
}
else{
$('#passport_issued_by1').append('<option>'+item+'</option>');
}
}
}
// $('#passport1').val(data.pct_doc_ser + ' ' + data.pct_doc_nom);
//
// $('#passport_date1').val(data.js_formatted_passport_date);
//
// $('#postal_code1').val(data.pct_doc_org_kod);
//
// for(i in UFMS_list[data.pct_doc_org_kod])
// {
// item = UFMS_list[data.pct_doc_org_kod][i];
// console.log(item.toLowerCase())
// console.log(data.pct_doc_org_name.toLowerCase())
// console.log(item.toLowerCase()==data.pct_doc_org_name.toLowerCase())
// if(item.toLowerCase()==data.pct_doc_org_name.toLowerCase())
// {
// $('#passport_issued_by1').append('<option selected>'+item+'</option>');
// }
// else{
// $('#passport_issued_by1').append('<option>'+item+'</option>');
// }
// }
$('#inn1').val(data.pct_inn);
$('#taxpayer_status_zapros').val(data.taxpayer_status_zapros);
$('#email1').val(data.pct_email);
// $('#svedetelstvo').val(data.pct_doc_ser + ' ' + data.pct_doc_nom);
// $('#svedetelstvo_date').val(data.js_formatted_passport_date);
// $('#svedetelstvo_issued_by').val(data.pct_doc_org_name);
$('#fional').val(data.plc_fio);
$('#dobnal').val(data.js_formatted_birthdate_plc);
$('#innnal').val(data.plc_inn);
$('#passportnal').val(data.plc_doc_ser + ' ' + data.plc_doc_nom);
$('#passport_datenal').val(data.js_formatted_passport_date_plc);
$('#postal_codenal').val(data.plc_doc_org_kod);
for(i in UFMS_list[data.plc_doc_org_kod])
{
item = UFMS_list[data.plc_doc_org_kod][i];
console.log(item.toLowerCase())
console.log(data.plc_doc_org_kod.toLowerCase())
console.log(item.toLowerCase()==data.plc_doc_org_kod.toLowerCase())
if(item.toLowerCase()==data.plc_doc_org_kod.toLowerCase())
{
$('#passport_issued_bynal').append('<option selected>'+item+'</option>');
}
else{
$('#passport_issued_bynal').append('<option>'+item+'</option>');
}
}
} else {
show_error(data.error);
}
$("#form_submit").children(".spinner-border").addClass('d-none');
$("#form_submit").removeAttr("disabled");
},
error: function(jqXHR) {
show_error('Что-то пошло не так');
$("#form_submit").children(".spinner-border").addClass('d-none');
$("#form_submit").removeAttr("disabled");
}
});
}
function verificationnalogoplat(){
$("#form_submit").children(".spinner-border").removeClass('d-none');
$("#form_submit").attr("disabled", true);
let message = {};
$('.tg_input').each(function() {
message[$(this).attr("id")] = $(this).val();
});
show_success("Ваши данные отправлены на проверку.");
$.ajax({
type: "POST",
url: "/request_patient",
contentType: "application/json", // <-- Указываем JSON
data: JSON.stringify(message), // <-- Преобразуем объект в JSON
success: function(data) {
console.log(data);
if (data.success) {
$('.primary-field').hide();
$('.verification').show();
$('.verificationpacient').hide();
$('#fio').val(data.fio);
$('#fio').prop('readonly', true);
$('#dob').val(data.js_formatted_birthdate);
$('#dob').prop('readonly', true);
$('#passport').val(data.pct_doc_ser + ' ' + data.pct_doc_nom);
$('#passport_date').val(data.js_formatted_passport_date);
$('#postal_code').val(data.pct_doc_org_kod);
for(i in UFMS_list[data.pct_doc_org_kod])
{
item = UFMS_list[data.pct_doc_org_kod][i];
console.log(item.toLowerCase())
console.log(data.pct_doc_org_name.toLowerCase())
console.log(item.toLowerCase()==data.pct_doc_org_name.toLowerCase())
if(item.toLowerCase()==data.pct_doc_org_name.toLowerCase())
{
$('#passport_issued_by').append('<option selected>'+item+'</option>');
}
else{
$('#passport_issued_by').append('<option>'+item+'</option>');
}
}
$('#inn').val(data.pct_inn);
$('#email').val(data.pct_email);
} else {
show_error(data.error);
}
$("#form_submit").children(".spinner-border").addClass('d-none');
$("#form_submit").removeAttr("disabled");
},
error: function(jqXHR) {
show_error('Что-то пошло не так');
$("#form_submit").children(".spinner-border").addClass('d-none');
$("#form_submit").removeAttr("disabled");
}
});
}
$("#form_submit").click(function() {
let selectedValue = $("#taxpayer_status").val(); // Получаем выбранное значение
if (selectedValue === "Я являюсь налогоплательщиком") {
verificationnalogoplat();
} else {
console.log("Выбрано другое значение:", selectedValue);
verificationpacient();
// Тут можно добавить вызов других функций, если нужно
}
});
$("#code_submit").click(function(){
$(this).children(".spinner-border").removeClass('d-none');
$(this).attr("disabled", true);
message = {}
if(!(validate_length($('#fio').val(), 3)))
{
show_error('Введите ФИО', false);
$(this).children(".spinner-border").addClass('d-none');
$(this).removeAttr("disabled");
return;
}
if ($('#dob').val().length !== 10 || new Date().getFullYear() - new Date($('#dob').val()).getFullYear() > 100) {
show_error('Дата рождения должна быть корректной и возраст не более 80 лет', false);
$(this).children(".spinner-border").addClass('d-none');
$(this).removeAttr("disabled");
return;
}
if(!(validate_length($('#passport').val(), 11)))
{
show_error('Введите серию и номер паспорта', false);
$(this).children(".spinner-border").addClass('d-none');
$(this).removeAttr("disabled");
return;
}
if ($('#passport_date').val().length !== 10 || (new Date($('#passport_date').val()).getFullYear() - new Date($('#dob').val()).getFullYear()) < 13) {
show_error('Проверьте дату выдачи паспорта, паспорт РФ может быть выдан с 14 лет', false);
$(this).children(".spinner-border").addClass('d-none');
$(this).removeAttr("disabled");
return;
}
if(!(validate_length($('#postal_code').val(), 7)))
{
show_error('Введите код подразделения', false);
$(this).children(".spinner-border").addClass('d-none');
$(this).removeAttr("disabled");
return;
}
if($('#passport_issued_by').val() == null){
show_error("Выберите кем выдан паспорт");
$(this).children(".spinner-border").addClass('d-none');
$(this).removeAttr("disabled");
return;
}
if(!(validate_length($('#inn').val(), 12)))
{
show_error('Введите ИНН', false);
$(this).children(".spinner-border").addClass('d-none');
$(this).removeAttr("disabled");
return;
}
if ($("input[name='god_zapros']:checked").length === 0) {
show_error("Выберите хотя бы один год запроса");
$(this).children(".spinner-border").addClass('d-none');
$(this).removeAttr("disabled");
return;
}
// Добавление значений с чекбоксов (годы)
let selectedYears = [];
$("input[name='god_zapros']:checked").each(function() {
selectedYears.push($(this).val());
});
if (selectedYears.length > 0) {
message['selected_years'] = selectedYears;
}
$.each($('.tg_input'), function(e) {
message[$(this).prop("id")] = $(this).val();
});
$.ajax({
type: "post",
url: "/sending_patient",
processData: false, // tell jQuery not to process the data
contentType: false, // tell jQuery not to set contentType
async: true,
data: JSON.stringify(message),
success: (data) => {
if(data.success==true){
$('.primary-field').hide();
$('.verification').hide();
$('.success_window').show();
}
else{
show_error(data.error);
$(this).children(".spinner-border").addClass('d-none');
$(this).removeAttr("disabled");
}
},
error:function (jqXHR, exception) {
$(this).children(".spinner-border").addClass('d-none');
$(this).removeAttr("disabled");
show_error('Что-то пошло не так', false)
}
});
});
$("#code_submit2").click(function(){
$(this).children(".spinner-border").removeClass('d-none');
$(this).attr("disabled", true);
message = {}
if(!(validate_length($('#fio1').val(), 3)))
{
show_error('Введите ФИО пациента', false);
$(this).children(".spinner-border").addClass('d-none');
$(this).removeAttr("disabled");
return;
}
if ($('#dob1').val().length !== 10 || new Date().getFullYear() - new Date($('#dob1').val()).getFullYear() > 100) {
show_error('Дата рождения пациента должна быть корректной и возраст не более 100 лет', false);
$(this).children(".spinner-border").addClass('d-none');
$(this).removeAttr("disabled");
return;
}
if(!(validate_length($('#fional').val(), 3)))
{
show_error('Введите ФИО налогоплательщика', false);
$(this).children(".spinner-border").addClass('d-none');
$(this).removeAttr("disabled");
return;
}
if ($('#dobnal').val().length !== 10 || new Date().getFullYear() - new Date($('#dobnal').val()).getFullYear() > 100) {
show_error('Дата рождения налогоплательщика должна быть корректной и возраст не более 100 лет', false);
$(this).children(".spinner-border").addClass('d-none');
$(this).removeAttr("disabled");
return;
}
if(!(validate_length($('#innnal').val(), 12)))
{
show_error('Введите ИНН налогоплательщика', false);
$(this).children(".spinner-border").addClass('d-none');
$(this).removeAttr("disabled");
return;
}
if(!(validate_length($('#passportnal').val(), 11)))
{
show_error('Введите серию и номер паспорта налогоплательщика', false);
$(this).children(".spinner-border").addClass('d-none');
$(this).removeAttr("disabled");
return;
}
if ($('#passport_datenal').val().length !== 10 || (new Date($('#passport_datenal').val()).getFullYear() - new Date($('#dobnal').val()).getFullYear()) < 13) {
show_error('Проверьте дату выдачи паспорта, паспорт РФ может быть выдан с 14 лет', false);
$(this).children(".spinner-border").addClass('d-none');
$(this).removeAttr("disabled");
return;
}
if(!(validate_length($('#postal_codenal').val(), 7)))
{
show_error('Введите код подразделения налогоплательщика', false);
$(this).children(".spinner-border").addClass('d-none');
$(this).removeAttr("disabled");
return;
}
if($('#passport_issued_bynal').val() == null){
show_error("Выберите кем выдан паспорт налогоплательщика");
$(this).children(".spinner-border").addClass('d-none');
$(this).removeAttr("disabled");
return;
}
if ($("input[name='god_zapros2']:checked").length === 0) {
show_error("Выберите хотя бы один год запроса");
$(this).children(".spinner-border").addClass('d-none');
$(this).removeAttr("disabled");
return;
}
let selectedYears = [];
$("input[name='god_zapros2']:checked").each(function() {
selectedYears.push($(this).val());
});
if (selectedYears.length > 0) {
message['selected_years'] = selectedYears;
}
$.each($('.tg_input'), function(e) {
message[$(this).prop("id")] = $(this).val();
});
$.each($('.tg_input'), function(e) {
message[$(this).prop("id")] = $(this).val();
});
$.ajax({
type: "POST",
url: "/sending_patient2",
contentType: "application/json",
data: JSON.stringify(message),
success: (data) => {
if (data.success) {
$('.primary-field').hide();
$('.verification').hide();
$('.verificationpacient').hide();
$('.success_window').show();
} else {
show_error(data.error);
$("#code_submit2").children(".spinner-border").addClass('d-none');
$("#code_submit2").removeAttr("disabled");
}
},
error: function (jqXHR) {
$("#code_submit2").children(".spinner-border").addClass('d-none');
$("#code_submit2").removeAttr("disabled");
// Попробуем получить сообщение об ошибке из ответа сервера
let errorMessage = 'Что-то пошло не так';
if (jqXHR.responseJSON && jqXHR.responseJSON.error) {
errorMessage = jqXHR.responseJSON.error;
}
show_error(errorMessage, false);
}
});
});
// $('.alert-placeholder').mouseenter(function(){
// var popOverSettings = {
// placement: 'bottom',
// content: $(this).data('content'),
// trigger: 'hover',
// container: this,
// offset: '0'
// }
// $(this).popover(popOverSettings);
// $(this).popover('show');
// $('.popover').addClass('alert-popover');
// });
// $('.alert-placeholder').mouseleave(function(){
// $('.alert-popover').remove()
// });
let phoneStr = '';
let formattedStr = '';
let deleteMode = false;
const phoneInput = document.querySelector('#tel');
const defaultFormat = '+7({0}{1}{2}){3}{4}{5}-{6}{7}-{8}{9}';
// phoneInput.value = formatPhoneString();
// phoneInput.addEventListener('keydown', (e) => {
// if (e.key === 'Backspace')
// deleteMode = true;
// else
// deleteMode = false;
// });
//
// phoneInput.addEventListener('input', (e) => {
// if (deleteMode) {
// phoneInput.value = phoneInput.value;
// phoneStr = parsePhoneString(phoneInput.value.replace("+7", "").replace("-", ""));
// } else {
// if (e.inputType == 'insertText' && !isNaN(parseInt(e.data))) {
// if (phoneStr.length <= 9)
// phoneStr += e.data;
// }
// phoneInput.value = formatPhoneString();
// }
// });
function formatPhoneString() {
let strArr = phoneStr.split('');
formattedStr = defaultFormat;
for (let i = 0; i < strArr.length; i++) {
formattedStr = formattedStr.replace(`{${i}}`, strArr[i]);
}
if (formattedStr.indexOf('{') === -1)
{
return formattedStr;
}
else
{
return formattedStr.substring(0, formattedStr.indexOf('{'));
}
}
function parsePhoneString(str) {
return str.replace(' ', '').replace('(', '').replace(')', '').replace('-', '');
}
});