feat: add order form template HTML.
This commit is contained in:
@@ -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: {
|
||||
|
||||
Reference in New Issue
Block a user