retailCRM Документация

Валидация

Валидация предназначена для создания дополнительных проверок изменений заказов и клиентов, которые делает пользователь в системе. Проверки применяются не только при редактировании в карточке заказа/клиента, но в групповых операциях.

В условии задается логическое выражение, в случае истинности которого действие будет отменено, а пользователь получит сообщение об ошибке.

В условии можно работать с объектом, над которым производится действие (это order или customer), а также с объектом changeSet (тип Change\EntityChangeSet), в котором содержится информация об изменяемых полях. Вы можете почитать подробнее о changeSet.

В некоторых случаях в валидации требуется проверить некоторые атрибуты пользователя, который изменяет данные в заказе/клиенте. Например, проверить, что пользователь входит в определенную группу. Получить пользователя, меняющего данные, можно через функцию user().

Примеры

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

(changeSet.isCreate() and order.getPaymentStatus()) or
(changeSet.isUpdate() and changeSet.hasChangedField('payment_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')

Редакция от 21.12.2016 11:50