feat(discounts, orders): рефакторинг системы скидок - единый источник правды
- Добавлен combine_mode в форму создания/редактирования скидок - Добавлена колонка "Объединение" в список скидок с иконками - Добавлен фильтр по режиму объединения скидок - Добавлена валидация: только одна exclusive скидка на заказ - Удалены дублирующие поля из Order и OrderItem: - applied_discount, applied_promo_code, discount_amount - Скидки теперь хранятся только в DiscountApplication - Добавлены свойства для обратной совместимости Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
This commit is contained in:
@@ -1573,11 +1573,6 @@ def pos_checkout(request):
|
||||
discount_amount = min(discount_value, order.subtotal)
|
||||
discount_name = f'Произвольная скидка {discount_value} руб.'
|
||||
|
||||
order.discount_amount = discount_amount
|
||||
order.applied_promo_code = discount_name # Сохраняем название в поле промокода
|
||||
order.save(update_fields=['discount_amount', 'applied_promo_code'])
|
||||
order.calculate_total()
|
||||
|
||||
# Создаем запись о применении в истории скидок
|
||||
from discounts.models import DiscountApplication
|
||||
DiscountApplication.objects.create(
|
||||
@@ -1589,6 +1584,9 @@ def pos_checkout(request):
|
||||
customer=customer,
|
||||
applied_by=request.user
|
||||
)
|
||||
|
||||
# Пересчитываем total_amount (использует DiscountApplication)
|
||||
order.calculate_total()
|
||||
elif manual_discount_id:
|
||||
from discounts.services.applier import DiscountApplier
|
||||
from discounts.models import Discount
|
||||
|
||||
Reference in New Issue
Block a user