diff --git a/myproject/pos/static/pos/js/terminal.js b/myproject/pos/static/pos/js/terminal.js index 2842a66..cd38774 100644 --- a/myproject/pos/static/pos/js/terminal.js +++ b/myproject/pos/static/pos/js/terminal.js @@ -285,9 +285,200 @@ document.getElementById('clearCart').onclick = clearCart; // Кнопка "На витрину" - функционал будет добавлен позже document.getElementById('addToShowcaseBtn').onclick = () => { - alert('Функционал "На витрину" будет реализован позже'); + openCreateTempKitModal(); }; +// Функция открытия модального окна для создания временного комплекта +async function openCreateTempKitModal() { + // Проверяем что корзина не пуста + if (cart.size === 0) { + alert('Корзина пуста. Добавьте товары перед созданием комплекта.'); + return; + } + + // Проверяем что в корзине только товары (не комплекты) + let hasKits = false; + for (const [cartKey, item] of cart) { + if (item.type === 'kit') { + hasKits = true; + break; + } + } + + if (hasKits) { + alert('В корзине есть комплекты. Для витрины добавляйте только отдельные товары.'); + return; + } + + // Генерируем название по умолчанию + const now = new Date(); + const defaultName = `Витрина — ${now.toLocaleDateString('ru-RU')} ${now.toLocaleTimeString('ru-RU', {hour: '2-digit', minute: '2-digit'})}`; + document.getElementById('tempKitName').value = defaultName; + + // Загружаем список витрин + await loadShowcases(); + + // Заполняем список товаров из корзины + renderTempKitItems(); + + // Открываем модальное окно + const modal = new bootstrap.Modal(document.getElementById('createTempKitModal')); + modal.show(); +} + +// Загрузка списка витрин +async function loadShowcases() { + try { + const response = await fetch('/pos/api/get-showcases/'); + const data = await response.json(); + + const select = document.getElementById('showcaseSelect'); + select.innerHTML = ''; + + if (data.success && data.showcases.length > 0) { + data.showcases.forEach(showcase => { + const option = document.createElement('option'); + option.value = showcase.id; + option.textContent = `${showcase.name} (${showcase.warehouse_name})`; + select.appendChild(option); + }); + } else { + select.innerHTML = ''; + } + } catch (error) { + console.error('Error loading showcases:', error); + alert('Ошибка загрузки витрин'); + } +} + +// Отображение товаров из корзины в модальном окне +function renderTempKitItems() { + const container = document.getElementById('tempKitItemsList'); + container.innerHTML = ''; + + let estimatedTotal = 0; + + cart.forEach((item, cartKey) => { + // Только товары (не комплекты) + if (item.type !== 'product') return; + + const itemDiv = document.createElement('div'); + itemDiv.className = 'd-flex justify-content-between align-items-center mb-2 pb-2 border-bottom'; + itemDiv.innerHTML = ` +