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

ticket.assignToNextQueuePerson()

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

ticket.assignToNextQueuePerson(int $queueMode = 1, int|null $personQueueId = null, string|null $personQueueTable = null, int|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  int|null id очереди
personQueueTable  string|null Название таблицы-связки для очередей
currentAssignAttempt  int|null

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

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

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