Добавлен расчёт и отображение доступного количества комплектов
- Добавлен метод 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:
@@ -854,17 +854,20 @@ def get_items_api(request):
|
||||
if not image_url:
|
||||
image_url = None
|
||||
|
||||
# Рассчитываем доступное количество комплектов на текущем складе
|
||||
available_kits = k.calculate_available_quantity(warehouse=current_warehouse)
|
||||
|
||||
kits.append({
|
||||
'id': k.id,
|
||||
'name': k.name,
|
||||
'price': str(k.actual_price),
|
||||
'category_ids': [c.id for c in k.categories.all()],
|
||||
'in_stock': False, # Комплекты всегда "Под заказ"
|
||||
'in_stock': available_kits > 0, # Доступен если можно собрать хоть один комплект
|
||||
'sku': k.sku or '',
|
||||
'image': image_url,
|
||||
'type': 'kit',
|
||||
'free_qty': '0', # Строка для консистентности с товарами
|
||||
'free_qty_sort': 0 # Комплекты всегда внизу при сортировке
|
||||
'free_qty': str(available_kits), # Количество комплектов которые можно собрать
|
||||
'free_qty_sort': float(available_kits) # Для сортировки
|
||||
})
|
||||
|
||||
# Объединяем и сортируем по free_qty_sort DESC
|
||||
|
||||
Reference in New Issue
Block a user