diff --git a/myproject/inventory/signals.py b/myproject/inventory/signals.py index b5cff78..5113eaf 100644 --- a/myproject/inventory/signals.py +++ b/myproject/inventory/signals.py @@ -365,7 +365,7 @@ def create_sale_on_order_completion(sender, instance, created, **kwargs): sale = SaleProcessor.create_sale( product=reservation.product, warehouse=warehouse, - quantity=reservation.quantity, + quantity=reservation.quantity_base or reservation.quantity, # Используем quantity_base! sale_price=component_sale_price, order=instance, document_number=instance.order_number @@ -373,7 +373,7 @@ def create_sale_on_order_completion(sender, instance, created, **kwargs): sales_created.append(sale) logger.info( f"✓ Sale создан для компонента комплекта '{kit.name}': " - f"{reservation.product.name} - {reservation.quantity} шт." + f"{reservation.product.name} - {reservation.quantity_base or reservation.quantity} шт. (базовых единиц)" ) except ValueError as e: logger.error( @@ -406,8 +406,8 @@ def create_sale_on_order_completion(sender, instance, created, **kwargs): ).exclude(status='converted_to_sale').first() if item_reservation: - # Используем quantity из резерва (уже в базовых единицах) - sale_quantity = item_reservation.quantity + # Используем quantity_base из резерва (всегда в базовых единицах) + sale_quantity = item_reservation.quantity_base or item_reservation.quantity else: # Fallback: используем quantity_in_base_units из OrderItem sale_quantity = item.quantity_in_base_units if item.quantity_in_base_units else Decimal(str(item.quantity))