diff --git a/myproject/orders/templates/orders/order_form.html b/myproject/orders/templates/orders/order_form.html index a4edb9c..d5795bd 100644 --- a/myproject/orders/templates/orders/order_form.html +++ b/myproject/orders/templates/orders/order_form.html @@ -779,32 +779,52 @@ document.addEventListener('DOMContentLoaded', function() { const modal = bootstrap.Modal.getInstance(tempKitModal); modal.hide(); - // Добавляем комплект в заказ через клик на кнопку добавления формы - const addButton = document.getElementById('add-item-btn'); - addButton.click(); + // Ищем существующую пустую форму или создаем новую + const forms = container.querySelectorAll('.order-item-form'); + let targetForm = null; - // Небольшая задержка, чтобы форма полностью добавилась - setTimeout(function() { - // Получаем последнюю добавленную форму - const forms = container.querySelectorAll('.order-item-form'); - const lastForm = forms[forms.length - 1]; + // Ищем первую пустую форму + 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'); + addButton.click(); + + // Небольшая задержка для создания формы + setTimeout(function() { + const allForms = container.querySelectorAll('.order-item-form'); + targetForm = allForms[allForms.length - 1]; + fillFormWithKit(targetForm, data); + }, 100); + } else { + fillFormWithKit(targetForm, data); + } + + // Функция заполнения формы данными комплекта + function fillFormWithKit(form, kitData) { // Устанавливаем значения для комплекта - const kitSelect = lastForm.querySelector('.select2-order-item'); - const quantityInput = lastForm.querySelector('[name$="-quantity"]'); - const priceInput = lastForm.querySelector('[name$="-price"]'); + 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(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'); // Устанавливаем количество и цену if (quantityInput) quantityInput.value = '1'; if (priceInput) { - priceInput.value = data.kit_price; - priceInput.dataset.originalPrice = data.kit_price; + priceInput.value = kitData.kit_price; + priceInput.dataset.originalPrice = kitData.kit_price; } - }, 100); + } // Очищаем форму модального окна document.getElementById('temp-kit-name').value = '';