# Методы person # person.update() ### Обновить персону ```JavaScript person.update($data) ``` ##### Описание: Обновляет данные персоны в соответствии с БД. ##### Атрибуты:
ИмяТипОписание
data jsonДанные о персоне в формате json. Возможные поля расписаны ниже
person\_role\_id integerId персоны
is\_external boolЕсли не устанавливать по умолчанию будет установлено 1, означающее что персона является клиентом. А 0 означает что персона является работником бизнеса
user\_id integerId пользователя, привязываемого к персоне
firstname string|nullИмя персоны
lastname string|nullФамилия персоны
middlename string|nullОтчество персоны
email string|nullАдрес электронной почты персоны
phone string|nullНомер телефона персоны
organization\_name string|nullНазвание организации
organization\_address string|nullАдрес организации
comment string|nullКомментарий к персоне
##### Возвращает: **bool** - подтверждение обновления данных. ##### Пример: ```JavaScript person.update({ 'is_external': 1, 'firstname': 'Иван', 'lastname': 'Иванов' }); ``` # person.delete() ### Удалить персону ```JavaScript person.delete() ``` ##### Описание: Удаляет персону лида. ##### Возвращает: **bool** - подтверждение удаления персоны. # person.getAllData() ### Получить все поля персоны ```JavaScript person.getAllData() ``` ##### Описание: Возвращает значения всех полей персоны лида в виде массива. Возвращает: **array** - массив всех значений полей персоны:
- **id** - id персоны; - **business\_id** - id бизнеса; - **bot\_id** - id бота; - **person\_role\_id** - id роли; - **is\_external** - значение поля **Сотрудник/Клиент**; - **user\_id** - id пользователя; - **firstname** - имя; - **lastname** - фамилия; - **middlename** - отчество; - **email** - адрес электронной почты; - **phone** - номер телефона; - **organization\_name** - название организации; - **organization\_address** - адрес организации; - **comment** - комментарий; - **created\_at** - дата создания; - **updated\_at** - дата последнего редактирования; - **deleted\_at** - дата удаления; - все системные поля персоны (по английски). ##### Пример: ```JavaScript let AllData = person.getAllData(); let Data2 = AllData[1]; ``` # person.setData() ### Установить поле персоны ```JavaScript person.setData(string $key, $value) ``` ##### Описание: Заполняет указанное поле персоны лида указанным значением. ##### Атрибуты:
ИмяТипОписание
key stringКлюч наименование поля
value mixedЗначение вводимое в поле
В качестве ключа можно указать: - **id** - id персоны; - **business\_id** - id бизнеса; - **bot\_id** - id бота; - **person\_role\_id** - id роли; - **is\_external** - значение поля **Сотрудник/Клиент**; - **user\_id** - id пользователя; - **firstname** - имя; - **lastname** - фамилия; - **middlename** - отчество; - **email** - адрес электронной почты; - **phone** - номер телефона; - **organization\_name** - название организации; - **organization\_address** - адрес организации; - **comment** - комментарий; - **created\_at** - дата создания; - **updated\_at** - дата последнего редактирования; - **deleted\_at** - дата удаления; - все системные поля персоны (по английски). ##### Возвращает: **self** - значение отредактированного поля в соответствующем формате. ##### Пример: ```JavaScript person.setData('email', 'user@mail.ru'); ``` # person.getData() ### Получить значение данных персоны ```JavaScript person.getData(string $key) ``` ##### Описание: Возвращает значение данных персоны по ключу или названию поля БД. ##### Атрибуты:
ИмяТипОписание
key stringКлюч наименование поля
В качестве ключа можно указать: - **id** - id персоны; - **business\_id** - id бизнеса; - **bot\_id** - id бота; - **person\_role\_id** - id роли; - **is\_external** - значение поля **Сотрудник/Клиент**; - **user\_id** - id пользователя; - **firstname** - имя; - **lastname** - фамилия; - **middlename** - отчество; - **email** - адрес электронной почты; - **phone** - номер телефона; - **organization\_name** - название организации; - **organization\_address** - адрес организации; - **comment** - комментарий; - **created\_at** - дата создания; - **updated\_at** - дата последнего редактирования; - **deleted\_at** - дата удаления; - все системные поля персоны (по английски). ##### Возвращает: **self** - значение запрашиваемого поля в соответствующем формате. ##### Пример: ```JavaScript let createdAt = person.getData('created_at'); ``` # person.issetData() и person.isDataExist() ### Проверить наличие данных по персоне ```JavaScript person.issetData(string $key) ``` или ``` person.isDataExist(string $key) ``` ##### Описание: Проверяет существование данных персоны лида. ##### Атрибуты:
ИмяТипОписание
key stringКлюч наименование поля
В качестве ключа можно указать: - **id** - id персоны; - **business\_id** - id бизнеса; - **bot\_id** - id бота; - **person\_role\_id** - id роли; - **is\_external** - значение поля **Сотрудник/Клиент**; - **user\_id** - id пользователя; - **firstname** - имя; - **lastname** - фамилия; - **middlename** - отчество; - **email** - адрес электронной почты; - **phone** - номер телефона; - **comment** - комментарий; - **created\_at** - дата создания; - **updated\_at** - дата последнего редактирования; - **deleted\_at** - дата удаления; - все системные поля персоны (по английски). ##### Возвращает: **bool** - подтверждение существования данных. ##### Пример: ```JavaScript let DataExist = person.issetData('phone'); ``` или ```JavaScript let DataExist = person.isDataExist('phone'); ``` # person.getId() ### Получить ID персоны ```JavaScript person.getId() ``` ##### Описание: Возвращает id персоны привязанной к лиду. ##### Возвращает: **int** - id персоны в формате числа. ##### Пример: ```JavaScript let PersonId = person.getId(); lead.setAttr('PersonId', PersonId); ``` # person.getFullName() ### Получить полное имя персоны ```JavaScript person.getFullName() ``` ##### Описание: Возвращает полное имя персоны лида в виде **Фамилия + Имя + Отчество**. ##### Возвращает: **string** - полное имя персоны. ##### Пример: ```JavaScript let PersonName = person.getFullName(); lead.setAttr('PersonName', PersonName); ``` # person.getRoleId() ### Получить ID роли персоны ```JavaScript person.getRoleId() ``` ##### Описание: Возвращает id роли привязанной к персоне лида. ##### Возвращает: **int** - id роли персоны в формате числа. ##### Пример: ```JavaScript let RoleId = person.getRoleId(); lead.setAttr('RoleId', RoleId); ``` # person.getRoleName() ### Получить название роли персоны ```JavaScript person.getRoleName() ``` ##### Описание: Возвращает название роли привязанной к персоне лида. ##### Возвращает: **string** - название роли персоны. ##### Пример: ```JavaScript let RoleName = person.getRoleName(); lead.setAttr('RoleName', RoleName); ``` # person.getRoleTitle() ### Получить заголовок роли персоны ```JavaScript person.getRoleTitle() ``` ##### Описание: Возвращает заголовок роли привязанной к персоне лида. ##### Возвращает: **string** - заголовок роли персоны. ##### Пример: ```JavaScript let RoleTitle = person.getRoleTitle(); lead.setAttr('RoleTitle', RoleTitle); ``` # person.getRoleFormattedTitle() ### Получить форматированное название роли персоны ```JavaScript person.getRoleFormattedTitle() ``` ##### Описание: Возвращает форматированное название роли персоны лида. Будет возвращено: - Заголовок роли, если он указан, иначе - Имя роли, если оно указано, иначе - ID роли. ##### Возвращает: **string** - форматированное название роли персоны. ##### Пример: ```JavaScript let FormattedTitle = person.getRoleFormattedTitle(); lead.setAttr('FormattedTitle', FormattedTitle); ``` # person.getPhone() ### Получить номер телефона персоны ```JavaScript person.getPhone() ``` ##### Описание: Находит номер телефона персоны лида. ##### Возвращает: **string** - номер телефона персоны в формате строки. # person.setPhone() ### Установить номер телефона персоны ```JavaScript person.setPhone(?string $phone) ``` ##### Описание: Устанавливает значение номера телефона персоны лида. ##### Атрибуты:
ИмяТипОписание
phone stringНомер телефона
##### Возвращает: **bool** - подтверждение установки значения. ##### Пример: ```JavaScript person.setPhone('+71234567890'); ``` # person.getEmail() ### Получить почту персоны ```JavaScript person.getEmail() ``` ##### Описание: Находит адрес электронной почты персоны лида. ##### Возвращает: **string** - адрес электронной почты персоны в формате строки. # person.addToQueue() ### Добавление персоны в очередь ```JavaScript person.addToQueue(?int $personQueueId = null, ?string $personQueueTable = null, ?int $ticketTypeId = null, bool $isActive = true, int $rejectsCount = 0) ``` ##### Описание: Добавляет персону в указанную очередь. ##### Атрибуты:
ИмяТипОписание
personQueueIdintID вида очереди, в которую будет добавлена персона
personQueueTablestringНаименование кастомной таблицы
ticketTypeIdintID вида заявки, в очередь которой будет добавлена персона
isActiveboolАктивность персоны в очереди
rejectsCountintКоличество отказов от заявки

Одновременно в методе может быть указан либо только вид заявки, либо только вид очереди (одна из этих переменных должна содержать значение null). Так же по видам заявок не должна допускаться установка значения кастомной таблицы

##### Возвращает: **int** - id добавленной персоны. ##### Пример: ```JavaScript person.addToQueue(null, null, 2541); ``` # person.removeFromQueue() ### Удаление персоны из очереди ```JavaScript person.removeFromQueue(?int $personQueueId = null, ?string $personQueueTable = null, ?int $ticketTypeId = null) ``` ##### Описание: Удаляет персону из указанной очереди. ##### Атрибуты:
ИмяТипОписание
personQueueIdintID вида очереди
personQueueTablestringНаименование кастомной таблицы
ticketTypeIdintID вида заявки

Одновременно в методе может быть указан либо только вид заявки, либо только вид очереди (одна из этих переменных должна содержать значение null)

##### Возвращает: **bool** - подтверждение удаления персоны. ##### Пример: ```JavaScript person.removeFromQueue(3527, "table"); ``` # person.moveToEndOfQueue() ### Перемещение персоны в конец очереди ```JavaScript person.moveToEndOfQueue(int $queueMode = 1, ?int $personQueueId = null, ?string $personQueueTable = null, ?int $ticketTypeId = null, bool $isResetRejectsCount = true) ``` ##### Описание: Перемещает персону в конец указанной очереди, либо в конец нескольких очередей. ##### Атрибуты:
ИмяТипОписание
queueMode intРежим работы очереди. Для работы с очередью на основе видов заявок указывать не нужно, будет использовано значение по умолчанию **1**; Для работы с очередью на основе видов очередей указать **2**
personQueueId ?intid очереди
personQueueTable ?stringНазвание таблицы-связки для очередей
ticketTypeIds int|array|object|null**$ticketTypeIds = null**, то персона будет перемещена в конец очереди по всем типам заявок; **$ticketTypeIds = число**, то персона будет перемещена в конец очереди по указанному типу заявки; **$ticketTypeIds = строка** **с перечислениями** типов заявок через запятую, то персона будет перемещена в конец очереди по указанным типам заявок (например 1,2,3); **$ticketTypeIds = строка без перечислений** через запятую, ticketTypeIds будет приведен к типу = число и персона будет перемещена в конец очереди по указанному типу заявки; **$ticketTypeIds = json массив**, то персона будет перемещена в конец очереди по всем типам заявок (например \[1,2,3\])
isResetRejectsCount boolОбнулить количество отказов персоны
##### Возвращает: **bool** - подтверждение удачного перемещения персоны. ##### Пример: ```JavaScript person.moveToEndOfQueue(2, 3352, null, [1013]); persons.moveToEndOfQueue(); ``` # person.setIsActiveInQueue() ### Активация/деактивация персоны в очереди ```JavaScript person.setIsActiveInQueue(bool $isActive = true) ``` ##### Описание: Включает или выключает параметр **Активна** персоны в очереди. ##### Атрибуты:
ИмяТипОписание
isActive boolАктивировать или деактивировать персону в очереди
##### Возвращает: **bool** - подтверждение активации или деактивации. ##### Пример: ``` persons.setIsActiveInQueue(true); ```