Добавлен расчёт и отображение доступного количества комплектов
- Добавлен метод calculate_available_quantity() в модель ProductKit для точного расчёта максимального количества комплектов на основе свободных остатков компонентов - Обновлён метод check_availability() для использования нового расчёта (обратная совместимость) - Удалён устаревший сервис kit_availability.py Исправлено отображение остатков комплектов: - products_list.html: вместо прочерка показывается количество комплектов - catalog.html: добавлено отображение доступного количества комплектов с цветовой индикацией - POS terminal.js: в карточке товара показывается конкретное количество вместо общего 'В наличии' Обновлены представления: - ProductsListView: аннотирует комплекты атрибутом total_free - CatalogView: рассчитывает доступное количество для каждого комплекта - POS get_products(): убран хардкод, используется реальный расчёт по складу
This commit is contained in:
@@ -902,10 +902,22 @@ function renderProducts() {
|
||||
stock.style.color = '#28a745'; // Зелёный (достаточно)
|
||||
}
|
||||
} else {
|
||||
// Fallback для старых данных или комплектов
|
||||
stock.textContent = item.in_stock ? 'В наличии' : 'Под заказ';
|
||||
if (!item.in_stock) {
|
||||
stock.style.color = '#dc3545';
|
||||
// Комплекты: показываем доступное количество
|
||||
if (item.type === 'kit' && item.free_qty !== undefined) {
|
||||
const availableKits = parseFloat(item.free_qty) || 0;
|
||||
if (availableKits > 0) {
|
||||
stock.textContent = `В наличии: ${Math.floor(availableKits)} компл.`;
|
||||
stock.style.color = '#28a745'; // Зелёный
|
||||
} else {
|
||||
stock.textContent = 'Под заказ';
|
||||
stock.style.color = '#dc3545'; // Красный
|
||||
}
|
||||
} else {
|
||||
// Fallback для старых данных
|
||||
stock.textContent = item.in_stock ? 'В наличии' : 'Под заказ';
|
||||
if (!item.in_stock) {
|
||||
stock.style.color = '#dc3545';
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user