Исправлены 4 проблемы: 1. Расчёт цены первого товара - улучшена валидация в getProductPrice и calculateFinalPrice 2. Отображение actual_price в Select2 вместо обычной цены 3. Количество по умолчанию = 1 для новых форм компонентов 4. Auto-select текста при клике на поле количества для удобства редактирования Изменённые файлы: - products/forms.py: добавлен __init__ в KitItemForm для quantity.initial = 1 - products/templates/includes/select2-product-init.html: обновлена formatSelectResult - products/templates/productkit_create.html: добавлен focus handler для auto-select - products/templates/productkit_edit.html: добавлен focus handler для auto-select 🤖 Generated with Claude Code Co-Authored-By: Claude <noreply@anthropic.com>
37 lines
1.3 KiB
Python
37 lines
1.3 KiB
Python
"""
|
|
Сервис для проверки доступности комплектов.
|
|
"""
|
|
|
|
|
|
class KitAvailabilityChecker:
|
|
"""
|
|
Проверяет доступность комплектов на основе остатков товаров.
|
|
"""
|
|
|
|
@staticmethod
|
|
def check_availability(kit, stock_manager=None):
|
|
"""
|
|
Проверяет доступность всего комплекта.
|
|
|
|
Комплект доступен, если для каждой позиции в комплекте
|
|
есть хотя бы один доступный вариант товара.
|
|
|
|
Args:
|
|
kit (ProductKit): Комплект для проверки
|
|
stock_manager: Объект управления складом (если не указан, используется стандартный)
|
|
|
|
Returns:
|
|
bool: True, если комплект полностью доступен, иначе False
|
|
"""
|
|
from ..utils.stock_manager import StockManager
|
|
|
|
if stock_manager is None:
|
|
stock_manager = StockManager()
|
|
|
|
for kit_item in kit.kit_items.all():
|
|
best_product = kit_item.get_best_available_product(stock_manager)
|
|
if not best_product:
|
|
return False
|
|
|
|
return True
|