Как на Битрикс запретить отмену заказа?

Добрый день!
Возник вопрос, как запретить изменение статуса заказа на "Отменен"?
Суть проблемы в том, что сейчас реализован запрет на изменение статуса заказа, если заказ "отправлен" или "доставлен".
Но поменять с "отправлен" на "доставлен" тоже не удается
Как можно запретить заказам со статусом "отправлен" или "доставлен" менять статус на "отменен"?
use Bitrix\Main;

Main\EventManager::getInstance()->addEventHandler(
    'sale',
    'OnSaleOrderBeforeSaved',
    'onSaleOrderBeforeSavedHandler'
);

function onSaleOrderBeforeSavedHandler(Main\Event $event)
{
    global $USER;

    /* @var Order $order */
    $order = $event->getParameter("ENTITY");
    $oldValues = $event->getParameter("VALUES");
    $isNew = $event->getParameter("IS_NEW");

    if (!$isNew) {
        $userGroups = $USER->GetUserGroupArray();

        if ($order->getField('STATUS_ID') === 'J' || $order->getField('STATUS_ID') === 'V') {

            return new \Bitrix\Main\EventResult(
                \Bitrix\Main\EventResult::ERROR,
                new \Bitrix\Sale\ResultError('Редактирование заказа запрещено'),
                'sale'
            );

        }

    }
}
  • Вопрос задан
  • 168 просмотров
Решения вопроса 1
xzdshr
@xzdshr
if ($order->getField('STATUS_ID') === 'J' || $order->getField('STATUS_ID') === 'V') {

Вот здесь у вас безусловный переход в ошибку, если статус 'J' или 'V'.
Какой-то из них судя по всему соответствует 'отправлен', а какой-то 'доставлен'.
Буквы статусов можно посмотреть в админке.

Вот берите это условие и меняйте под свои требования. В чем конкретно проблема? У вас не получается сравнить новый статус со старым?
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через TM ID
Похожие вопросы