Исправлено добавление временного комплекта в существующую пустую форму
Временный комплект теперь заполняет первую пустую форму товара вместо создания новой. Это позволяет корректно сохранять комплект при автосохранении. 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <noreply@anthropic.com>
This commit is contained in:
@@ -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 = '';
|
||||||
|
|||||||
Reference in New Issue
Block a user