Исправлена обработка ошибок при создании временного комплекта
- Перемещена функция fillFormWithKit в начало обработчика для правильного hoisting - Добавлена валидация данных комплекта перед заполнением формы - Добавлены проверки наличия элементов формы 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <noreply@anthropic.com>
This commit is contained in:
@@ -774,6 +774,47 @@ document.addEventListener('DOMContentLoaded', function() {
|
|||||||
})
|
})
|
||||||
.then(data => {
|
.then(data => {
|
||||||
console.log('Response data:', data);
|
console.log('Response data:', data);
|
||||||
|
|
||||||
|
// Функция заполнения формы данными комплекта
|
||||||
|
function fillFormWithKit(form, kitData) {
|
||||||
|
if (!kitData || !kitData.kit_id || !kitData.kit_name || !kitData.kit_price) {
|
||||||
|
console.error('Invalid kit data:', kitData);
|
||||||
|
alert('Ошибка: неверные данные комплекта');
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
// Устанавливаем значения для комплекта
|
||||||
|
const kitSelect = form.querySelector('.select2-order-item');
|
||||||
|
const quantityInput = form.querySelector('[name$="-quantity"]');
|
||||||
|
const priceInput = form.querySelector('[name$="-price"]');
|
||||||
|
|
||||||
|
if (!kitSelect) {
|
||||||
|
console.error('Kit select not found in form');
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
// Используем Select2 API для добавления опции
|
||||||
|
const newOption = new Option(kitData.kit_name, `kit_${kitData.kit_id}`, true, true);
|
||||||
|
$(kitSelect).append(newOption).trigger('change');
|
||||||
|
|
||||||
|
// Устанавливаем количество и цену
|
||||||
|
if (quantityInput) quantityInput.value = '1';
|
||||||
|
if (priceInput) {
|
||||||
|
priceInput.value = kitData.kit_price;
|
||||||
|
priceInput.dataset.originalPrice = kitData.kit_price;
|
||||||
|
}
|
||||||
|
|
||||||
|
// Явно вызываем событие select2:select для запуска автосохранения
|
||||||
|
$(kitSelect).trigger('select2:select', {
|
||||||
|
params: {
|
||||||
|
data: {
|
||||||
|
id: `kit_${kitData.kit_id}`,
|
||||||
|
text: kitData.kit_name
|
||||||
|
}
|
||||||
|
}
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
if (data.success) {
|
if (data.success) {
|
||||||
// Закрываем модальное окно
|
// Закрываем модальное окно
|
||||||
const modal = bootstrap.Modal.getInstance(tempKitModal);
|
const modal = bootstrap.Modal.getInstance(tempKitModal);
|
||||||
@@ -807,35 +848,6 @@ document.addEventListener('DOMContentLoaded', function() {
|
|||||||
fillFormWithKit(targetForm, data);
|
fillFormWithKit(targetForm, data);
|
||||||
}
|
}
|
||||||
|
|
||||||
// Функция заполнения формы данными комплекта
|
|
||||||
function fillFormWithKit(form, kitData) {
|
|
||||||
// Устанавливаем значения для комплекта
|
|
||||||
const kitSelect = form.querySelector('.select2-order-item');
|
|
||||||
const quantityInput = form.querySelector('[name$="-quantity"]');
|
|
||||||
const priceInput = form.querySelector('[name$="-price"]');
|
|
||||||
|
|
||||||
// Используем Select2 API для добавления опции
|
|
||||||
const newOption = new Option(kitData.kit_name, `kit_${kitData.kit_id}`, true, true);
|
|
||||||
$(kitSelect).append(newOption).trigger('change');
|
|
||||||
|
|
||||||
// Устанавливаем количество и цену
|
|
||||||
if (quantityInput) quantityInput.value = '1';
|
|
||||||
if (priceInput) {
|
|
||||||
priceInput.value = kitData.kit_price;
|
|
||||||
priceInput.dataset.originalPrice = kitData.kit_price;
|
|
||||||
}
|
|
||||||
|
|
||||||
// Явно вызываем событие select2:select для запуска автосохранения
|
|
||||||
$(kitSelect).trigger('select2:select', {
|
|
||||||
params: {
|
|
||||||
data: {
|
|
||||||
id: `kit_${kitData.kit_id}`,
|
|
||||||
text: kitData.kit_name
|
|
||||||
}
|
|
||||||
}
|
|
||||||
});
|
|
||||||
}
|
|
||||||
|
|
||||||
// Очищаем форму модального окна
|
// Очищаем форму модального окна
|
||||||
document.getElementById('temp-kit-name').value = '';
|
document.getElementById('temp-kit-name').value = '';
|
||||||
document.getElementById('temp-kit-description').value = '';
|
document.getElementById('temp-kit-description').value = '';
|
||||||
|
|||||||
Reference in New Issue
Block a user