refactor(orders): relax delivery address and date requirements for non-draft orders

- Updated order creation and update logic to allow saving orders without a delivery address or date, regardless of order status.
- Removed strict validation for delivery fields in the Delivery model, enabling more flexible order handling.
- Adjusted order form to reflect changes in required fields for delivery information.
This commit is contained in:
2026-01-27 14:19:33 +03:00
parent 2aed6f60e5
commit c80e2a5eca
3 changed files with 47 additions and 91 deletions

View File

@@ -132,35 +132,10 @@ class Delivery(models.Model):
})
return
# Для не-черновиков полная валидация
# Проверка: дата доставки обязательна
if not self.delivery_date:
raise ValidationError({
'delivery_date': 'Для не-черновиков дата доставки обязательна'
})
# Проверка: для курьерской доставки должен быть адрес
if self.delivery_type == self.DELIVERY_TYPE_COURIER:
if not self.address:
raise ValidationError({
'address': 'Для курьерской доставки необходимо указать адрес'
})
if self.pickup_warehouse:
raise ValidationError({
'pickup_warehouse': 'Для курьерской доставки склад не указывается'
})
# Проверка: для самовывоза должен быть склад
if self.delivery_type == self.DELIVERY_TYPE_PICKUP:
if not self.pickup_warehouse:
raise ValidationError({
'pickup_warehouse': 'Для самовывоза необходимо указать склад'
})
if self.address:
raise ValidationError({
'address': 'Для самовывоза адрес не указывается'
})
# Для не-черновиков ранее действовала строгая валидация даты и адреса.
# В рамках новой логики разрешаем сохранять заказы в любом статусе без адреса
# и без обязательной даты доставки. Сохраняем только базовые проверки
# непротиворечивости данных.
# Проверка: время "до" не может быть раньше времени "от" (равные времена разрешены для POS)
if self.time_from and self.time_to and self.time_from > self.time_to: