feat: add order form template HTML.

This commit is contained in:
2026-01-18 18:45:34 +03:00
parent 1400514fd3
commit b31961f939

View File

@@ -1877,7 +1877,7 @@ document.addEventListener('DOMContentLoaded', function() {
// Функция заполнения формы данными комплекта
function fillFormWithKit(form, kitData) {
if (!kitData || !kitData.kit_id || !kitData.kit_name || !kitData.kit_price) {
if (!kitData || !kitData.kit_id || !kitData.kit_name || kitData.kit_price === undefined) {
console.error('Invalid kit data:', kitData);
alert('Ошибка: неверные данные комплекта');
return;
@@ -1888,6 +1888,11 @@ document.addEventListener('DOMContentLoaded', function() {
const quantityInput = form.querySelector('[name$="-quantity"]');
const priceInput = form.querySelector('[name$="-price"]');
// ВАЖНО: Находим скрытые поля для product и product_kit
const productField = form.querySelector('[name$="-product"]');
const kitField = form.querySelector('[name$="-product_kit"]');
const isCustomPriceField = form.querySelector('[name$="-is_custom_price"]');
if (!kitSelect) {
console.error('Kit select not found in form');
return;
@@ -1895,7 +1900,17 @@ document.addEventListener('DOMContentLoaded', function() {
// Используем Select2 API для добавления опции
const newOption = new Option(kitData.kit_name, `kit_${kitData.kit_id}`, true, true);
$(kitSelect).append(newOption);
$(kitSelect).append(newOption).trigger('change');
// КЛЮЧЕВОЕ ИСПРАВЛЕНИЕ: Устанавливаем скрытые поля напрямую
// Это комплект, поэтому очищаем product и устанавливаем product_kit
if (productField) productField.value = '';
if (kitField) kitField.value = kitData.kit_id;
console.log('[fillFormWithKit] Установлены скрытые поля:', {
product: productField ? productField.value : 'not found',
product_kit: kitField ? kitField.value : 'not found'
});
// Устанавливаем количество и цену
if (quantityInput) quantityInput.value = '1';
@@ -1904,6 +1919,22 @@ document.addEventListener('DOMContentLoaded', function() {
priceInput.dataset.originalPrice = kitData.kit_price;
}
// Сбрасываем флаг кастомной цены
if (isCustomPriceField) {
isCustomPriceField.value = 'false';
}
// Скрываем единицы продажи для комплектов (у комплектов их нет)
const salesUnitContainer = form.querySelector('.sales-unit-container');
if (salesUnitContainer) {
salesUnitContainer.style.display = 'none';
}
// Обновляем сумму товаров
if (typeof window.updateOrderItemsTotal === 'function') {
window.updateOrderItemsTotal();
}
// Явно вызываем событие select2:select для запуска автосохранения
$(kitSelect).trigger('select2:select', {
params: {