Как в админке Битрикс — Заказы, разделить заказы по группе пользователей?

Нужно добавить оформление заказав для оптовиков так же как и для всех пользователей, через сайт. Тут понятно.
Как в админке, в заказах разделить отображение?
т.е. для "менеджеров ИМ розница" - видны все заказы, всех пользователей кроме группы пользователей "ОПТ"
а для "менеджеров ИМ опт" - видны заказы, только группы пользователей "ОПТ"

Вроде как все просто, но не пойму что и как.
Может кто сталкивался, или знает и может поделиться мыслями?
  • Вопрос задан
  • 394 просмотра
Пригласить эксперта
Ответы на вопрос 1
winer
@winer
занимаюсь разработкой сайтов на 1c-bitrix
Можно на событии OnSaleAdminOrderList добавить фильтр. Я привожу пример на основе групп пользователей розницы и оптовиков. Можно легко адаптировать под типы плательщика.

В примере $getListParams это то что будет передано в запрос по OrderTable.

<?php

\Bitrix\Main\EventManager::getInstance()->addEventHandler( 
    'sale', 
    'OnSaleAdminOrderList', 
    'OnSaleAdminOrderListHandler'
); 


function OnSaleAdminOrderListHandler(\Bitrix\Main\Event $event) 
{
    $getListParams = $event->getParameters();
    $reailManagerGroupId = 1; //ID группы менеджеров розницы
    $wholesaleManagerGroupId = 2; //ID группы менеджеров оптовиков
    $optUserGroup = 3; //ID группы оптовых покупателей
    $reatilUserGroup = 4; //ID группы розничных покупателей
    global $USER;

    $userGroups = \CUser::GetUserGroup($USER);
    if (in_array($reailManagerGroupId, $userGroups)) {
        $getListParams["filter"]["USER_GROUP.GROUP_ID"] = $reatilUserGroup;
    } else if(in_array($wholesaleManagerGroupId, $userGroups)) {
        $getListParams["filter"]["USER_GROUP.GROUP_ID"] = $optUserGroup;
    }


    $result = new \Bitrix\Main\EventResult(\Bitrix\Main\EventResult::SUCCESS, $getListParams);
    return $result;
}
Ответ написан
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы