Особенности формирования валидации
Скопировать ссылку на статью
Скопировано

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

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

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

changeSet.isUpdate() and changeSet.hasChangedField('payments.status')

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

    1. Запрет менять статус оплаты заказа
changeSet.isUpdate() and changeSet.hasChangedField('payments.status')
    1. Дата доставки должна быть сегодняшней датой или позднее
order.deliveryDate < date('now 00:00:00') and (
(changeSet.isCreate() and order.deliveryDate) or
(changeSet.isUpdate() and changeSet.hasChangedField('delivery_date'))
)
    1. Отгрузку может выполнять только пользователь группы Логист

Примечание

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

changeSet.hasChangedField('shipped') and not user().hasGroup('logist')
    1. Пользователь может менять только определенные поля
changeSet.hasChangesExcluding(['status', 'first_name', 'last_name'])
Благодарим за отзыв.
Была ли статья полезна?
Нет
  • Рекомендации не помогли
  • Нет ответа на мой вопрос
  • Текст трудно понять
  • Не нравится описанный функционал
Да
Предыдущая статья
Работа с товарами в триггерах, валидации и типах цен
Состав заказа является массивом данных, соответственно, работа с ним ведется с помощью специальных фильтров созданных в PipeLanguage. В статье разберем, как работать с фильтрами в типах цен, триггерах и валидации и в разрезе товаров.
Следующая статья
Проверка срабатывания триггеров и валидации
При необходимости проверить триггер или валидацию на корректную работу вы можете воспользоваться журналом действий, в котором отображается каждое срабатывание и, в случае возникновения, ошибки с подробным описанием.
Не нашли ответа на свой вопрос?
Получить помощь
Не нашли ответ на вопрос?
Специалист службы поддержки готов помочь!

Обратная связь

Нажимая на кнопку, вы соглашаетесь с условиями пользовательского соглашения

Сообщение отправлено!

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

Сообщение не отправлено!

Произошла непредвиденная ошибка. Мы уже уведомлены об инциденте и в ближайшее время всё починим.