Рубрики
Блог

10 готовых примеров настройки валидации

В этой статье мы рассказали как держать менеджеров в “ежовых руковицах”, шутим не менеджеров. Сохраняйте, делитесь или ставьте нам плюсики, мы будем очень рады. Приятного чтения.

1. Запрет менять статус оплаты заказа

Условие:

changeSet.isUpdate() and changeSet.hasChangedField(‘payments.status’)

2. Дата доставки должна быть сегодняшней датой или позднее

Условие:

order.getDeliveryDate() < date(‘now 00:00:00’) and ( (changeSet.isCreate() and order.getDeliveryDate()) or (changeSet.isUpdate() and changeSet.hasChangedField(‘delivery_date’)) )

3. Отгрузку может выполнять только пользователь группы Логист

Примечание По умолчанию в системе нет группы Логист, но вы можете создавать нужные вам группы пользователей.

Условие:

changeSet.hasChangedField(‘shipped’) and not user().hasGroup(‘logist’)

4. Пользователь может менять только определенные поля

Условие:

changeSet.hasChangesExcluding([‘status’, ‘first_name’, ‘last_name’])

5. Менеджеру нельзя менять статус оплаты

Условие:

changeSet.hasChangedField(“payments.status”) and user().hasGroup(“manager”)

6. Нельзя сохранить заказ без указания способа оплаты

Условие:

(order.payments | length) < 1 and user().hasGroup(“manager”)

7. Сумма оплаты не совпадает с суммой заказа

Условие:

not (order.payments | reduce( (sum, x) => sum + x.amount ) == order.totalSumm) and user().hasGroup(“manager”)

8. Нельзя передавать на сборку неоплаченный заказ

Условие:

changeSet.hasChangedField(“status”) and changeSet.newValue(“status”).code == “assembly” and order.payments | contains(item => item.type.code == “bank-card” and not item.status.code == “paid”)

9. Нельзя передавать заказ на сборку, если не выбран способ доставки

Условие:

changeSet.hasChangedField(“status”) and changeSet.newValue(“status”).code == “assembly” and not order.deliveryType

10. Запрет сохранения без указания комментария к статусу

Условие:

order.status.code == “cancel” and not order.statusComment

Если же вам лень делать самим или у вас возникают трудности, то можете написать нам и мы сделаем в лучшем виде.

Вам тоже сделаем классно↓