Исправлена ошибка создания временного комплекта из модального окна

Проблема:
- JavaScript вызывал несуществующую функцию addOrderItem()
- Это приводило к ошибке и комплект не добавлялся в заказ

Решение:
- Заменен вызов addOrderItem() на программный клик по кнопке добавления формы
- После добавления формы заполняем её данными созданного комплекта
- Добавлена очистка формы модального окна после успешного создания
- Улучшена обработка ошибок с детальным логированием

Изменения:
- Добавлено логирование статуса ответа и данных для отладки
- Добавлена проверка HTTP статуса перед парсингом JSON
- Реализовано корректное добавление комплекта в список позиций заказа
- Добавлена очистка полей модального окна после создания

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
This commit is contained in:
2025-11-08 16:23:32 +03:00
parent df3a951beb
commit 72a0397a4f

View File

@@ -672,15 +672,52 @@ document.addEventListener('DOMContentLoaded', function() {
components: components components: components
}) })
}) })
.then(response => response.json()) .then(response => {
console.log('Response status:', response.status);
if (!response.ok) {
throw new Error(`HTTP error! status: ${response.status}`);
}
return response.json();
})
.then(data => { .then(data => {
console.log('Response data:', data);
if (data.success) { if (data.success) {
// Закрываем модальное окно // Закрываем модальное окно
const modal = bootstrap.Modal.getInstance(tempKitModal); const modal = bootstrap.Modal.getInstance(tempKitModal);
modal.hide(); modal.hide();
// Добавляем созданный комплект в форму заказа // Добавляем комплект в заказ через клик на кнопку добавления формы
addOrderItem(`kit_${data.kit_id}`, 'kit', data.kit_name, data.kit_price, 1); const addButton = document.getElementById('add-order-item-btn');
addButton.click();
// Получаем последнюю добавленную форму
const forms = container.querySelectorAll('.order-item-form');
const lastForm = forms[forms.length - 1];
// Устанавливаем значения для комплекта
const kitSelect = lastForm.querySelector('.select2-order-item');
const quantityInput = lastForm.querySelector('[name$="-quantity"]');
const priceInput = lastForm.querySelector('[name$="-price"]');
// Добавляем опцию в select
const option = new Option(data.kit_name, `kit_${data.kit_id}`, true, true);
kitSelect.appendChild(option);
// Триггерим изменение для Select2
$(kitSelect).trigger('change');
// Устанавливаем количество и цену
if (quantityInput) quantityInput.value = '1';
if (priceInput) {
priceInput.value = data.kit_price;
priceInput.dataset.originalPrice = data.kit_price;
}
// Очищаем форму модального окна
document.getElementById('temp-kit-name').value = '';
document.getElementById('temp-kit-description').value = '';
tempKitComponentsContainer.innerHTML = '';
tempKitComponentIndex = 0;
// Показываем успешное сообщение // Показываем успешное сообщение
alert(`Комплект "${data.kit_name}" создан и добавлен в заказ!`); alert(`Комплект "${data.kit_name}" создан и добавлен в заказ!`);
@@ -689,8 +726,9 @@ document.addEventListener('DOMContentLoaded', function() {
} }
}) })
.catch(error => { .catch(error => {
console.error('Error:', error); console.error('Full error:', error);
alert('Произошла ошибка при создании комплекта'); console.error('Error message:', error.message);
alert('Произошла ошибка при создании комплекта: ' + error.message);
}); });
}); });
}); });