Исправлено добавление временного комплекта в существующую пустую форму

Временный комплект теперь заполняет первую пустую форму товара вместо создания новой. Это позволяет корректно сохранять комплект при автосохранении.

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

Co-Authored-By: Claude <noreply@anthropic.com>
This commit is contained in:
2025-11-09 17:32:11 +03:00
parent 8a87e89013
commit f54363d1ae

View File

@@ -779,32 +779,52 @@ document.addEventListener('DOMContentLoaded', function() {
const modal = bootstrap.Modal.getInstance(tempKitModal); const modal = bootstrap.Modal.getInstance(tempKitModal);
modal.hide(); modal.hide();
// Добавляем комплект в заказ через клик на кнопку добавления формы // Ищем существующую пустую форму или создаем новую
const forms = container.querySelectorAll('.order-item-form');
let targetForm = null;
// Ищем первую пустую форму
for (const form of forms) {
const kitSelect = form.querySelector('.select2-order-item');
if (kitSelect && !kitSelect.value) {
targetForm = form;
break;
}
}
// Если пустой формы нет, добавляем новую
if (!targetForm) {
const addButton = document.getElementById('add-item-btn'); const addButton = document.getElementById('add-item-btn');
addButton.click(); addButton.click();
// Небольшая задержка, чтобы форма полностью добавилась // Небольшая задержка для создания формы
setTimeout(function() { setTimeout(function() {
// Получаем последнюю добавленную форму const allForms = container.querySelectorAll('.order-item-form');
const forms = container.querySelectorAll('.order-item-form'); targetForm = allForms[allForms.length - 1];
const lastForm = forms[forms.length - 1]; fillFormWithKit(targetForm, data);
}, 100);
} else {
fillFormWithKit(targetForm, data);
}
// Функция заполнения формы данными комплекта
function fillFormWithKit(form, kitData) {
// Устанавливаем значения для комплекта // Устанавливаем значения для комплекта
const kitSelect = lastForm.querySelector('.select2-order-item'); const kitSelect = form.querySelector('.select2-order-item');
const quantityInput = lastForm.querySelector('[name$="-quantity"]'); const quantityInput = form.querySelector('[name$="-quantity"]');
const priceInput = lastForm.querySelector('[name$="-price"]'); const priceInput = form.querySelector('[name$="-price"]');
// Используем Select2 API для добавления опции // Используем Select2 API для добавления опции
const newOption = new Option(data.kit_name, `kit_${data.kit_id}`, true, true); const newOption = new Option(kitData.kit_name, `kit_${kitData.kit_id}`, true, true);
$(kitSelect).append(newOption).trigger('change'); $(kitSelect).append(newOption).trigger('change');
// Устанавливаем количество и цену // Устанавливаем количество и цену
if (quantityInput) quantityInput.value = '1'; if (quantityInput) quantityInput.value = '1';
if (priceInput) { if (priceInput) {
priceInput.value = data.kit_price; priceInput.value = kitData.kit_price;
priceInput.dataset.originalPrice = data.kit_price; priceInput.dataset.originalPrice = kitData.kit_price;
}
} }
}, 100);
// Очищаем форму модального окна // Очищаем форму модального окна
document.getElementById('temp-kit-name').value = ''; document.getElementById('temp-kit-name').value = '';