Исправлена логика продажи витринных комплектов через POS

- Добавлена специальная обработка витринных комплектов в сигнале update_reservation_on_item_change:
  * При создании OrderItem с витринным комплектом привязываются существующие витринные резервы компонентов
  * Не создаются новые резервы на уровне комплекта

- Исправлена логика создания Sale для комплектов в сигнале create_sale_on_order_completion:
  * Для комплектов (витринных и обычных) создаются Sale для каждого компонента через резервы
  * Используется FIFO-списание для компонентов
  * Предотвращена ошибка передачи ProductKit в поле Reservation.product

Fixes: Cannot assign ProductKit to Reservation.product field
Fixes: Не удалось создать Sale для заказа с витринным комплектом
This commit is contained in:
2025-12-08 17:56:47 +03:00
parent 0fe888e405
commit 3ef2a19537
6 changed files with 157 additions and 26 deletions

View File

@@ -288,8 +288,12 @@ class TenantRegistrationAdmin(admin.ModelAdmin):
)
logger.info(f"Тенант создан: {client.id}")
# Создаем домен (для локальной разработки используем localhost)
domain_name = f"{registration.schema_name}.localhost"
# Создаем домен (динамически определяется из настроек)
# Локально: schema_name.localhost:8000
# Продакшен: schema_name.mix.smaa.by
from django.conf import settings
domain_base = settings.TENANT_DOMAIN_BASE
domain_name = f"{registration.schema_name}.{domain_base}"
logger.info(f"Создание домена: {domain_name}")
domain = Domain.objects.create(
domain=domain_name,