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:
@@ -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:
|
||||
|
||||
Reference in New Issue
Block a user