Перейти к основному контенту

ticket.assignToNextQueuePerson()

Назначить заявку следующему исполнителю

ticket.assignToNextQueuePerson(int $queueMode = 1, ?intint|null $personQueueId = null, ?stringstring|null $personQueueTable = null, ?intint|null $currentAssignAttempt = null, bool $isIncRejectsCount = true, bool $isMoveToEndIfRejectsExceed = true)
Описание:

Назначить заявку следующему исполнителю. Исполнитель будет определен, как первый в очереди распределения по типу заявки.

Логика работы функции:

    1. ищетИщет первую персону из очереди распределения, которой еще не назначали тикет (заявку);.
    2. еслиЕсли персоны нет, то возвращаем false (чтобы остановить триггер распределения очереди);.
    3. увеличиваетУвеличивает счетчик отказов у найденной персоны ;персоны.
    4. увеличиваетсяУвеличивается счетчик отказов по найденному исполнителю;исполнителю.
    5. еслиЕсли кол-во отказов >= $maxRejects, то исполнитель переносится в конец очереди (исполнитель текущий, которого нашли, а не первый в очереди);.
    6. назначаетНазначает заявку найденной персоне.

    Поиск исполнителя выполняется по следующим критериям:

    • исполнительИсполнитель есть в очереди по типу заявки;
    • исполнительИсполнитель активен в очереди распределения (включена соответствующая галка);
    • исполнителюИсполнителю еще не назначалась данная заявка.

    Условие (количество отказов по исполнителю rejects_count < $maxRejects+1) НЕ НУЖНО, т.к.:
    1. Как только лимит превышен персона сразу будет перемещена в конец очереди, а счетчик сброшен; сброшен.
    2. Может возникнуть баг, если лимит превышен, персона никогда не попадет в выборку и ее счетчик не будет сброшен.

    Атрибуты:
    Имя Тип Описание
    queueMode  int

    Режим работы очереди.

    Для работы с очередью на основе видов заявок указывать не нужно, будет использовано значение по умолчанию 1;
    Для работы с очередью на основе видов очередей указать 2.

    personQueueId  ?intint|null id очереди
    personQueueTable  ?stringstring|null Название таблицы-связки для очередей
    currentAssignAttempt  ?intint|null

    Номер попытки прогона одного и того же тикета по той же очереди

    isIncRejectsCount bool Увеличивать или нет счетчик попыток у персоны (в очереди исполнителей)
    isMoveToEndIfRejectsExceed bool Переносить или нет персону в конец очереди и сбрасывать счетчик попыток, если кол-во попыток превышено (превышает число указанное в настройках бота)
    Возвращает:

    bool -— подтверждение назначения заявки следующему исполнителю.

    Пример:
    ticket.assignToNextQueuePerson(2, 1653, null, null, true, false);