1203 lines
48 KiB
JavaScript
1203 lines
48 KiB
JavaScript
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.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(!(validateEmail($('#email').val()))){
|
||
show_error('Введите корректный Email', 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 ($('#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(!(validate_length($('#passport').val(), 11)))
|
||
{
|
||
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;
|
||
}
|
||
|
||
// Добавление значений с чекбоксов (годы)
|
||
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(!(validateEmail($('#email1').val()))){
|
||
show_error('Введите корректный Email', false);
|
||
$(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('-', '');
|
||
}
|
||
});
|
||
|
||
|