예제 #1
0
        $res = \Bitrix\Sale\Order::unlock($ID);
        if ($res->isSuccess()) {
            \Bitrix\Sale\DiscountCouponsManager::clearByOrder($ID);
        }
    }
    if (isset($_REQUEST['target']) && 'list' == $_REQUEST['target']) {
        LocalRedirect("sale_order.php?lang=" . LANGUAGE_ID . GetFilterParams("filter_", false));
    } else {
        LocalRedirect("sale_order_edit.php?ID=" . $ID . "&lang=" . LANGUAGE_ID . GetFilterParams("filter_", false));
    }
}
require_once $_SERVER["DOCUMENT_ROOT"] . "/bitrix/modules/sale/lib/helpers/admin/orderedit.php";
//load order
$boolLocked = \Bitrix\Sale\Order::isLocked($ID);
if ($boolLocked) {
    $result->addError(new \Bitrix\Main\Entity\EntityError(OrderEdit::getLockingMessage($ID)));
}
$allowedStatusesView = array();
$order = Bitrix\Sale\Order::load($_REQUEST["ID"]);
if ($order) {
    $allowedStatusesView = \Bitrix\Sale\OrderStatus::getStatusesUserCanDoOperations($USER->GetID(), array('view'));
}
if (!$order || !in_array($order->getField("STATUS_ID"), $allowedStatusesView)) {
    LocalRedirect("/bitrix/admin/sale_order.php?lang=" . LANGUAGE_ID . GetFilterParams("filter_", false));
}
$allowedStatusesUpdate = \Bitrix\Sale\OrderStatus::getStatusesUserCanDoOperations($USER->GetID(), array('update'));
if (!in_array($order->getField("STATUS_ID"), $allowedStatusesUpdate)) {
    LocalRedirect("/bitrix/admin/sale_order_view.php?ID=" . $ID . "&lang=" . LANGUAGE_ID . GetFilterParams("filter_"));
}
$userId = isset($_POST["USER_ID"]) ? intval($_POST["USER_ID"]) : $order->getUserId();
OrderEdit::initCouponsData($userId, $ID, isset($_POST["OLD_USER_ID"]) ? intval($_POST["USER_ID"]) : null);