# Методы ticket
# ticket.update()
#### Обновление заявки, через объект заявки
```JavaScript
ticket.update($data)
```
##### Описание:
Обновляет заявку соответствующую указанным данным.
##### Атрибуты:
Имя | Тип | Описание |
data | json | Данные о заявке в формате json. Возможные поля расписаны ниже |
title | string | Заголовок заявки |
ticket\_type\_id | int | Id типа заявки |
status\_id | int | Id статуса заявки |
author\_person\_id
| int | Id автора заявки |
client\_person\_id
| int | Id клиента заявки |
assigned\_person\_id
| int | Id исполнителя заявки |
description
| string | Описание заявки |
##### Возвращает:
**bool** - подтверждение обновления заявки.
##### Пример:
```JavaScript
let ticketData = {
'title': 'Создано в боте',
'ticket_type_id': 1013,
'status_id': 1096
};
ticketData.custom = {
'client_contacts': 'my contacts',
'details': 'some details'
};
let isUpdated = ticket.update(ticketData);
lead.setAttr('is_ticket_updated', isUpdated);
```
Пример обновления одного поля заявки:
```JavaScript
let ticket = bot.findTickets([['id', ticketId]])[0];
let ticketData = {
'client_comment': lead.getAttr('Отзыв')
};
ticket.update(ticketData);
```
# ticket.getData()
#### Получить значение данных заявки
```JavaScript
ticket.getData(string $key)
```
##### Описание:
Получить значение данных заявки по ключу или названию поля БД.
##### Атрибуты:
Имя | Тип | Описание |
key | string | Ключ наименование поля |
В качестве ключа можно указать:
- **id** - id заявки;
- **business\_id** - id бизнеса;
- **bot\_id** - id бота;
- **author\_person\_id** - id автора заявки;
- **client\_person\_id** - id клиента заявки;
- **assigned\_person\_id** - id исполнителя заявки;
- **ticket\_type\_id** - id вида заявки, виды заявки создаются вручную;
- **payment\_type\_id** - id способа оплаты. Доступные значения:
- 0 - PAYMENT\_TYPE\_NONE;
- **1** - PAYMENT\_TYPE\_ROBOKASSA;
- **2** - PAYMENT\_TYPE\_YANDEXKASSA;
- **3** - PAYMENT\_TYPE\_CASH;
- **status\_id** - id статуса заявки;
- **title** - заголовок заявки;
- **description** - описание заявки;
- **created\_at** - время создания заявки;
- **updated\_at** - время обновления заявки;
- **deleted\_at** - время удаления заявки;
- все системные поля заявки (по английски).
##### Возвращает:
**mixed** - если значение найдено
или
**null** - если значение не найдено.
##### Пример:
```JavaScript
let Data = ticket.getData('title');
```
# ticket.getCustomData()
### Считывание произвольных полей заявки
```JavaScript
ticket.getCustomData(string $key)
```
##### Описание:
Находит значение указанного типа произвольного поля заявки.
##### Атрибуты:
Имя | Тип | Описание |
key | string | Ключ наименование поля |
В качестве ключа можно указать:
- **названия всех произвольных полей заявки**;
- **id** - id заявки;
- **business\_id** - id бизнеса;
- **bot\_id** - id бота;
- **author\_person\_id** - id автора заявки;
- **client\_person\_id** - id клиента заявки;
- **assigned\_person\_id** - id исполнителя заявки;
- **ticket\_type\_id** - id вида заявки, виды заявки создаются вручную;
- **payment\_type\_id** - id способа оплаты. Доступные значения:
- 0 - PAYMENT\_TYPE\_NONE;
- **1** - PAYMENT\_TYPE\_ROBOKASSA;
- **2** - PAYMENT\_TYPE\_YANDEXKASSA;
- **3** - PAYMENT\_TYPE\_CASH;
- **status\_id** - id статуса заявки;
- **title** - заголовок заявки;
- **description** - описание заявки;
- **created\_at** - время создания заявки;
- **updated\_at** - время обновления заявки;
- **deleted\_at** - время удаления заявки;
- все системные поля заявки (по английски).
Можно получить код значения, используя суффикс **".raw"** к имени произвольного поля. Т.е. если в заявке установлено из опций поля с именем age второе значение:
({
"1": "18-25 лет",
"2": "25-30 лет",
"3": "30-35 лет",
"4": "35-40 лет",
"5": "Больше 40 лет",
"6": "Не важно"
})
то **ticket.getCustomData('age')** вернёт "25-30 лет", **ticket.getCustomData('age.raw')** вернёт "2".
##### Возвращает:
**mixed** - если значение найдено
или
**null** - если значение не найдено.
##### Пример:
```JavaScript
let tickets = bot.findTickets();
for (let i = 0; i < tickets.length; i++) {
lead.setAttr('tickets_' + i + '_tickets_title', tickets[i].getData('title'));
lead.setAttr('tickets_' + i + '_client_contacts', tickets[i].getCustomData('client_contacts'));
lead.setAttr('tickets_' + i + '_details', tickets[i].getCustomData('details'));
lead.setAttr('tickets_' + i + '_статус_имя', tickets[i].getCustomData('статус.имя'));
}
lead.setAttr('found_tickets_count', tickets.length);
```
# ticket.issetData() и ticket.isDataExist()
#### Проверить наличие данных по заявке
```JavaScript
ticket.issetData(string $key)
```
или
```JavaScript
ticket.isDataExist(string $key)
```
##### Описание:
Проверяет существуют ли данные заявки по заданному ключу.
##### Атрибуты:
Имя | Тип | Описание |
key | string | Ключ наименование поля |
В качестве ключа можно указать:
- **id** - id заявки;
- **business\_id** - id бизнеса;
- **bot\_id** - id бота;
- **author\_person\_id** - id автора заявки;
- **client\_person\_id** - id клиента заявки;
- **assigned\_person\_id** - id исполнителя заявки;
- **ticket\_type\_id** - id вида заявки, виды заявки создаются вручную;
- **payment\_type\_id** - id способа оплаты. Доступные значения:
- 0 - PAYMENT\_TYPE\_NONE;
- **1** - PAYMENT\_TYPE\_ROBOKASSA;
- **2** - PAYMENT\_TYPE\_YANDEXKASSA;
- **3** - PAYMENT\_TYPE\_CASH;
- **status\_id** - id статуса заявки;
- **title** - заголовок заявки;
- **description** - описание заявки;
- **created\_at** - время создания заявки;
- **updated\_at** - время обновления заявки;
- **deleted\_at** - время удаления заявки;
- все системные поля заявки (по английски).
##### Возвращает:
**bool** - подтверждение существования данных.
##### Пример:
```JavaScript
let Data = ticket.issetData('title');
```
или
```JavaScript
let Data = ticket.isDataExist('title');
```
# ticket.reloadCustomData()
### Перезагрузка кастомных данных
```JavaScript
ticket.reloadCustomData(bool $isReloadModel = false)
```
##### Описание:
Перезагружает кастомные поля заявки.
##### Атрибуты:
Имя | Тип | Описание |
isReloadModel | bool | Перезагружает и системные поля заявки, вызывая ticket.reloadTicket() |
##### Возвращает:
**bool** — подтверждение успешной перезагрузки.
# ticket.setAllCustomData()
### Переопределить список кастомных полей
```JavaScript
ticket.setAllCustomData(array $customData)
```
##### Описание:
Не переносится в БД. Будет переопределен массив кастомных полей в памяти, используется для внутренних целей задания значений полей.
##### Атрибуты:
Имя | Тип | Описание |
customData | array | Массив кастомных полей |
##### Возвращает:
**self** - тип указанный при вызове метода.
##### Пример:
```JavaScript
ticket.setAllCustomData([{
"место": "Место 01",
"время": "12:30"
}]);
```
# ticket.getAllCustomData()
### Получить список кастомных полей
```JavaScript
ticket.getAllCustomData()
```
##### Описание:
Возвращает значения всех кастомных полей.
##### Возвращает:
**array** - массив значений кастмных полей.
# ticket.setCustomData()
### Установить значение кастомного поля
```JavaScript
ticket.setCustomData(string $key, $value)
```
##### Описание:
Устанавливает значение кастомного поля. Не сохраняется в БД.
##### Атрибуты:
Имя | Тип | Описание |
key | string | Ключ наименование поля |
value | self | Значение поля |
В качестве ключа можно указать:
- **названия всех произвольных полей заявки**;
- **id** - id заявки;
- **business\_id** - id бизнеса;
- **bot\_id** - id бота;
- **author\_person\_id** - id автора заявки;
- **client\_person\_id** - id клиента заявки;
- **assigned\_person\_id** - id исполнителя заявки;
- **ticket\_type\_id** - id вида заявки, виды заявки создаются вручную;
- **payment\_type\_id** - id способа оплаты. Доступные значения:
- 0 - PAYMENT\_TYPE\_NONE;
- **1** - PAYMENT\_TYPE\_ROBOKASSA;
- **2** - PAYMENT\_TYPE\_YANDEXKASSA;
- **3** - PAYMENT\_TYPE\_CASH;
- **status\_id** - id статуса заявки;
- **title** - заголовок заявки;
- **description** - описание заявки;
- **created\_at** - время создания заявки;
- **updated\_at** - время обновления заявки;
- **deleted\_at** - время удаления заявки;
- все системные поля заявки (по английски).
##### Возвращает:
**self** - тип указанный при вызове метода.
##### Пример:
```JavaScript
ticket.setCustomData("место", "Место1");
```
# ticket.issetCustomData()
### Имеет ли значение кастомное поле
```JavaScript
ticket.issetCustomData(string $key)
```
##### Описание:
Проверяет существует ли ключ и не имеет ли он значение null.
##### Атрибуты:
Имя | Тип | Описание |
key | string | Ключ наименование поля |
В качестве ключа можно указать:
- **названия всех произвольных полей заявки**;
- **id** - id заявки;
- **business\_id** - id бизнеса;
- **bot\_id** - id бота;
- **author\_person\_id** - id автора заявки;
- **client\_person\_id** - id клиента заявки;
- **assigned\_person\_id** - id исполнителя заявки;
- **ticket\_type\_id** - id вида заявки, виды заявки создаются вручную;
- **payment\_type\_id** - id способа оплаты. Доступные значения:
- 0 - PAYMENT\_TYPE\_NONE;
- **1** - PAYMENT\_TYPE\_ROBOKASSA;
- **2** - PAYMENT\_TYPE\_YANDEXKASSA;
- **3** - PAYMENT\_TYPE\_CASH;
- **status\_id** - id статуса заявки;
- **title** - заголовок заявки;
- **description** - описание заявки;
- **created\_at** - время создания заявки;
- **updated\_at** - время обновления заявки;
- **deleted\_at** - время удаления заявки;
- все системные поля заявки (по английски).
##### Возвращает:
**bool** - подтверждение существования ключа.
##### Пример:
```JavaScript
ticket.issetCustomData("время");
```
# ticket.isCustomDataExist()
### Существует ли кастомное поле
```JavaScript
ticket.isCustomDataExist(string $key)
```
##### Описание:
Проверяет существует ли такой ключ в списке кастомных полей.
##### Атрибуты:
Имя | Тип | Описание |
key | string | Ключ наименование поля |
В качестве ключа можно указать:
- **названия всех произвольных полей заявки**;
- **id** - id заявки;
- **business\_id** - id бизнеса;
- **bot\_id** - id бота;
- **author\_person\_id** - id автора заявки;
- **client\_person\_id** - id клиента заявки;
- **assigned\_person\_id** - id исполнителя заявки;
- **ticket\_type\_id** - id вида заявки, виды заявки создаются вручную;
- **payment\_type\_id** - id способа оплаты. Доступные значения:
- 0 - PAYMENT\_TYPE\_NONE;
- **1** - PAYMENT\_TYPE\_ROBOKASSA;
- **2** - PAYMENT\_TYPE\_YANDEXKASSA;
- **3** - PAYMENT\_TYPE\_CASH;
- **status\_id** - id статуса заявки;
- **title** - заголовок заявки;
- **description** - описание заявки;
- **created\_at** - время создания заявки;
- **updated\_at** - время обновления заявки;
- **deleted\_at** - время удаления заявки;
- все системные поля заявки (по английски).
##### Возвращает:
**bool** - подтверждение существования ключа.
##### Пример:
```JavaScript
ticket.isCustomDataExist("место");
```
# ticket.getTicketTypeName()
#### Получить название типа заявки
```
ticket.getTicketTypeName()
```
##### Описание:
Находит название типа заявки.
##### Возвращает:
**string** — название типа заявки
или
**null** — если у заявки нет типа.
# ticket.getStatusId() и ticket.getAttr('status_id')
#### Получить ID статуса заявки
```JavaScript
ticket.getStatusId()
```
или
```
ticket.getAttr('status_id')
```
##### Описание:
Находит id статуса заявки.
##### Атрибуты:
Имя | Тип | Описание |
status\_id | string | Ключ id статуса заявки |
##### Возвращает:
**int** — id статуса заявки
или
**null** — если у заявки нет статуса.
# ticket.getStatusName()
#### Получить название статуса заявки
```
ticket.getStatusName()
```
##### Описание:
Находит название статуса заявки.
##### Возвращает:
**string** — название статуса заявки
или
**null** — если у заявки нет статуса.
# ticket.getStatusType()
#### Получить тип статуса заявки
```JavaScript
ticket.getStatusType()
```
##### Описание:
Находит тип статуса заявки.
##### Возвращает:
**string** — тип статуса заявки
или
**null** — если у заявки нет статуса или у статуса нет типа.
# ticket._sanitizeString()
#### Приведение названия статуса к стандартному виду
```JavaScript
ticket._sanitizeString($string)
```
##### Описание:
Вспомогательная функция используемая для приведения названия статуса к нижнему регистру и удаления лишних символов из названия.
##### Атрибуты:
Имя | Тип | Описание |
statusNme | string | Наименование статуса заявки |
##### Возвращает:
**string** - обновленное наименование статуса заявки.
В v8 скриптах не используется.
# ticket.isInStatus()
### Проверить статус заявки
```JavaScript
ticket.isInStatus($statusName)
```
##### Описание:
Проверить, что заявка находится в статусе с именем $statusName.
##### Атрибуты:
Имя | Тип | Описание |
statusName | string | Наименование статуса заявки |
##### Возвращает:
**bool** — подтверждение, что заявка находится в указанном статусе.
# ticket.setStatusId()
#### Установить статус заявки по id
```JavaScript
ticket.setStatusId(int|null $statusId, int|null $personQueueIdForLog = null, string|null $personQueueTableForLog = null)
```
##### Описание:
Устанавливает указанный статус для заявки по id.
##### Атрибуты:
Имя | Тип | Описание |
statusId | int|null | id статуса заявки |
personQueueIdForLog | int|null | id очереди записываемый в лог |
personQueueTableForLog | string|null | Название таблицы-связки для очередей записываемое в лог |
##### Возвращает:
**bool** — подтверждение установки нового статуса.
# ticket.setStatusByName()
#### Установить статус заявки по имени
```JavaScript
ticket.setStatusByName(string $statusName, int|null $personQueueIdForLog = null, string|null $personQueueTableForLog = null)
```
##### Описание:
Устанавливает указанный статус для заявки по имени.
##### Атрибуты:
Имя | Тип | Описание |
statusName | string | Наименование статуса заявки |
personQueueIdForLog | int|null | id очереди записываемый в лог |
personQueueTableForLog | string|null | Название таблицы-связки для очередей записываемое в лог |
##### Возвращает:
**bool** — подтверждение установки нового статуса.
# ticket.reloadTicket()
#### Загрузить заявку повторно
```JavaScript
ticket.reloadTicket()
```
##### Описание:
Загрузить заявку повторно из БД. Автоматически выполняется, например, в случае изменения статуса заявки, назначении другого исполнителя и т.п.
##### Возвращает:
**bool** — подтверждение повторной загрузки заявки.
# ticket.getAuthorPersonId()
#### Получить ID автора заявки
```JavaScript
ticket.getAuthorPersonId()
```
##### Описание:
Возвращает id автора заявки.
##### Возвращает:
**int** — id автора заявки в формате числа
или
**null** — если автор не найден.
# ticket.getAssignedPersonId()
#### Получить ID исполнителя заявки
```JavaScript
ticket.getAssignedPersonId()
```
##### Описание:
Возвращает id исполнителя заявки.
##### Возвращает:
**int** — id исполнителя заявки в формате числа
или
**null** — если исполнитель не найден.
# ticket.getClientPersonId()
#### Получить ID клиента заявки
```JavaScript
ticket.getClientPersonId()
```
##### Описание:
Возвращает id клиента заявки.
##### Возвращает:
**int** — id клиента заявки в формате числа
или
**null** — если клиент не найден.
# ticket.getAuthorPersonFullName()
#### Получить ФИО автора заявки
```JavaScript
ticket.getAuthorPersonFullName()
```
##### Описание:
Возвращает ФИО автора заявки.
##### Возвращает:
**string** — ФИО автора заявки.
# ticket.getAssignedPersonFullName()
### Получить ФИО исполнителя заявки
```JavaScript
ticket.getAssignedPersonFullName()
```
##### Описание:
Возвращает ФИО исполнителя заявки.
##### Возвращает:
**string** — ФИО исполнителя заявки.
# ticket.getClientPersonFullName()
### Получить ФИО клиента заявки
```JavaScript
ticket.getClientPersonFullName()
```
##### Описание:
Возвращает ФИО клиента заявки.
##### Возвращает:
**string** — ФИО клиента заявки.
# ticket.getAuthorPersonRoleId()
### Получить ID роли автора заявки
```JavaScript
ticket.getAuthorPersonRoleId()
```
##### Описание:
Возвращает ID роли автора заявки.
##### Возвращает:
**int** — ID роли автора заявки
или
**null** — если клиент или роль не найдены.
# ticket.getAssignedPersonRoleId()
#### Получить ID роли исполнителя заявки
```JavaScript
ticket.getAssignedPersonRoleId()
```
##### Описание:
Возвращает ID роли исполнителя заявки.
##### Возвращает:
**int** — ID роли исполнителя заявки
или
**null** — если клиент или роль не найдены.
# ticket.getClientPersonRoleId()
### Получить ID роли клиента заявки
```JavaScript
ticket.getClientPersonRoleId()
```
##### Описание:
Возвращает ID роли клиента заявки.
##### Возвращает:
**int** — ID роли клиента заявки
или
**null** — если клиент или роль не найдены.
# ticket.getAuthorPersonRoleName()
### Получить имя роли автора заявки
```JavaScript
ticket.getAuthorPersonRoleName()
```
##### Описание:
Возвращает имя роли автора заявки.
##### Возвращает:
**string** — имя роли автора заявки.
# ticket.getAssignedPersonRoleName()
#### Получить имя роли исполнителя заявки
```JavaScript
ticket.getAssignedPersonRoleName()
```
##### Описание:
Возвращает имя роли исполнителя заявки.
##### Возвращает:
**string** — имя роли исполнителя заявки.
# ticket.getClientPersonRoleName()
### Получить имя роли клиента заявки
```JavaScript
ticket.getClientPersonRoleName()
```
##### Описание:
Возвращает имя роли клиента заявки.
##### Возвращает:
**string** — имя роли клиента заявки.
# ticket.getAuthorPersonRoleTitle()
### Получить заголовок роли автора заявки
```JavaScript
ticket.getAuthorPersonRoleTitle()
```
##### Описание:
Возвращает заголовок роли автора заявки.
##### Возвращает:
**string** — заголовок роли автора заявки.
# ticket.getAssignedPersonRoleTitle()
#### Получить заголовок роли исполнителя заявки
```JavaScript
ticket.getAssignedPersonRoleTitle()
```
##### Описание:
Возвращает заголовок роли исполнителя заявки.
##### Возвращает:
**string** — заголовок роли исполнителя заявки.
# ticket.getClientPersonRoleTitle()
### Получить заголовок роли клиента заявки
```JavaScript
ticket.getClientPersonRoleTitle()
```
##### Описание:
Возвращает заголовок роли клиента заявки.
##### Возвращает:
**string** — заголовок роли клиента заявки.
# ticket.getAuthorPersonRoleFormattedTitle()
### Получить форматированное название роли автора заявки
```JavaScript
ticket.getAuthorPersonRoleFormattedTitle()
```
##### Описание:
Возвращает форматированное название роли автора заявки.
##### Возвращает:
**string** — форматированное название роли автора заявки.
# ticket.getAssignedPersonRoleFormattedTitle()
### Получить форматированное название роли исполнителя заявки
```JavaScript
ticket.getAssignedPersonRoleFormattedTitle()
```
##### Описание:
Возвращает форматированное название роли исполнителя заявки.
##### Возвращает:
**string** — форматированное название роли исполнителя заявки.
# ticket.getClientPersonRoleFormattedTitle()
### Получить форматированное название роли клиента заявки
```JavaScript
ticket.getClientPersonRoleFormattedTitle()
```
##### Описание:
Возвращает форматированное название роли клиента заявки.
##### Возвращает:
**string** — форматированное название роли клиента заявки.
# ticket.getPerson1Id()
### Получение id первой дополнительной персоны
```JavaScript
ticket.getPerson1Id()
```
##### Описание:
Возвращает id первой дополнительной персоны заявки.
##### Возвращает:
**int** — id персоны в формате числа
или
**null** — если персона не найдена.
# ticket.getPerson2Id()
### Получение id второй дополнительной персоны
```JavaScript
ticket.getPerson2Id()
```
##### Описание:
Возвращает id второй дополнительной персоны заявки.
##### Возвращает:
**int** — id персоны в формате числа
или
**null** — если персона не найдена.
# ticket.getPerson3Id()
### Получение id третьей дополнительной персоны
```JavaScript
ticket.getPerson3Id()
```
##### Описание:
Возвращает id третьей дополнительной персоны заявки.
##### Возвращает:
**int** — id персоны в формате числа
или
**null** — если персона не найдена.
# ticket.setPerson1Id()
### Установка id первой дополнительной персоны
```JavaScript
ticket.setPerson1Id(int|null $personId)
```
##### Описание:
Устанавливает id первой дополнительной персоны заявки.
##### Атрибуты:
Имя | Тип | Описание |
personId | int|null | ID персоны |
##### Возвращает:
**bool** — подтверждение установки значения.
# ticket.setPerson2Id()
### Установка id второй дополнительной персоны
```JavaScript
ticket.setPerson2Id(int|null $personId)
```
##### Описание:
Устанавливает id второй дополнительной персоны заявки.
##### Атрибуты:
Имя | Тип | Описание |
personId | int|null | ID персоны |
##### Возвращает:
**bool** — подтверждение установки значения.
# ticket.setPerson3Id()
### Установка id третьей дополнительной персоны
```JavaScript
ticket.setPerson3Id(int|null $personId)
```
##### Описание:
Устанавливает id третьей дополнительной персоны заявки.
##### Атрибуты:
Имя | Тип | Описание |
personId | int|null | ID персоны |
##### Возвращает:
**bool** — подтверждение установки значения.
# ticket.assignToNextQueuePerson()
#### Назначить заявку следующему исполнителю
```JavaScript
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** — подтверждение назначения заявки следующему исполнителю.
# ticket.moveAssignedPersonToEndOfQueue()
#### Перенести исполнителя в конец очереди
```JavaScript
ticket.moveAssignedPersonToEndOfQueue(int $queueMode = 1, int|null $personQueueId = null, string|null $personQueueTable = null, bool $isResetRejectsCount = true)
```
##### Описание:
Используется для скрипта "Приема заявки" в боте, чтобы переместить исполнителя в конец очереди, после того как он принял заявку.
Переносит персону, которой в данный момент назначен тикет, в конец очереди, при этом исполнитель заявки не меняется.
##### Атрибуты:
Имя | Тип | Описание |
queueMode | int | Режим работы очереди.
Для работы с очередью на основе видов заявок указывать не нужно, будет использовано значение по умолчанию **1**;
Для работы с очередью на основе видов очередей указать **2.**
|
personQueueId | int|null | id очереди |
personQueueTable | string|null | Название таблицы-связки для очередей |
isResetRejectsCount | bool | Обновить или нет счетчик попыток у персоны (в очереди исполнителей) |
##### Возвращает:
**bool** — подтверждение переноса исполнителя.
# ticket.assignToPersonById()
#### Назначить исполнителя заявки
```JavaScript
ticket.assignToPersonById(int|null $personId, int|null $personQueueIdForLog = null, string|null $personQueueTableForLog = null, int|null $assignAttemptForLog = null)
```
##### Описание:
Назначает указанного исполнителя для заявки. Для сброса персоны необходимо указать null в аргументах функции.
##### Атрибуты:
Имя | Тип | Описание |
personId | int|null | id персоны-исполнителя |
personQueueIdForLog | int|null | id очереди записываемый в лог |
personQueueTableForLog | string|null | Название таблицы-связки для очередей записываемое в лог |
assignAttemptForLog | int|null | Номер попытки прогона одного и того же тикета по той же очереди записываемый в лог |
##### Возвращает:
**bool** — подтверждение назначения исполнителя.
# ticket.getAssignedPersonRejectsCount()
#### Получить количество отказов от заявок
```JavaScript
ticket.getAssignedPersonRejectsCount(int|null $personQueueId = null, string|null $personQueueTable = null): ?int
```
##### Описание:
Возвращает количество отказов от заявок для текущего исполнителя.
##### Атрибуты:
Имя | Тип | Описание |
personQueueId | int|null | id очереди |
personQueueTable | string|null | Название таблицы-связки для очередей |
##### Возвращает:
**int** — количество отказов от заявок в формате числа.
# ticket.setAssignedPersonRejectsCount()
#### Установить количество отказов от заявок
```JavaScript
ticket.setAssignedPersonRejectsCount(int $rejectsCount, int|null $personQueueId = null, string|null $personQueueTable = null)
```
##### Описание:
Установить количество отказов от заявок для текущего исполнителя.
##### Атрибуты:
Имя | Тип | Описание |
rejectsCount | int | Количество отказов |
personQueueId | int|null | id очереди |
personQueueTable | string|null | Название таблицы-связки для очередей |
##### Возвращает:
**bool** — подтверждение успешной установки отказов.
# ticket.incAssignedPersonRejectsCount()
#### Увеличить количество отказов от заявок
```JavaScript
ticket.incAssignedPersonRejectsCount(int|null $personQueueId = null, string|null $personQueueTable = null)
```
##### Описание:
Увеличить количество отказов от заявок для текущего исполнителя на 1. Метод не сбрасывает кол-во попыток, если значение будет больше чем указанное в боте максимальное количество отказов.
##### Атрибуты:
Имя | Тип | Описание |
personQueueId | int|null | id очереди |
personQueueTable | string|null | Название таблицы-связки для очередей |
##### Возвращает:
**bool** — подтверждение успешного увеличения отказов.
# ticket.assignToNextPersonAndMoveToEnd()
### Назначить заявку следующему исполнителю и перенести в конец очереди
```JavaScript
ticket.assignToNextPersonAndMoveToEnd()
```
##### Описание:
Назначает заявку следующему исполнителю и переносит его в конец очереди.
##### Возвращает:
**bool** — подтверждение назначения заявки.