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)
Описание:
Назначить заявку следующему исполнителю. Исполнитель будет определен, как первый в очереди распределения по типу заявки.
Логика работы функции:
ищетИщет первую персону из очереди распределения, которой еще не назначали тикет (заявку);.еслиЕсли персоны нет, то возвращаем false (чтобы остановить триггер распределения очереди);.увеличиваетУвеличивает счетчик отказов у найденнойперсоны ;персоны.увеличиваетсяУвеличивается счетчик отказов по найденномуисполнителю;исполнителю.еслиЕсли кол-во отказов >= $maxRejects, то исполнитель переносится в конец очереди (исполнитель текущий, которого нашли, а не первый в очереди);.назначаетНазначает заявку найденной персоне.
Поиск исполнителя выполняется по следующим критериям:
исполнительИсполнитель есть в очереди по типу заявки;исполнительИсполнитель активен в очереди распределения (включена соответствующая галка);исполнителюИсполнителю еще не назначалась данная заявка.
Условие (количество отказов по исполнителю rejects_count < $maxRejects+1) НЕ НУЖНО, т.к.:
1. Как только лимит превышен персона сразу будет перемещена в конец очереди, а счетчик сброшен; сброшен.
2. Может возникнуть баг, если лимит превышен, персона никогда не попадет в выборку и ее счетчик не будет сброшен.
Атрибуты:
| Имя | Тип | Описание |
| queueMode | int |
Режим работы очереди. Для работы с очередью на основе видов заявок указывать не нужно, будет использовано значение по умолчанию 1; |
| personQueueId | id очереди | |
| personQueueTable | Название таблицы-связки для очередей | |
| currentAssignAttempt |
Номер попытки прогона одного и того же тикета по той же очереди |
|
| isIncRejectsCount | bool | Увеличивать или нет счетчик попыток у персоны (в очереди исполнителей) |
| isMoveToEndIfRejectsExceed | bool | Переносить или нет персону в конец очереди и сбрасывать счетчик попыток, если кол-во попыток превышено (превышает число указанное в настройках бота) |
Возвращает:
bool -— подтверждение назначения заявки следующему исполнителю.
Пример:
ticket.assignToNextQueuePerson(2, 1653, null, null, true, false);