Skip to main content

Валидация

Валидация для Название Символьный код Условие (код) Условие (текст) Сообщение Активность
Заказ [Fenix] Недозвон (клиент не выходит на связь) fenix-nedozvon-klient-ne-vihodit-na-svyaz changeSet.hasChangedField("status")
and
changeSet.getNewValue("status").getCode() == 'no-call'
and
(
 order.getPaymentStatus().getCode() == 'paid'
 or
 not order.getStatusComment()
)
Изменяется статус заказа
и
новый статус зказаза "Недозвон (Клиент не выходит на связь)"
и
(
Статус оплаты заказа "Оплачен"
или
нет Комментарий к последнему изменению статуса
)
Нельзя переводить в статус без комментария или с платежом со статусом "Оплачено" Да
Клиент BAD обязательнный комментарий bad-obyazatelnniy-kommentariy customer.bad
and (customer.getCustomField("bad_comment") == null)
Клиент плохой
И в карточке клиента не заполнен коммернарий к статусу "плохой"
Не заполнен комментарий BAD! Да
Заказ [Fenix] Адрес (в согласовано) fenix-adres-v-soglasovano changeSet.hasChangedField("status")
and
changeSet.getNewValue("status").getCode() == 'client-confirmed'
and
(user().hasGroup('manager') or user().hasGroup('manager-opt') or user().hasGroup('young_manager') or user().hasGroup('manager-reklama'))
and
 (
 order.getDeliveryAddress().getIndex()== null
 or
 order.getDeliveryAddress().getRegion()== null
 or
 order.getDeliveryAddress().getCity()== null
 or
 order.getDeliveryAddress().getStreet()== null
 )
and
 (
 order.getDeliveryAddress().getIndex()== null
 or
 order.getDeliveryAddress().getRegion()== null
 or
 order.getDeliveryAddress().getCity()== null
 or
 not order.getDeliveryAddress().getFullAddressString()
 )
and order.orderMethod.code not in ['wildberries','ozon','jandeks-market','sber-mega-market'] //способ овормления не WB или Ozon или ЯндексМаркет или СберМегаМаркет
and
not (
 user().hasGroup('director')
)
Изменяется статус заказа
И
новый статус заказа = "Согласован с клиентом"
И
пользователь находится в группе "Менеджер" ИЛИ "Менеджер ОПТ" или "Менеджер стажер" ИЛИ "Менеджер реклама"
И
(
Индекс адреса доставки - пустой
ИЛИ
Регион адреса доставки - пустой
ИЛИ
Город адреса доставки - пустой
ИЛИ
Улица адреса доставки - пустой
)
И
(
Индекс адреса доставки - пустой
ИЛИ
Регион адреса доставки - пустой
ИЛИ
Город адреса доставки - пустой
ИЛИ НЕ
Адрес доставки в строковом виде, собранный из полей
)
И
способ оформления не WB или Ozon или ЯндексМаркет или СберМегаМаркет
И НЕ
пользователь принадлежит к группе "Руководители" (исключение для этой группы)
Проверьте заполнен ли индекс, регион, город и улица (или адрес) Да
Заказ [Fenix] Блогеры, обязательность заполнения blogeri-obyazatelnost-zapolneniya changeSet.hasChangedField("status")
and
changeSet.getNewValue("status").getCode() == 'client-confirmed'
and
( not user().hasGroup('director'))
and
(
 order.getCustomfield('informerorder').getCode() == 'blogger'
 and
 order.getCustomfield('blogers') == null
)
Изменяется статус заказа
И
Новый статус заказа "Согласован с клиентом"
И
(НЕ пользователь принадлежит к группе "Руководитель" (исключение для данной группы)
И
(
Поле заказа "Откуда узнал о продукции" = "Блоггер"
И
Поле заказа "Блогер" - пустое
)
Выберите блогера из списка! Да
Заказ [Fenix] Бухгалтер fenix-buhgalter user().hasGroup('buh')
and not
(
user().hasGroup('rop')
 or
 user().hasGroup('director')
 or
 order.site.code == 'garti-pr'
)
and
(
( not changeSet.hasChangedField("status")
and not
(
 changeSet.hasChangedField("payments")
 and
changeSet.getNewValue("payments") == null
and
 changeSet.getOldValue("payments").getStatus().getCode() == 'paid'  )
 and not
 changeSet.hasChangedField("payments")
and not
 changeSet.hasChangedField("payments.status")
 and not
changeSet.hasChangedField("payments.amount")
and
order.getStatus().getGroupCode() !== 'bukhgalteriia'  )
 or
 ( changeSet.hasChangedField("status")
 and
( ( changeSet.getOldValue("status").getGroupCode() !== 'bukhgalteriia'
or not
(changeSet.getNewValue("status").getCode() in ['chastichnyi-vozvrat-vypolnen','v-ozhidanii-vozvrata-oplaty']) )
 or
 ( changeSet.getOldValue("status").getCode() !== 'received'
 or  not
 (changeSet.getNewValue("status").getCode() in ['poteri']) ) ) ) ) 
Пользователь отностися к группе "Бухгалтер"
И НЕ
(
Пользователь отностися к группе "РОП"
или
Пользователь отностися к группе "Руководитель"
или
Магазин заказа не "Реклама"
)
И
(
(Не изменился статус заказа)
И НЕ
(
Изменились "Платежи"
И
Новое значение "Платежи" равно нулю
И
Старое значение "Платежи" = "Оплачен"
И НЕ
изменились "Платежи"
И НЕ
изменилися "Статус оплаты"
И НЕ
изменилась "Сумма платежа"
И
 статус заказа не отностися к группе статусов "Бухгалерия"
ИЛИ
Изменился статус
И
Старый статус не отностися к группе статусов "Бухгалерия"
ИЛИ НЕ
новое значение статуса заказа не в массиве Возврат ДС выполнен/В ожидании возврата оплаты
ИЛИ
Старый статус заказа "Принят клиентом"
ИЛИ НЕ
Новый стаус закза "Потери"
Вам недоступно редактирование заказа в этом статусе (Б) Нет
Заказ [Fenix] Бухгалтер - изменение заказа fenix-buhgalter-izmenenie-zakaza user().hasGroup('buh')
and not
(
user().hasGroup('rop')
 or
user().hasGroup('director')
 or
 order.site.code == 'garti-pr'
 )
 and
 (
changeSet.isCreate()
or
(
changeSet.isUpdate()
and not
changeSet.hasChangedField("status")
and
order.getStatus().getGroupCode() !== 'bukhgalteriia'
and
order.getStatus().getCode() != 'v-ozhidanii-oplaty'
)
or
(
changeSet.isUpdate()
and
order.getStatus().getGroupCode() === 'bukhgalteriia'
and
order.getStatus().getCode() == 'v-ozhidanii-oplaty'
and not
changeSet.hasChangedField("payments.status")
and not
changeSet.hasChangedField("payments.amount")
and not
changeSet.hasChangedField("payments")
)
or
(
changeSet.isUpdate()
and
(
order.getStatus().getGroupCode() === 'bukhgalteriia'
or
order.getStatus().getCode() == 'v-ozhidanii-oplaty'
)
and
changeSet.hasChangedField("payments")
and
changeSet.getNewValue("payments") == null
and
changeSet.getOldValue("payments").getStatus().getCode() == 'paid' )
 ) 
Пользователь отностися к группе "Бухгалтер"
И НЕ
Пользователь отностися к группе "РОП"
 или Пользователь отностися к группе "Руководитель"
или Магазин заказа не "Реклама"
Вам недоступно данное редактирование заказа (Б) Нет
Заказ [Fenix] Возврат fenix-vozvrat changeSet.hasChangedField("status")
and
changeSet.getNewValue("status").getCode() == 'vozvrat'
and
order.getPaymentStatus().getCode() == 'paid'
and not
order.customer.bad
Изменяется статус
И Новый статус "Возврат"
И Статус оплаты "Оплачен"
И НЕ Клиент заказа со статусом BAD
Нельзя перевести в статус, если: 1) платеж со статусом "Оплачено"; 2) клиент не со статусом "BAD". Да
Заказ [Fenix] возврат товара передан в доставку fenix-vozvrat-tovara-peredan-v-dostavku changeSet.hasChangedField("status")
and
changeSet.getNewValue("status").getCode() == "vozvrat-peredan-v-dostavku"
and
order.getCustomField('srok_vozvrata2') == null 
Изменяется статус
И
новый статус "Возврат передан в доставку"
И
Оплата срок возврата не заполнен 
Не заполнено поле "Предварительный срок возврата товара на склад" Да
Заказ [Fenix] время перезвона fenix-vremya-perezvona changeSet.hasChangedField("custom_perezvon_time") and not ( changeSet.getNewValue('custom_perezvon_time') matches('/^[0-1][0-9]|2[0-3]:[0-5][0-9]$/') ) and not ( user().hasGroup('director') )  Изменяется время перезвона И НЕ ( Новое значение времени перезвона содержит ('/^[0-1][0-9]|2[0-3]:[0-5][0-9]$/') ) И НЕ ( Пользователь относится к группе "Руководитель" )  Укажите время перезвона в формате ММ:СС Да
Заказ [Fenix] Доставляется fenix-dostavlyaetsya changeSet.hasChangedField("status") //Изменяется статус and changeSet.getNewValue("status").getCode() == 'send-to-delivery' // И новый статус "доставляется" and ( // И order.getDeliveryType() == null // Тип доставки пустой or // Или ( order.getDeliveryType().getCode() != 'self-delivery' //Тип доставки не равен "Самовывоз" and order.getDeliveryNetCost() == null // И Себестоимость доставки пустая ) ) and not (user().hasGroup('director')) // Исключение для группы руководитель and order.orderMethod.code not in ['wildberries','ozon','jandeks-market','sber-mega-market'] //способ овормления не WB или Ozon или ЯндексМаркет или СберМегаМаркет  Изменяется статус И И новый статус "Доставляется" И (И Тип доставки "Пустой" Или ( Тип доставки не равен "Самовывоз" И Себестоимость доставки пустая) ) И НЕ (Пользователь относится к группе "Руководитель") И способ овормления не WB или Ozon или ЯндексМаркет или СберМегаМаркет Обязательно заполните: тип доставки, трек номер, тариф, себестоимость доставки Да
Заказ [Fenix] Доставляется 2 fenix-dostavlyaetsya-2 ( changeSet.hasChangedField("status") and changeSet.getNewValue("status").getCode() == 'send-to-delivery' and (user().hasGroup('manager') or user().hasGroup('manager-opt') or user().hasGroup('young_manager') or user().hasGroup('manager-reklama') or user().hasGroup('rop') or user().hasGroup('star-manager')) and order.getCustomField("planneddate") == null ) and ( changeSet.hasChangedField("status") and changeSet.getNewValue("status").getCode() == 'send-to-delivery' and (user().hasGroup('manager') or user().hasGroup('manager-opt') or user().hasGroup('young_manager') or user().hasGroup('manager-reklama') or user().hasGroup('rop')) and order.getCustomField("neobh_data_dost") == null ) and not ( user().hasGroup('director') ) and order.orderMethod.code not in ['wildberries','ozon','jandeks-market'] //способ овормления не WB или Ozon или ЯндексМаркет  ( Изменяется статус И И новый статус "Доставляется" И (пользователь менеджер ИЛИ менеджер ОПТ ИЛИ менеджер стажер ИЛИ менеджер реклама ИЛИ РОП ИЛИ старший менеджер) И Плановая дата заказа не заполнена ) И ( Изменяется статус И И новый статус "Доставляется" И (пользователь менеджер ИЛИ менеджер ОПТ ИЛИ менеджер стажер ИЛИ менеджер реклама ИЛИ РОП) И Необходимая дата доставки заказа пустая ) И НЕ ( Пользователь относится к группе "Руководитель" ) И способ овормления не WB или Ozon или ЯндексМаркет Заполните поля: планируемую или необходимую дату доставки Да
Заказ [Fenix] Дубль fenix-dubl changeSet.hasChangedField("status") and changeSet.getNewValue("status").getCode() == 'double' and ( order.getPaymentStatus().getCode() == 'paid' or not order.getStatusComment() )  Изменяется статус И новый статус = 'double' И ( Статус оплаты = оплачено ИЛИ НЕ комментарий к статусу )  Нельзя переводить в статус без комментария или с платежом со статусом "Оплачено" Да
Заказ [Fenix] Если страна НЕ Россия, тип оплаты ТОЛЬКО: банковский перевод, PP, онлайн оплата, Robokassa fenix-esli-strana-ne-rossiya-tip-oplati-tolko-bank ( changeSet.isCreate() // заказ создается or // ИЛИ changeSet.isUpdate() //заказ изменяется ) and order.getCountry() != 'RU' //И ISO код страны не 'RU' (Россия) and order.getToPaySumm() == 0 //И сумма, оставшаяся к оплате = 0 and order.getPaymentType().getCode() != 'paypal' //И тип оплаты НЕ "PayPal" and order.getPaymentType().getCode() != 'bank-transfer'//И тип оплаты НЕ "Банковский перевод" and order.getPaymentType().getCode() != 'yakassa' //И тип оплаты НЕ "Онлайн оплата" and order.getPaymentType().getCode() != 'robokassa' //И тип оплаты НЕ "Robokassa"  (заказ создается ИЛИ заказ изменяется) И ISO код страны не 'RU' (Россия) И сумма, оставшаяся к оплате = 0 И тип оплаты НЕ "PayPal" И И тип оплаты НЕ "Банковский перевод" И тип оплаты НЕ "Онлайн оплата"  И тип оплаты НЕ "Robokassa" Если страна НЕ Россия, тип оплаты ТОЛЬКО: банковский перевод, PP, онлайн оплата, Robokassa. Да
Заказ [Fenix] Запрет на редактирование даты отгрузки не логистом fenix-zapret-na-redaktirovanie-dati-otgruzki-ne-lo changeSet.hasChangedField('shipment_date') and not ( user().hasGroup('logistician') or user().hasGroup('director') or user().hasGroup('rop') ) and order.orderMethod.code not in ['wildberries','ozon','jandeks-market','sber-mega-market'] //способ овормления не WB или Ozon или ЯндексМаркет или СберМегаМаркет  Изменяется дата отгрузки И НЕ ( Пользователь в группе "Логист" ИЛИ Пользователь относится к группе "Руководитель" ИЛИ РОП ) И способ овормления не WB или Ozon или ЯндексМаркет или СберМегаМаркет Дату отгрузки может указать только Логист Да
Заказ [Fenix] Запрет на редактирование типа доставки не логистом ban-orders-manager changeSet.hasChangedField('delivery_type') and not ( user().hasGroup('logistician') or user().hasGroup('rop') or user().hasGroup('director') or user().getId() == 51 or order.orderMethod.code == 'wildberries' or order.orderMethod.code == 'ozon' )  Изменяется тип доставки И НЕ ( Пользователь в группе "Логист" ИЛИ РОП ИЛИ Пользователь относится к группе "Руководитель" ИЛИ Идентификатор пользователя = 51 ИЛИ Способ оформления Wildberries ИЛИ  Способ оформления Ozon )  У Вас недостаточно прав для редактирования поля "Тип доставки" Да
Заказ [Fenix] Кладовщик( обновление заказа) fenix-kladovshchik-obnovlenie-zakaza user().hasGroup('stockman') and not ( user().hasGroup('rop') or user().hasGroup('director') ) and not changeSet.hasChangedField("status") and changeSet.isUpdate() and ( order.getStatus().getGroupCode() != 'assembling' and not (order.getStatus().getCode() in ['v-ozhidanii-na-sklade','assembling']) )  Пользователь воходит в группу ('stockman') И НЕ ( РОП ИЛИ Пользователь относится к группе "Руководитель" ) И НЕ Изменяется статус И заказ изменяется И ( Статус заказа не "сборочный" И НЕ (Статус заказа в ( "ожидании на складе", "сборочный" )  Вам недоступно обновление заказа в этом статусе (К) Да
Заказ [Fenix] Кладовщик (смена статуса) fenix-kladovshchik-smena-statusa user().hasGroup('stockman') and not ( user().hasGroup('rop') or user().hasGroup('director') ) and changeSet.hasChangedField("status") and ( ( changeSet.getOldValue("status").getCode() == 'send-to-assembling' and not (order.getStatus().getCode() in ['oshibka-v-soglasovanii','assembling']) ) or ( changeSet.getOldValue("status").getCode() == 'assembling' and not (order.getStatus().getCode() in ['oshibka-v-soglasovanii','waitingcourier','courier']) ) or ( changeSet.getOldValue("status").getCode() == 'waitingcourier' and not (order.getStatus().getCode() in ['oshibka-v-soglasovanii','delivering']) ) or ( changeSet.getOldValue("status").getCode() == 'garantiinyi-remont-v-rabote' and not (order.getStatus().getCode() in ['garantiinyi-remont-vypolnen']) ) or ( changeSet.getOldValue("status").getCode() == 'vozvrat-peredan-v-dostavku' and not (order.getStatus().getCode() in ['vozvrat-priniat']) ) or ( changeSet.getOldValue("status").getCode() == 'courier' and not (order.getStatus().getCode() in ['send-to-delivery']) ) or ( changeSet.getOldValue("status").getCode() == 'delivering' and not (order.getStatus().getCode() in ['send-to-delivery']) ) )  Пользователь воходит в группу ('stockman') И НЕ ( РОП ИЛИ Пользователь относится к группе "Руководитель" ) И Изменяется статус И ( ( старое значение статуса "отправлен в сборку" И НЕ Статус заказа в ("ошибка в согласовании", "Сборочный") ) ИЛИ ( Старое значение статуса заказа "Сборочный" И НЕ (Статус заказа в ("ошибка в согласовании", "ожидание курьера", "курьер") ) ИЛИ ( Старое значение статуса = "Ожидание курьера" И НЕ (Статус заказа в ("ошибка в согласовании", "Доставки") ) ИЛИ ( Старое значение статуса = "Гарантийный ремонт в работе" И НЕ (Статус заказа = "Гарантийный ремонт выполнен" ) ИЛИ ( Изменяется статус "Возврат передан в доставку" И НЕ (Статус заказа "Возврат принят" ) ИЛИ ( Изменяется статус заказа "Курьер" И НЕ (Статус заказа "Отправка - доставка" ) ИЛИ ( Изменяется статус "доставка" И НЕ (Статус заказа "Отправка - доставка" ) )  Вам недоступна смена статуса заказа в этом статусе (К -  смена статуса) Да
Заказ [Fenix] Комментарий к статусу "Потери"|"Купил на маркетплейсе" fenix-kommentariy-k-statusam changeSet.hasChangedField("status") //Если изменяется статус and changeSet.getNewValue("status").getCode() in ['poteri','bought-on-marketplace']//новый статус "Потери" или "Купил на маркетплейсе" and not order.getStatusComment() // И нет комментария к статусу  Если изменяется статус И новый статус "Потери" или "Купил на маркетплейсе" И нет комментария к статусу Не указан комментарий к статусу Да
Заказ [Fenix] Купил в другом месте fenix-kupil-v-drugom-meste changeSet.hasChangedField("status") and changeSet.getNewValue("status").getCode() == 'already-buyed' and ( order.getPaymentStatus().getCode() == 'paid' or not order.getStatusComment() )  Изменяется статус И  новый статус="Уже купленный" И ( Статус оплаты = оплачено ИЛИ НЕ комментарий к статусу )  Нельзя переводить в статус без комментария или с платежом со статусом "Оплачено" Да
Заказ [Fenix] Купил другой подарок fenix-kupil-drugoy-podarok changeSet.hasChangedField("status") and changeSet.getNewValue("status").getCode() == 'kupil-drugoi' and ( order.getPaymentStatus().getCode() == 'paid' or not order.getStatusComment() )  Изменяется статус И новый статус = 'Купил другой' И ( Статус оплаты = оплачено ИЛИ НЕ комментарий к статусу )  Нельзя переводить в статус без комментария или с платежом со статусом "Оплачено" Да
Заказ [Fenix] Логист (Обновление заказа) fenix-logist user().hasGroup('logistician') and not ( user().hasGroup('rop') or user().hasGroup('director') ) and ( changeSet.isUpdate() and not changeSet.hasChangedField("status") and not changeSet.hasChangedField("courier") and ( order.getStatus().getGroupCode() != 'approval' and not (order.getStatus().getCode() in ['received','send-to-delivery','courier','delivering','send-to-assembling','complete','ozhidaetpvz','v-ozhidanii-oplaty-1']) ) )  Пользователь в группе "Логист" И НЕ ( РОП ИЛИ Пользователь относится к группе "Руководитель" ) И ( заказ изменяется И НЕ Изменяется статус И НЕ Изменяется поле "Курьер" И ( Статус заказа не утвержден И НЕ (Статус заказа в ("получено", "отправить на доставку", "курьер", "доставка", "отправить на сборку", "завершить", "ожидаетпвз", "в ожидании оплаты-1") ) )  Вам недоступно редактирование заказа в этом статусе [Логист] Да
Заказ [Fenix]  Менеджер  (Изменение статуса) fenix-menedger-izmenenie-statusa ( user().hasGroup('manager') or user().hasGroup('manager-reklama') or user().hasGroup('star-manager') ) and not ( user().hasGroup('rop') or user().hasGroup('director') or order.site.code == 'garti-pr' ) and not changeSet.isCreate() and changeSet.hasChangedField("status") and not (changeSet.getNewValue("status").getGroupCode() in ['cancel','inoe']) and ( ( changeSet.getOldValue("status").getGroupCode() != 'oshibka-soglasovaniia' and not ( changeSet.getOldValue("status").getCode() in ['client-confirmed','received']) and changeSet.getOldValue("status").getGroupCode() != 'new' ) or ( changeSet.getOldValue("status").getGroupCode() == 'oshibka-soglasovaniia' and ( not (changeSet.getNewValue("status").getCode() in ['received','v-ozhidanii-vozvrata-oplaty','garantiinyi-remont-v-rabote','waiting']) and not (changeSet.getNewValue("status").getGroupCode() == 'approval') ) ) or ( changeSet.getOldValue("status").getCode() in ['client-confirmed','received'] and not (changeSet.getNewValue("status").getGroupCode() == 'oshibka-soglasovaniia') ) or ( changeSet.getOldValue("status").getGroupCode() == 'new' and ( not (changeSet.getNewValue("status").getCode() in ['no-call','nedozvon-1','nedozvon-2','nedozvon-3-sutki','client-confirmed','received']) and not (changeSet.getNewValue("status").getGroupCode() in ['new','oshibka-soglasovaniia']) ) ) )  ( пользователь менеджер ИЛИ менеджер реклама ИЛИ старший менеджер ) И НЕ ( РОП ИЛИ Пользователь относится к группе "Руководитель" ИЛИ магазин = 'garti-pr' ) И НЕ заказ создается И Изменяется статус И НЕ (получить новый статус в ['Отменен','Иное']) И ( ( Статус не "Ошибка в согласовании" И НЕ ( Изменяется старое значение статуса в ("Клиент подтвержден", "Получено") И Изменяется старое значение статуса не новый ) ИЛИ ( Изменяется старое значение статуса "Ошибка согласования" И ( НЕ (новый статус В ['получено", "в-ожидании-возврата-оплаты", "гарантийный ремонт-в-работе", "ожидание"]) И НЕ (новый статус= 'Утверждение') ) ) ИЛИ ( Изменяется старое значение статуса В ("Клиент подтвердил", "Получено") И НЕ (новый статус= 'Ошибка согласования') ) ИЛИ ( Изменяется старое значение статуса "Новый" И ( НЕ (новый статус В ["нет вызова", "недозвон-1", "недозвон-2", "недозвон-3-сутки", "клиент подтвержден", "получено"]) И НЕ (новый статус В ['Новый','Ошибка согласования']) ) ) )  Вам недоступна смена статуса заказа в этом статусе (М -  смена статуса) Да
Заказ [Fenix] Менеджер (Обновление заказа) fenix-menedger ( user().hasGroup('manager') or user().hasGroup('manager-opt') or user().hasGroup('manager-reklama') or user().hasGroup('star-manager') ) and not ( user().hasGroup('rop') or user().hasGroup('director') or order.site.code == 'garti-pr' ) and not changeSet.isCreate() and ( changeSet.isUpdate() and not changeSet.hasChangedField("status") and not (order.getStatus().getGroupCode() in ['new','oshibka-soglasovaniia']) and order.getStatus().getCode() != 'ozhidaetpvz' )  ( пользователь менеджер ИЛИ менеджер ОПТ ИЛИ менеджер реклама ИЛИ старший менеджер ) И НЕ ( РОП ИЛИ Пользователь относится к группе "Руководитель" ИЛИ магазин = 'garti-pr' ) И НЕ заказ создается И ( заказ изменяется И НЕ Изменяется статус И НЕ (Статус Заказа В ['Новый','Ошибка согласования']) И Статус Заказа не "ожидает в пункте выдачи")  Вам недоступно редактирование заказа в этом статусе (М -  обновление) Да
Заказ [Fenix] Наложенный платеж fenix-nalogenniy-plateg ( changeSet.isCreate() or changeSet.isUpdate() ) and order.getCountry() != 'RU' and order.getCustomField("cod") and order.getToPaySumm() > 1  ( заказ создается ИЛИ заказ изменяется ) И ISO код страны не 'RU' (Россия) И Код заказа И Сумма заказа > 1  Наложенный платеж доступен только для России Да
Заказ [Fenix] Не устроила цена доставки fenix-ne-ustroila-tsena-dostavki changeSet.hasChangedField("status") and changeSet.getNewValue("status").getCode() == 'delyvery-did-not-suit' and ( order.getPaymentStatus().getCode() == 'paid' or not order.getStatusComment() )  Изменяется статус И новый статус = 'доставка-не-устроила' И ( Статус оплаты = оплачено ИЛИ НЕ комментарий к статусу )  Нельзя переводить в статус без комментария или с платежом со статусом "Оплачено" Да
Заказ [Fenix] Не устроила цена товара fenix-ne-ustroila-tsena-tovara changeSet.hasChangedField("status") and changeSet.getNewValue("status").getCode() == 'prices-did-not-suit' and ( order.getPaymentStatus().getCode() == 'paid' or not order.getStatusComment() )  Изменяется статус И новый статус = 'доставка-не-устроила' И ( Статус оплаты = оплачено ИЛИ НЕ комментарий к статусу )  Нельзя переводить в статус без комментария или с платежом со статусом "Оплачено" Да
Заказ [Fenix] Не устроили сроки доставки fenix-ne-ustroili-sroki-dostavki changeSet.hasChangedField("status") and changeSet.getNewValue("status").getCode() == 'delyvery-did-not-suit-srok' and ( order.getPaymentStatus().getCode() == 'paid' or not order.getStatusComment() )  Изменяется статус И новый статус = 'Срок доставки-не-устроил' И ( Статус оплаты = оплачено ИЛИ НЕ комментарий к статусу )  Нельзя переводить в статус без комментария или с платежом со статусом "Оплачено" Да
Заказ [Fenix] Номер договора опт (в статус согласовано) fenix-nomer-dogovora-opt-v-status-soglasovano changeSet.hasChangedField("status") and changeSet.getNewValue("status").getCode() == 'client-confirmed' and (user().hasGroup('manager') or user().hasGroup('manager-opt') or user().hasGroup('young_manager') or user().hasGroup('manager-reklama') or user().hasGroup('rop') or user().hasGroup('star-manager')) and not ( user().hasGroup('director') ) and ( order.getSite().getCode() == 'opt' and order.getCustomField("contract_order") == null )  Изменяется статус И новый статус заказа "Согласован с клиентом" И (пользователь менеджер ИЛИ менеджер ОПТ ИЛИ менеджер стажер ИЛИ менеджер реклама ИЛИ РОП ИЛИ старший менеджер) И НЕ ( Пользователь относится к группе "Руководитель" ) И ( Магазин = 'opt' И Поле контракт_заказ пустое )  Не указан номер договора Да
Заказ [Fenix] Отмена по инициативе заказчика без указания причины fenix-otmena-po-initsiative-zakazchika-bez-ukazani changeSet.hasChangedField("status") and changeSet.getNewValue("status").getCode() == 'cancel-other' and ( order.getPaymentStatus().getCode() == 'paid' or not order.getStatusComment() )  Изменяется статус И новый статус = 'Отменено - другое' И ( Статус оплаты = оплачено ИЛИ НЕ комментарий к статусу )  Нельзя переводить в статус без комментария или с платежом со статусом "Оплачено" Да
Заказ [Fenix] Передано в комплектацию fenix-peredano-v-komplektatsiyu changeSet.hasChangedField("status") // Статус заказа изменяется and //И changeSet.getNewValue("status").getCode() == 'send-to-assembling' // Статус заказа стал "Передано в комплектацию" and //И ( order.getDeliveryType() == null // Поле типа доставки пустое or //ИЛИ ( order.getDeliveryType().getCode() == 'courier' //Поле тип доставки - "Доставка курьером" and //И order.getCourier() == null //Поле курьер, назначенный на заказ (если заказ доставляется соответствующим способом) пустое ) or //ИЛИ ( order.getDeliveryType().getCode() != 'self-delivery' //Тип достаки не "Самовывоз" and //И order.getDeliveryNetCost() == null //Поле Себестоимость доставки пустое ) or //ИЛИ order.getShipmentDate() == null //Поле Дата отгрузки пустое or //ИЛИ order.getDeliveryDate() == null //Поле Дата доставки пустое ) and not //Исключения: ( user().hasGroup('director') // Группа "Руководитель" ) and order.orderMethod.code not in ['wildberries','ozon','jandeks-market'] //способ овормления не WB или Ozon или ЯндексМаркет  Статус заказа изменяется И Статус заказа стал "Передано в комплектацию" И ( Поле типа доставки пустое ИЛИ ( Поле тип доставки - "Доставка курьером" И Поле курьер, назначенный на заказ (если заказ доставляется соответствующим способом) пустое ) ИЛИ ( Тип доставки не равен "Самовывоз" И Поле Себестоимость доставки пустое ) ИЛИ Поле Дата отгрузки пустое ИЛИ Поле Дата доставки пустое ) И НЕ ( Пользователь относится к группе "Руководитель" ) И способ овормления не WB или Ozon или ЯндексМаркет Обязательно заполните: тип доставки, ФИО курьера, дата доставки, дата отгрузки, себестоимость доставки Да
Заказ [Fenix] При данном типе оплаты должен быть выбран "Наложенный платеж" fenix-sposob-oplati ( changeSet.isCreate() or changeSet.isUpdate() ) and ( order.getPaymentType().getCode() =='nal' and not order.getCustomField("cod") ) or ( order.getPaymentType().getCode() =='bank-card' and not order.getCustomField("cod") )  ( заказ создается ИЛИ заказ изменяется ) И ( Тип оплаты заказа "Наличные" И НЕ Код заказа ) ИЛИ ( Тип оплаты заказа "Банковская карта" И НЕ Код заказа )  При данном типе оплаты должен быть выбран "Наложенный платеж" Да
Заказ [Fenix] При переводе в Согласовано без оплаты указать налож платеж fenix-pri-perevode-v-soglasovano-bez-oplati-ukazat changeSet.hasChangedField("status") and changeSet.getNewValue("status").getCode() == 'client-confirmed' and order.getPaymentType() == null and not order.getCustomField("cod") and order.getToPaySumm() > 1  Изменяется статус И новый статус заказа "Согласован с клиентом" И Тип оплаты заказа "Пусто" И НЕ Код заказа И Сумма заказа > 1  Не проставлена галочка "Наложенный платеж" Да
Заказ [Fenix] Причина к прочее fenix-prichina-k-prochee changeSet.hasChangedField("status") and changeSet.getNewValue("status").getCode() == 'other' and ( order.getPaymentStatus().getCode() == 'paid' or not order.getStatusComment() )  Изменяется статус И новый статус = 'Другой' И ( Статус оплаты = оплачено ИЛИ НЕ комментарий к статусу )  Не указан комментарий к статусу или есть платеж Да
Заказ [Fenix] Причина к статусу возврат товара принят на склад fenix-prichina-k-statusu-vozvrat-priniat changeSet.hasChangedField("status") and changeSet.getNewValue("status").getCode() == 'vozvrat-priniat' and not order.getStatusComment()  Изменяется статус И  новый статус = 'Возврат принят' И нет комментария к статусу  Не указан комментарий к статусу Да
Заказ [Fenix] Причина к статусу гарантийный ремонт в работе fenix-prichina-k-statusu-garantiyniy-remont-v-rabo changeSet.hasChangedField("status") and changeSet.getNewValue("status").getCode() == 'garantiinyi-remont-v-rabote' and not order.getStatusComment()  Изменяется статус И новый статус = 'Гарантийный ремонт в работе' И нет комментария к статусу  Не указан комментарий к статусу Да
Заказ [Fenix] Причина к статусу ошибка fenix-prichina-k-statusu changeSet.hasChangedField("status") and changeSet.getNewValue("status").getCode() == 'oshibka-v-soglasovanii' and not order.getStatusComment()  Изменяется статус И новый статус = 'Ошибка в согласовании' И нет комментария к статусу  Не указан комментарий к статусу Да
Заказ [Fenix] Причина к статусу продолжить доставку fenix-prichina-k-statusu-prodolgit-dostavku changeSet.hasChangedField("status") and changeSet.getNewValue("status").getCode() == 'prodolzhit-dostavku' and not order.getStatusComment()  Изменяется статус И новый статус = 'Продолжить доставку' И нет комментария к статусу  Не указан комментарий к статусу Да
Заказ [Fenix] Причина к статусу согласован антивозврат fenix-prichina-k-statusu-soglasovan-antivozvrat changeSet.hasChangedField("status") and changeSet.getNewValue("status").getCode() == 'soglasovan-antivozvrat' and not order.getStatusComment()  Изменяется статус И новый статус = 'Согласован антивозврат' И нет комментария к статусу  Не указан комментарий к статусу Да
Заказ [Fenix] Согласовано с клиентом fenix-soglasovano-s-klientom changeSet.hasChangedField("status") and changeSet.getNewValue("status").getCode() == 'client-confirmed' and (user().hasGroup('manager') or user().hasGroup('manager-opt') or user().hasGroup('young_manager') or user().hasGroup('manager-reklama') or user().hasGroup('rop') or user().hasGroup('star-manager')) and ( ( not order.getCustomField("planneddate") and not order.getCustomField("neobh_data_dost") ) or order.getDeliveryTime() == '' ) and not ( user().hasGroup('director')) and order.orderMethod.code not in ['wildberries','ozon','jandeks-market','sber-mega-market'] //способ овормления не WB или Ozon или ЯндексМаркет или СберМегаМаркет  Изменяется статус И новый статус заказа "Согласован с клиентом" И (пользователь менеджер ИЛИ менеджер ОПТ ИЛИ менеджер стажер ИЛИ менеджер реклама ИЛИ РОП ИЛИ старший менеджер) И ( ( НЕ order.getCustomField("planneddate") И НЕ order.getCustomField("neobh_data_dost") ) ИЛИ Время доставки == '' ) И НЕ ( Пользователь относится к группе "Руководитель") И способ овормления не WB или Ozon или ЯндексМаркет или СберМегаМаркет //способ овормления не WB или Ozon или ЯндексМаркет или СберМегаМаркет  Заполните поля: планируемую или необходимую дату доставки, время доставки Да
Заказ [Fenix] Согласовано с клиентом2 fenix-soglasovano-s-klientom2 changeSet.hasChangedField("status") and changeSet.getNewValue("status").getCode() == 'client-confirmed' and (user().hasGroup('manager') or user().hasGroup('manager-opt') or user().hasGroup('young_manager') or user().hasGroup('manager-reklama') or user().hasGroup('rop') or user().hasGroup('star-manager')) and not ( user().hasGroup('director') or user().hasGroup('buh') or order.orderMethod.code == 'wildberries' ) and ( order.getLastName()== null or order.getCustomField("informerorder") == null ) and order.orderMethod.code not in ['ozon','jandeks-market','sber-mega-market'] //способ овормления не Ozon или ЯндексМаркет или СберМегаМаркет  Изменяется статус И новый статус заказа "Согласован с клиентом" И (пользователь менеджер ИЛИ менеджер ОПТ ИЛИ менеджер стажер ИЛИ менеджер реклама ИЛИ РОП ИЛИ старший менеджер) И НЕ ( Пользователь относится к группе "Руководитель" ИЛИ Пользователь вгруппе "Бухгалтер" ИЛИ Способ оформления Wildberries ) И ( order.getLastName()== null ИЛИ order.getCustomField("informerorder") == null ) И способ овормления не Ozon или ЯндексМаркет или СберМегаМаркет Проверьте заполнено ли ФИ и откуда клиент узнал о продукции. Да
Заказ [Fenix] Состав заказа (в согласовано) fenix-sostav-zakaza-v-soglasovano changeSet.hasChangedField("status") and changeSet.getNewValue("status").getCode() == 'client-confirmed' and (user().hasGroup('manager') or user().hasGroup('manager-opt') or user().hasGroup('young_manager') or user().hasGroup('manager-reklama') or user().hasGroup('rop') or user().hasGroup('star-manager')) and not ( user().hasGroup('director') ) and not order.getAvailableOrderProducts()  Изменяется статус И новый статус заказа "Согласован с клиентом" И (пользователь менеджер ИЛИ менеджер ОПТ ИЛИ менеджер стажер ИЛИ менеджер реклама ИЛИ РОП ИЛИ старший менеджер) И НЕ ( Пользователь относится к группе "Руководитель" ) И нет товаров в заказе Нельзя перевести в статус заказ без товаров! Да
Заказ [Fenix] Сохранение нового заказа soranenie-new changeSet.isCreate() and order.getPhone() == null or changeSet.isUpdate() and order.getPhone() == null and order.orderMethod.code not in ['ozon'] //способ овормления не Ozon  заказ создается И не указан телефон в заказе ИЛИ заказ изменяется И не указан телефон в заказе И способ оформления не Ozon Укажите номер телефона клиента Да
Заказ [Fenix] Срочный заказ fenix-srochniy-zakaz changeSet.hasChangedField("status") and changeSet.getNewValue("status").getCode() == 'client-confirmed' and order.getDeliveryType().getCode() == 'courier' and order.getDeliveryAddress().getRegion() in ['Москва город', 'Московская область'] and order.getCustomerComment() == null and ( ( order.getCustomField("rushorder") and changeSet.isUpdate() ) or ( changeSet.hasChangedField("custom_rushorder") and changeSet.getNewValue("custom_rushorder") ) )  Изменяется статус И новый статус заказа "Согласован с клиентом" И Поле тип доставки - "Доставка курьером" И Адрес доставки Москва или Московская область И не заполнен комментарий клиента И ( ( это срочный заказ И заказ изменяется ) ИЛИ ( изменяется заказной срочный заказ И новый заказной срочный заказ ) )  Поле "Комментарий клиента" должно быть заполнено Да
Заказ [Fenix] Тип оплаты курьеру fenix-tip-oplati-kureru changeSet.hasChangedField("status") //изменяется статус and changeSet.getNewValue("status").getCode() == 'client-confirmed' //новый статус заказа "Согласован с клиентом" and (user().hasGroup('manager') or user().hasGroup('manager-opt') or user().hasGroup('young_manager') or user().hasGroup('manager-reklama') or user().hasGroup('rop') or user().hasGroup('star-manager')) //пользователь менеджер ИЛИ менеджер ОПТ ИЛИ менеджер стажер ИЛИ менеджер реклама ИЛИ РОП или старший менеджер and ( not order.getCustomField('paymentcourier') // И не поле "Тип оплаты курьеру" and order.getCustomField('cod') // И галочка Наложенный платеж ) and not (user().hasGroup('director')) // исключение для Руководителя and order.orderMethod.code not in ['wildberries','ozon','jandeks-market','sber-mega-market'] //способ овормления не WB или Ozon или ЯндексМаркет или СберМегаМаркет and order.getPaymentType().getCode() != 'rassrochka' // Исключение Тип оплаты не "Рассрочка" Изменяется статус И новый статус заказа "Согласован с клиентом" И (пользователь менеджер ИЛИ менеджер ОПТ ИЛИ менеджер стажер ИЛИ менеджер реклама ИЛИ РОП ИЛИ старший менеджер) И (не поле "Тип оплаты курьеру" И галочка Наложенный платеж ) исключение для Руководителя И способ овормления не WB или Ozon или ЯндексМаркет или СберМегаМаркет И Исключение Тип оплаты не "Рассрочка" Укажите тип оплаты курьеру Да
Заказ [Fenix] Тип оплаты - ручной ввод fenix-tip-oplati-ruchnoy-vvod changeSet.hasChangedField("status") // изменяется статус заказа and changeSet.getNewValue("status").getCode() == 'client-confirmed' // новый статус "Согласован с клиентом" and changeSet.hasChangedField('payments') // изменяются "Платежи" and not (changeSet.getNewValue('payments').getType().getCode() in ['paypal','ya-kassa','bank-transfer','rassrochka'] ) // исключения типа платежа "PayPal" Или "Ю-каса" ИЛи "Банковкий перевод" или "В рассрочке" and order.orderMethod.code not in ['logistika'] //способ овормления не Логистика  изменяется статус заказа И новый статус заказа "Согласован с клиентом"  И изменяются "Платежи" И НЕ (исключения типа платежа "PayPal" Или "Ю-каса" ИЛи "Банковкий перевод" или "В рассрочке" ) И способ овормления не Логистика Тип оплаты не доступен для ручного ввода Да
Заказ Доставка для ОПТа dostavka-dlya-opta order.site.getCode() != 'opt' and order.deliverytype.getCode() == 'tk-opt'  Магазин не равно Оптовому И Способ доставки оптовая'  Данная доставка используется только для ОПТа! Проверьте тип доставки Да
Заказ Запрет изменять галочку "Не синхронизировать со службой доставки" ne-sinhronizirovat-so-sluzhboj-dostavki ( changeSet.isCreate and order.site.code == 'garti' and user().hasGroup('manager') and not user().hasGroup('director') and changeSet.hasChangedField("isLocked") //and changeSet.getNewValue("isLocked") == null ) or ( changeSet.isUpdate and order.site.code == 'garti' and user().hasGroup('manager') and not user().hasGroup('director') and changeSet.hasChangedField("isLocked") //and changeSet.getNewValue("isLocked") == null )  ( Заказ создается И Магазин равен Гарти И пользователь менеджер И НЕ Пользователь относится к группе "Руководитель" И Изменяется поле Заблокировано //and changeSet.getNewValue("isLocked") == null ) ИЛИ ( Заказ обновляется И Магазин равен Гарти И пользователь менеджер И НЕ Пользователь относится к группе "Руководитель" И Изменяется поле Заблокировано //and changeSet.getNewValue("isLocked") == null )  Менеджер не может убрать галочку с поля "Не синхронизировать со службой доставки" Да
Заказ Запрет на изменение поля "дата изменения статуса заказ" zapret-na-izm-polja-data-izmenenija-statusa-zakaz changeSet.hasChangedField("custom_change_date_status2") and (user().hasGroup('buh') or user().hasGroup('stockman') or user().hasGroup('logistician') or user().hasGroup('manager') or user().hasGroup('manager-opt') or user().hasGroup('manager-reklama') or user().hasGroup('young_manager') or user().hasGroup('star-manager') or user().hasGroup('rop') or user().hasGroup('director'))  Изменяется Пользовательское значение даты Статус2 И (Пользователь вгруппе "Бухгалтер" ИЛИ Пользователь воходит в группу ('stockman') ИЛИ Пользователь в группе "Логист" ИЛИ пользователь менеджер ИЛИ менеджер ОПТ ИЛИ менеджер реклама ИЛИ менеджер стажер ИЛИ старший менеджер ИЛИ РОП ИЛИ Пользователь относится к группе "Руководитель")  Поле "дата изменения статуса заказ" недоступно для редактирования Да
Заказ Запрет на отправку антисептика за границу zapret-na-otpravku-antiseptika-za-granitsu changeSet.isUpdate() and order.deliveryAddress.getRegion() == '' and order.deliveryAddress.getText() != '' and (order.orderProducts | contains(item => (item.getOffer().getArticle() == 'HS')))  заказ изменяется И Адрес доставки = '' И order.deliveryAddress.getText() != '' И (Товары в заказе содержат "HS")  Отправка антисептика за пределы РФ не предусмотрена. Скорректируйте состав заказа. Да
Заказ Запрет на редактирование поля "Замена позиции Random" менеджерами zapret-pozicija-random-manager ( (user().hasGroup('manager') or user().hasGroup('manager-reklama') or user().hasGroup('star-manager') or user().hasGroup('young_manager')) and order.site.code in ['garti-me','garti-eng'] and changeSet.hasChangedField("custom_zamena_random") )  ( (пользователь менеджер ИЛИ менеджер реклама ИЛИ старший менеджер ИЛИ менеджер стажер) И магазин garti-me или garti-eng И изменяется поле "custom_zamena_random" )  Менеджерам запрещено изменять поле "Замена позиции Random" Да
Заказ Запрет на редактирование поля "Причина скидки" logist-zapret-prichina-skidki user().hasGroup('logistician') //Запрещено логисту and not ( //Исключение для групп: user().hasGroup('rop') // РОП or //ИЛИ user().hasGroup('director') //Руководитель  Запрещено логисту И НЕ (Исключение для групп: РОП ИЛИ Пользователь относится к группе "Руководитель"  Вам недоступно редактирование поля "Причина скидки" Да
Заказ Запрет на редактирование статуса оплаты redaktor-status-oplaki ( (changeSet.isCreate or changeSet.isUpdate) and (user().hasGroup('marketplace-manager')) and (changeSet | contains(item => item.fieldName == "payments.status")) )  ( (Заказ создается ИЛИ Заказ обновляется) И (пользователь входит в группу 'marketplace-manager') И (изменяется значение статус платежа) )  Вам недоступно редактирование статуса оплаты Да
Заказ Запрет убирать галочку на "Наложенный платеж" для маркетплейсов zapret-galochka-nalozhennyj-platezh-marketplejsy ( changeSet.isCreate()//Заказ создается or // или changeSet.isUpdate()//Заказ изменяется ) and order.orderMethod.code in ['wildberries','ozon','jandeks-market'] //способ овормления WB или Ozon или ЯндексМаркет and changeSet.hasChangedField("custom_cod") //изменяется поле "Наложенный платеж" and changeSet.getOldValue("custom_cod") == 'true' // старое значение поля "Наложенный платеж" - галочка есть and changeSet.newValue("custom_cod") == 'false' // новое значение поля "Наложенный платеж" - галочки нет (Заказ создается  или заказ изменяется ) И способ овормления WB или Ozon или ЯндексМаркет И изменяется поле "Наложенный платеж"  И старое значение поля "Наложенный платеж" - галочка есть И новое значение поля "Наложенный платеж" - галочки нет Для маркетплейсов запрещено убирать галочку "Наложенный платеж" Да
Заказ Из "Возврат товара принят на склад" в "Возврат" iz-vozvrat-na-sklad-v-vozvrat changeSet.hasChangedField("status") //Есть изменения статуса and changeSet.getOldValue("status").code in ['vozvrat-priniat'] //Старый статус "Возврат товара принят на склад" and changeSet.getNewValue("status").code in ['vozvrat'] //Новый статус ""Возврат" and order.paymentStatus.code in ['paid'] //Статус платежа "Оплачен"  Есть изменения статуса И Старый статус "Возврат товара принят на склад"  И Новый статус ""Возврат"  И Статус платежа "Оплачен" Если заказ оплачен - перевести в "Возврат" невозможно. Да
Заказ Логист. Передача в комплектацию неоплаченного заказа logist-peredacha-v-komplektatsiyu-neoplachennogo-z changeSet.hasChangedField('status') and changeSet.getNewValue('status').getCode() == 'send-to-assembling' and order.getCustomField("cod") == false and order.toPaySumm > 0 and ( not user().hasGroup('rop') or not user().hasGroup('director')) and not order.orderMethod.code == 'wildberries'  изменение статуса И изменяется поле отправка на сборку И Код заказа == false И Сумма, оставшаяся к оплате больше нуля И ( НЕ РОП ИЛИ НЕ Пользователь относится к группе "Руководитель") И НЕ Способ оформления Wildberries  Заказ не оплачен. Перед передачей заказа в комплектацию дождитесь его полной оплаты Да
Заказ Логист (Редактирование заказа в статусе "Выполнено") logist-vipolneno user().hasGroup('logistician') //Пользователь в группе "Логист" and order.getStatus().getCode() == 'complete' //Заказ в статуса "Выполнен" and changeSet.hasChangesExcluding(['delivery_net_cost']) //Есть ли изменения полей за исключением указанных Пользователь в группе "Логист" И Заказ в статуса "Выполнен" И Есть ли изменения полей за исключением указанных  Вам недоступно редактирование других полей заказа кроме "Себестоимость" [Логист] Да
Заказ Менеджер. Запрет изменения магазина в заказе menedger-zapret-izmeneniya-magazina-v-zakaze (changeSet.hasChangedField('site') and order.status.getCode() != 'new' and user().hasGroup('manager')) or (changeSet.hasChangedField('site') and user().hasGroup('manager-opt'))  (изменяется магазин И статус заказа не новый И пользователь менеджер) ИЛИ (изменяется магазин И менеджер ОПТ)  Вам запрещено менять магазин в заказе! Да
Заказ Менеджер. Ограничение по рознице и опту на редактирование заказов menedger-ogranichenie-po-roznitse-i-optu-na-redakt ((user().hasGroup('manager') and ( not user().hasGroup('rop') or not user().hasGroup('director')) and order.status.getCode() != 'new' and order.site.getCode() == 'opt')) or ((user().hasGroup('manager-opt') and ( not user().hasGroup('rop') or not user().hasGroup('director')) and order.site.getCode() == 'garti-me'))  ((пользователь менеджер И ( НЕ РОП ИЛИ НЕ Пользователь относится к группе "Руководитель") И статус заказа не новый И магазин = 'opt')) ИЛИ ((менеджер ОПТ И ( НЕ РОП ИЛИ НЕ Пользователь относится к группе "Руководитель") И магазин = 'garti-me'))  Вы не можете редактировать заказы магазина {{ order.site }} Да
Заказ Менеджер. Редактирование чужого заказа menedger-redaktirovanie-chugogo-zakaza order.getManager().getId() != user().getId() and ( changeSet.isUpdate() or ( changeSet.hasChangedField("status") //Изменяется статус закза and changeSet.getOldValue('status').getCode() not in ['client-confirmed'] //Старый статус закза "Согласован с клиентом" and changeSet.getNewValue('status').getCode() not in ['oshibka-v-soglasovanii'] //Новый статус закза "Ошибка в согласовании с клиентом" ) ) and //И ( user().hasGroup('manager') //Пользователь - менеджер or user().hasGroup('manager-opt') //Пользователь - менеджер ОПТ or user().hasGroup('young_manager') //Пользователь - менеджер стажер or user().hasGroup('manager-reklama') //Пользователь - менеджер реклама ) and not ( //Исключения: user().hasGroup('rop') //Пользователь - РОП or user().hasGroup('director') //Пользователь - Рукуводитель or user().hasGroup('star-manager') //Пользователь - Старший менеджер )  текущий пользователь И ( заказ изменяется ИЛИ ( Изменяется статус закза И Старый статус закза "Согласован с клиентом" И Новый статус закза "Ошибка в согласовании с клиентом" ) ) И ( пользователь менеджер ИЛИ Пользователь - менеджер ОПТ ИЛИ Пользователь - менеджер стажер ИЛИ Пользователь - менеджер реклама ) И НЕ ( Исключения: РОП  ИЛИ Пользователь - Рукуводитель ИЛИ Пользователь - Старший менеджер )  У Вас недостаточно прав для редактирования этого заказа (м, м-о, м рек) Да
Заказ Обязательное поле.  Способ доставки obyazatelnoe-pole-sposob-dostavki changeSet.isUpdate() and order.deliveryType == null and user().hasGroup('logistician') заказ изменяется И тип доставки не выбран И Пользователь в группе "Логист" Укажите способ доставки заказа Да
Заказ Обязательное поле.  Способ оформления obyazatelnoe-pole-sposob-oformleniya (changeSet.isUpdate() and order.orderMethod == null or changeSet.isCreate() and order.orderMethod == null) and not ( user().hasGroup('rop') or user().hasGroup('director') or user().hasGroup('buh') )  (заказ изменяется И способ оформления заказа не выбран ИЛИ заказ создается И способ оформления заказа не выбран) И НЕ ( РОП ИЛИ Пользователь относится к группе "Руководитель" ИЛИ Пользователь вгруппе "Бухгалтер" )  Укажите способ оформления заказа Да
Заказ Ошибка при выборе типов оплаты АТОЛ безнал/нал для менеджеров опт, розница и реклама oshibka-atol-beznal-nal-menedzhery (user().hasGroup('manager-reklama') or user().hasGroup('manager-opt') or user().hasGroup('manager')) and changeSet.hasChangedField("PaymentType") and changeSet.newValue("PaymentType").getCode() in ['card-atol','cash']  (менеджер реклама ИЛИ менеджер ОПТ ИЛИ пользователь менеджер) И изменяется поле тип платежа И новое значение поле тип платежа card-atol' или'cash  Для менеджеров опт, розница и реклама типы оплаты "Безналичные (АТОЛ)" и "Наличные (АТОЛ)" недоступны. Да
Заказ При типе оплаты “банковский перевод” нельзя поставить галочку “наложенный платеж” oplata-bank-perevod-bez-galochki-nalozh-platezh ( changeSet.isCreate() and order.getPaymentType().getCode() == 'bank-transfer' and order.getCustomField('cod') == 'true' ) or ( changeSet.isUpdate() and order.getPaymentType().getCode() == 'bank-transfer' and changeSet.hasChangedField("custom_cod") and changeSet.getOldValue("custom_cod") == 'false' and changeSet.newValue("custom_cod") == 'true' )  ( заказ создается И тип платежа банковский перевод И  галочка Наложенный платеж == 'true' ) ИЛИ ( заказ изменяется И тип платежа банковский перевод И изменяется поле "Наложенный платеж" И старое значение пользовательский код нет И новое значение пользовательский код есть)  Невозможно поставить галочку "наложенный платеж" при типе оплаты “банковский перевод” Да
Заказ Причина к статусу ожидание клиента и дата перезвона (изначально делал [Fenix] ) fenix-prichina-k-statusu-ogidanie-klienta ( changeSet.hasChangedField("status") // Изменился статус and changeSet.getNewValue("status").code in ['waiting'] // И новое значения статуса в "В ожидании клиента" ) and ( (order.customField('perezvon_date') == null) or (order.customField('kommentarij_k_perezvonu') == null) //поля дата ИЛИ коментарий к перезвону пустые ) and not //Исключения: ( user().hasGroup('director') // Группа "Руководитель" or order.orderMethod.code == 'ozon'// Способ оформления Ozon or order.orderMethod.code == 'wildberries'// Способ оформления Wildberries )  (Изменился статус И новое значения статуса в "В ожидании клиента" ) И ( (поле дата перезвона пустое) ИЛИ (коментарий к перезвону пустой)) Исключения: ( Пользователь относится к группе "Руководитель"  ИЛИ  Способ оформления Ozon ИЛИ Способ оформления Wildberries)  Проверьте указана ли дата перезвона и комментарий к перезвону Да
Заказ Проверка второго типа оплаты при частичной оплате prov-2-tipa-oplati (changeSet.hasChangedField("status") and changeSet.getOldValue("status").code in ['new','nedozvon-1','nedozvon-2','nedozvon-3-sutki','waiting','v-ozhidanii-oplaty','predoplata-nedozvon-1-den'] and changeSet.getNewValue("status").code in ['vnimanie','oshibka-v-soglasovanii','chastichnyi-vozvrat-vypolnen','vozvrat-priniat','trebuetsja-soglasovanie'])// Изменяется статус из группы "новый" в группу "ошибка согласования" and (order.toPaySumm != 0) //И оставшееся сумма к оплате != нулю and (order.paymentType | length) == 1 //И типов оплаты в заказе один (Изменяется статус И старое значение статуса  ['new','nedozvon-1','nedozvon-2','nedozvon-3-sutki','waiting','v-ozhidanii-oplaty','predoplata-nedozvon-1-den'] И  новый статус  ['vnimanie','oshibka-v-soglasovanii','chastichnyi-vozvrat-vypolnen','vozvrat-priniat','trebuetsja-soglasovanie']) И оставшееся сумма к оплате != нулю И типов оплаты в заказе один Проверьте второй способ оплаты Да
Заказ Проверка для позиции Random (Кладовщик) pozicija-random (user().hasGroup('stockman') and order.site.code in ['garti-me','garti-eng'] and changeSet.hasChangedField("status") and changeSet.getOldValue("status").getCode() == 'send-to-assembling' and changeSet.getNewValue("status").getCode() == 'assembling' and (order.orderProducts | contains(item => (item.getOffer().getArticle() in ['DO-RN01','DO-RN02','GR-RN01','GS-RN01','LI-RN01','LS-RN01','MI-RN01','PR-RN01','SI-RN01','SI-RN02'])) and order.getCustomField("zamena_random") == null and not order.getCustomField("zamena_random") == 'Нет' ))  (Пользователь воходит в группу ('stockman') И магазин garti-me или garti-eng И Изменяется статус И старое значение статуса "отправлен в сборку" И новый статус= 'assembling' И артикль продукта  ['DO-RN01','DO-RN02','GR-RN01','GS-RN01','LI-RN01','LS-RN01','MI-RN01','PR-RN01','SI-RN01','SI-RN02'] И поле случайная замена пустая И НЕ поле случайная замена = НЕТ ))  Необходимо добавить в поле “название поля” что будет в позиции Random Да
Заказ Проверка заполненности поля "Email" при оплате онлайн polja-email-oplate-onlajn (changeSet.isCreate and order.getPaymentType.code == 'ya-kassa' and order.getEmail() == null) or (changeSet.isUpdate and order.getPaymentType.code == 'ya-kassa' and order.getEmail() == null)  (Заказ создается И Тип платежа = 'ya-kassa' И Email не заполнен) ИЛИ (Заказ обновляется И Тип платежа = 'ya-kassa' И Email не заполнен)  При оплате онлайн необходимо заполнить Email Да
Заказ Проверка заполненности поля "Вид рекламы" proverka-zapolnennosti-polja-vid-reklamy (changeSet.isCreate and order.site.code == 'garti-pr' and order.getCustomField('vid_reklamy') == null) or (changeSet.isUpdate and order.site.code == 'garti-pr' and order.getCustomField('vid_reklamy') == null)  (Заказ создается И магазин = 'garti-pr' И Вид рекламы не заполнен) ИЛИ (Заказ обновляется И магазин = 'garti-pr' И Вид рекламы не заполнен)  Необходимо указать вид рекамы. Да
Заказ Проверка заполненности поля "Площадка" proverka-zapolnennosti-polja-ploschadka ( changeSet.isCreate and order.site.code == 'garti-pr' and order.getCustomField('ploschadka') == null ) or ( changeSet.isUpdate and order.site.code == 'garti-pr' and order.getCustomField('ploschadka') == null )  ( Заказ создается И магазин = 'garti-pr' И Площадка не заполнена ) ИЛИ ( Заказ обновляется И магазин = 'garti-pr' И Площадка не заполнена )  Необходимо указать площадку. Да
Заказ Проверка заполненности поля "Ссылка на рекламодателя" ssylka-na-reklamodatelja (changeSet.isCreate and order.site.code == 'garti-pr' and order.getCustomField('vid_reklamy').code == 'blogers' and order.getCustomField('ssylka_na_reklamodatelja') == null) or (changeSet.isUpdate and order.site.code == 'garti-pr' and order.getCustomField('vid_reklamy').code == 'blogers' and order.getCustomField('ssylka_na_reklamodatelja') == null)  (Заказ создается И магазин = 'garti-pr' И Вид рекламы = блогеры И Ссылка на рекламодателя не заполнена) ИЛИ (Заказ обновляется И магазин = 'garti-pr' И Вид рекламы = блогеры И Ссылка на рекламодателя не заполнена)  Необходимо указать ссылку на рекламодателя. Да
Заказ Проверка магазина (для PR менеджера ) proverka-magazina (changeSet.isCreate and order.site.code != 'garti-pr' and user().hasGroup('manager-reklama') and not user().hasGroup('director') ) or (changeSet.isUpdate and order.site.code != 'garti-pr' and user().hasGroup('manager-reklama') and not user().hasGroup('director') )  (Заказ создается И магазин не равен 'garti-pr' И менеджер реклама И НЕ Пользователь относится к группе "Руководитель" ) ИЛИ (Заказ обновляется И магазин не равен 'garti-pr' И менеджер реклама И НЕ Пользователь относится к группе "Руководитель" )  Вы не можете сохранить заказ в данном магазине. Да
Заказ Проверка магазина для пользовательских полей под рекламу proverka-magazina-dlja-polzovatelskih-polej changeSet.isCreate and order.site.code != 'garti-pr' and order.getCustomField("vid_reklamy") != null or changeSet.isUpdate and order.site.code != 'garti-pr' and order.getCustomField("vid_reklamy") != null or changeSet.isCreate and order.site.code != 'garti-pr' and order.getCustomField("ploschadka") != null or changeSet.isUpdate and order.site.code != 'garti-pr' and order.getCustomField("ploschadka") != null or changeSet.isCreate and order.site.code != 'garti-pr' and order.getCustomField("ssylka_na_reklamodatelja") != null or changeSet.isUpdate and order.site.code != 'garti-pr' and order.getCustomField("ssylka_na_reklamodatelja") != null or changeSet.isCreate and order.site.code != 'garti-pr' and order.getCustomField("utm_metka") != null or changeSet.isUpdate and order.site.code != 'garti-pr' and order.getCustomField("utm_metka") != null or changeSet.isCreate and order.site.code != 'garti-pr' and order.getCustomField("stoimost_razmeschenija") != null or changeSet.isUpdate and order.site.code != 'garti-pr' and order.getCustomField("stoimost_razmeschenija") != null or changeSet.isCreate and order.site.code != 'garti-pr' and order.getCustomField("data_publikacii") != null or changeSet.isUpdate and order.site.code != 'garti-pr' and order.getCustomField("data_publikacii") != null or changeSet.isCreate and order.site.code != 'garti-pr' and order.getCustomField("kolichestvo_razmeschenij") != null or changeSet.isUpdate and order.site.code != 'garti-pr' and order.getCustomField("kolichestvo_razmeschenij") != null or changeSet.isCreate and order.site.code != 'garti-pr' and order.getCustomField("ssylka_na_post") != null or changeSet.isUpdate and order.site.code != 'garti-pr' and order.getCustomField("ssylka_na_post") != null or changeSet.isCreate and order.site.code != 'garti-pr' and order.getCustomField("data_oplaty") != null or changeSet.isUpdate and order.site.code != 'garti-pr' and order.getCustomField("data_oplaty") != null or changeSet.isCreate and order.site.code != 'garti-pr' and order.getCustomField("barter") != null or changeSet.isUpdate and order.site.code != 'garti-pr' and order.getCustomField("barter") != null  Заказ создается И магазин не равен 'garti-pr' И вид рекламы заполнено ИЛИ Заказ обновляется И магазин не равен 'garti-pr' И вид рекламы заполнено ИЛИ Заказ создается И магазин не равен 'garti-pr' И Площадка заполнено ИЛИ Заказ обновляется И магазин не равен 'garti-pr' И Площадка заполнено ИЛИ Заказ создается И магазин не равен 'garti-pr' И Ссылка на рекламодателя заполнено ИЛИ Заказ обновляется И магазин не равен 'garti-pr' И Ссылка на рекламодателя заполнено ИЛИ Заказ создается И магазин не равен 'garti-pr' И "utm_metka" заполнено ИЛИ Заказ обновляется И магазин не равен 'garti-pr' И "utm_metka" заполнено ИЛИ Заказ создается И магазин не равен 'garti-pr' И Стоимость размещения заполнено ИЛИ Заказ обновляется И магазин не равен 'garti-pr' И Стоимость размещения заполнено ИЛИ Заказ создается И магазин не равен 'garti-pr' И Дата публикации заполнено ИЛИ Заказ обновляется И магазин не равен 'garti-pr' И Дата публикации заполнено ИЛИ Заказ создается И магазин не равен 'garti-pr' И Количество размещения заполнено ИЛИ Заказ обновляется И магазин не равен 'garti-pr' И Количество размещения заполнено ИЛИ Заказ создается И магазин не равен 'garti-pr' И Ссылка на пост заполнена ИЛИ Заказ обновляется И магазин не равен 'garti-pr' И Ссылка на пост заполнена ИЛИ Заказ создается И магазин не равен 'garti-pr' И Дата оплаты заполнена ИЛИ Заказ обновляется И магазин не равен 'garti-pr' И Дата оплаты заполнена ИЛИ Заказ создается И магазин не равен 'garti-pr' И Бартер заполнен ИЛИ Заказ обновляется И магазин не равен 'garti-pr' И Бартер заполнен  Для полей (Бартер;Вид рекламы;Площадка;Ссылка на рекламодателя;UTM-метка;Стоимость размещения;Дата публикации;Кличество размещений;Общая стоимость рекламы (в руб);Ссылка(и) на пост;Дата оплаты; ) магазин должен быть "Реклама" и пользователь PR менеджер Да
Заказ Проверка перехода из статуса "Бартер-товар получен" ИЛИ "Реклама оплачена" в "Реклама опубликована". iz-reklama-oplachena-v-reklama-opublikovana user().hasGroup('manager-reklama') and ( order.site.code == 'garti-pr' and changeSet.hasChangedField("status") and (changeSet.oldValue("status").code == 'reklama-oplachena' and changeSet.newValue("status").code == 'reklama-opublikovana') or (changeSet.oldValue("status").code == 'barter-tovar-poluchen' and changeSet.newValue("status").code == 'reklama-opublikovana') and order.getCustomField("data_publikacii") == null )  менеджер реклама И ( магазин = 'garti-pr' И Изменяется статус И (Старое значение статуса = "реклама оплачена" И Новое значение статуса = "реклама опубликована") ИЛИ (Старок значение статуса = "Бартер товар получен" И Новое значение статуса = "реклама опубликована") И Дата публикации пустая )  Перехода из статуса "Бартер-товар получен" ИЛИ "Реклама оплачена" в "Реклама опубликована" из-за незаполненного поля "Дата публикации". Да
Заказ Проверка перехода из статуса "В ожидании оплаты" в "Бартер-товар получен". proverka-statys-bartera user().hasGroup('buh') and not user().hasGroup('director') and( order.site.code == 'garti-pr' and changeSet.hasChangedField("status") and changeSet.getOldValue("status").getCode() == 'v-ozhidanii-oplaty-2' and changeSet.getNewValue("status").getCode() == 'barter-tovar-poluchen' and (order.getCustomField('barter') == null or order.getQuantity() == null) )  Пользователь вгруппе "Бухгалтер" И НЕ Пользователь относится к группе "Руководитель" and( магазин = 'garti-pr' И Изменяется статус И Старое значение статуса = "В ожидании оплаты 2" И новый статус = 'Бартер товар получен' И (Бартер не заполнен ИЛИ Количество товаров в заказе не заполнено) )  Для перехода из  статуса "В ожидании оплаты" в "Бартер-товар получен" возможен только при галочке на поле "Бартер" и выбранном товаре на сам бартер. Да
Заказ Проверка перехода из статуса "В ожидании оплаты" в "Реклама оплачена". iz-v-ozhidanii-oplaty-v-reklama-oplachena user().hasGroup('manager-reklama') and not user().hasGroup('director') and( order.site.code == 'garti-pr' and changeSet.hasChangedField("status") and changeSet.getOldValue("status").getCode() == 'v-ozhidanii-oplaty-2' and changeSet.getNewValue("status").getCode() == 'reklama-oplachena' and order.getCustomField('data_oplaty') == null )  менеджер реклама И НЕ Пользователь относится к группе "Руководитель" and( магазин = 'garti-pr' И Изменяется статус И Старое значение статуса = "В ожидании оплаты" И новый статус = Реклама оплачена И Дата оплаты не заполнено )  Переход из статуса "В ожидании оплаты" в "Реклама оплачена" невозможна из-за пустого поля "Дата оплаты рекламы". Да
Заказ Проверка перехода из статуса "Условия рекламы согласованы" в "В ожидании оплаты". iz-uslovija-reklamy-v-v-ozhidanii-oplaty user().hasGroup('manager-reklama') and not user().hasGroup('director') and( order.site.code == 'garti-pr' and changeSet.hasChangedField("status") and changeSet.oldValue("status").code == 'uslovija-reklamy-soglasovany' and changeSet.newValue("status").code == 'v-ozhidanii-oplaty-2' and order.getCustomField("stoimost_razmeschenija") == null and order.getCustomField("kolichestvo_razmeschenij") == null )  менеджер реклама И НЕ Пользователь относится к группе "Руководитель" and( магазин = 'garti-pr' И Изменяется статус И changeSet.oldValue("status").code == 'uslovija-reklamy-soglasovany' И changeSet.newValue("status").code == 'v-ozhidanii-oplaty-2' И order.getCustomField("stoimost_razmeschenija") == null И order.getCustomField("kolichestvo_razmeschenij") == null )  Перехода из статуса "Условия рекламы согласованы" в "В ожидании оплаты"  невозможна из-за незаполненных полей "Стоимость размещения" и "Количество размещений". Да
Заказ Проверка поля "Откуда узнал о продукции" istochnik-reklami-v-statusah-vishe-soglasovano order.getCustomField('informerorder') == null and (changeSet.hasChangedField("status") and changeSet.getOldValue("status").code in ['new','nedozvon-1','nedozvon-2','nedozvon-3-sutki','waiting','v-ozhidanii-oplaty','predoplata-nedozvon-1-den'] and changeSet.getNewValue("status").code in ['client-confirmed']) and order.orderMethod.code not in ['wildberries','ozon','jandeks-market','sber-mega-market','logistika', 'offline'] //способ овормления не WB или Ozon или ЯндексМаркет или СберМегаМаркет или Логистика или offline  Порядок информирования не заполнено И (Изменяется статус И старое значение статуса  ['new','nedozvon-1','nedozvon-2','nedozvon-3-sutki','waiting','v-ozhidanii-oplaty','predoplata-nedozvon-1-den'] И новый статус заказа "Согласован с клиентом") И способ овормления не WB или Ozon или ЯндексМаркет или СберМегаМаркет или Логистика или offline Заполните поле "Откуда узнал о продукции" Да
Заказ Проверка поля "Тип рассрочки" proverka-polja-tip-rassrochki changeSet.hasChangedField('status') // изменяетс статус заказа and changeSet.getOldValue("status").getCode() in ['new','nedozvon-1','nedozvon-2','nedozvon-3-sutki','waiting','v-ozhidanii-na-sklade','nalichie-na-sklade-podtverzhdeno','predoplata-nedozvon-1-den'] //старый статус заказа в группе "новый" and changeSet.getNewValue('status').getCode() == 'client-confirmed' //новый статус заказа "Согласован с клиентом" and (order.getPaymentType().getCode() == 'rassrochka' // Тип оплаты "Рассрочка" and order.getCustomField("tip_rassrochki") == null ) //Поле "Тип рассрочки" пустое  изменяется статус заказа И старый статус заказа в группе "новый" И новый статус заказа "Согласован с клиентом" И (Тип оплаты "Рассрочка" И Поле "Тип рассрочки" пустое ) Выберете тип рассрочки. Да
Заказ Проверка "Причина скидки" proverka-prichina-skidki ( ( changeSet.hasChangedField("status") //Меняется статус заказа and changeSet.getNewValue("status").code in ['client-confirmed'] //новый статус заказа "Согласован с клиентом" ) and (order.customField('prichina_skidki').code in ['promo']) //После "Причина скидки" = "Промокод" and (order.customField('promokod').code == null) //Поле "Промокод" пустое )  ( ( Меняется статус заказа И новый статус заказа "Согласован с клиентом" ) И ("Причина скидки" = "Промокод") И (Поле "Промокод" пустое) )  Выберете промокод Да
Заказ Скидка более 50% skidka-bolee-50 ( ( changeSet.hasChangedField("order_product.discount_total") and order.getOrderProducts() | contains ( p => p.getInitialSumm() and p.getDiscountSumm() / p.getInitialSumm() > 0.50 and order.getCustomField('skidka_comment') == null) ) or ( changeSet.isCreate() and order.getOrderProducts() | contains ( p => p.getInitialSumm() and p.getDiscountSumm() / p.getInitialSumm() > 0.50 and order.getCustomField('skidka_comment') == null) ) ) and order.getSite().getCode() == 'garti-me' and order.orderMethod.code not in ['wildberries'] //способ овормления не WB  ( ( Изменяется поле общая скидка по заказу И Скидка больше 50% и комментарий скидки не заполнен) ИЛИ ( заказ создается И Скидка больше 50% и комментарий скидки не заполнен) ) И Магазин = 'garti-me' И способ овормления не WB Для скидок более 50% требуется заполнить поле комментария для скидки в блоке оплаты! Да
Заказ Скидка не более 11% fenix-skidka-ne-bolee-11 ( ( changeSet.hasChangedField("order_product.discount_total") and order.discountManualPercent > 11 ) or ( changeSet.isCreate() and order.getOrderProducts() | contains ( p => p.getInitialSumm() and p.getDiscountSumm() / p.getInitialSumm() > 0.11 ) ) ) and order.getSite().getCode() == 'garti-me' and not ( user().hasGroup('rop') or user().hasGroup('director') or user().hasGroup('star-manager') or user().getId() == 29 ) and order.orderMethod.code not in ['wildberries','sber-mega-market'] //способ овормления не WB или СберМегаМаркет  ( ( Изменяется поле общая скидка по заказу И Процентная скидка на весь заказ > 11 ) ИЛИ ( заказ создается И скидка > 11 ) ) И Магазин = 'garti-me' И НЕ ( РОП ИЛИ Пользователь относится к группе "Руководитель" ИЛИ старший менеджер ИЛИ Пользователь = 29 ) И способ овормления не WB или СберМегаМаркет Скидки – не более 11% на товар Да
Заказ Скидка не более 35% fenix-skidka-ne-bolee-35 ( ( changeSet.hasChangedField("order_product.discount_total") and order.getOrderProducts() | contains ( p => p.getInitialSumm() and p.getDiscountSumm() / p.getInitialSumm() > 0.35 ) ) or ( changeSet.isCreate() and order.getOrderProducts() | contains ( p => p.getInitialSumm() and p.getDiscountSumm() / p.getInitialSumm() > 0.35 ) ) ) and order.getSite().getCode() == 'garti-me' and user().hasGroup('star-manager')  ( ( Изменяется поле общая скидка по заказу И скидка > 35 ) ИЛИ ( заказ создается И скидка > 35 ) ) И Магазин = 'garti-me' И старший менеджер  Скидки – не более 35% на товар Да
Заказ Скидка не более 5% если есть пр.лоял. skidka-ne-bolee-5-progr-loalnosti ( ( changeSet.hasChangedField("total_summ") and order.discountManualPercent > 5 and order.privilegeType not in ['none'] ) or ( changeSet.isCreate() and order.discountManualPercent > 5 and order.privilegeType not in ['none'] ) ) and order.getSite().getCode() == 'garti-me' and not ( user().hasGroup('rop') or user().hasGroup('director') or user().hasGroup('star-manager') or user().getId() == 29 ) and order.orderMethod.code not in ['wildberries','sber-mega-market'] //способ овормления не WB или СберМегаМаркет  ( ( Изменяется Итоговая Сумма И Процентная скидка на весь заказ > 5 И Тип привелегии заполнено ) ИЛИ ( заказ создается И Процентная скидка на весь заказ > 5 И Тип привелегии заполнено ) ) И Магазин = 'garti-me' И НЕ ( РОП ИЛИ Пользователь относится к группе "Руководитель" ИЛИ старший менеджер ИЛИ Пользователь = 29 ) И способ овормления не WB или СберМегаМаркет Скидки – не более 5% на товар при наличии скидки по программе лояльности Да
Заказ Статус "Выполнен" без полной оплаты заказа status-vipolnen-bez-polnoy-oplati-zakaza ( (changeSet.hasChangedField('status') and changeSet.getNewValue('status').getCode() == 'complete') //изменение статуса И новый статус "Выполнен" and (order.fullPaidAt == null) // И поле "Дата полной оплаты" пустое => заказ не оплачен and not // Исключения для группы "Руководитель отдела продаж" И "Руководитель" ( user().hasGroup('rop') or user().hasGroup('director') ) )  ( (изменение статуса И новый статус "Выполнен")  И (поле "Дата полной оплаты" пустое => заказ не оплачен)  Исключения для группы "Руководитель отдела продаж" И "Руководитель" Заказ не оплачен! Проверьте оплату Да