# Методы ticketStatuses
# ticketStatuses.reload()
### Перезагрузить все статусы из БД
```JavaScript
ticketStatuses.reload()
```
##### Описание:
Перезагружает все статусы из БД.
##### Возвращает:
**bool** - подтверждение перезагрузки.
# ticketStatuses.getCollection()
#### Получить Laravel Collection
```JavaScript
ticketStatuses.getCollection()
```
##### Описание:
Возвращает коллекцию статусов заявок.
##### Возвращает:
**?Collection** - данные статусов в виде коллекции.
##### Пример:
```JavaScript
let collection = ticketStatuses.find([['name', 'like', 'СТАТУС']], true);
status = collection.last();
status = status['_object'] ? status['_object'] : null;
lead.setAttr('7_status_from_collection', status ? status.name : null);
collection = collection.reload();
collection = ticketStatuses.getCollection();
statuses = collection.where('name', '=', 'статус 1');
status = statuses.first();
status = (status && status['_object']) ? status['_object'] : null;
lead.setAttr('8_status_from_collection', status ? status.name : null);
```
# ticketStatuses.find()
#### Поиск статусов
```JavaScript
ticketStatuses.find(array|object|null $where, bool $isReturnCollection = false)
```
##### Описание:
Находит статусы соответствующие указанным данным.
##### Атрибуты:
Имя | Тип | Описание |
where | array|object|null | Параметр по которому будет проверяться соответствие с найденными статусами |
isReturnCollection | bool | Параметр позволяющий вернуть значения в виде коллекции |
##### Возвращает:
**?ScriptTicketStatus** - v8 обертка над моделью
или
**Collection** - данные статусов в виде коллекции.
##### Пример:
```JavaScript
let statuses = ticketStatuses.find([['name', 'like', 'СТАТУС']]);
lead.setAttr('6_found_ticket_statuses_count', statuses.length);
let collection = ticketStatuses.find([['name', 'like', 'СТАТУС']], true);
status = collection.last();
status = status['_object'] ? status['_object'] : null;
lead.setAttr('7_status_from_collection', status ? status.name : null);
```
### Атрибуты и методы ScriptTicketStatus
После получения **ScriptTicketStatus** над ним можно работать с помощью следующих методов для получения необходимых значений:
Описание | Метод | Возвращаемое значение |
Получение элемента
| - .last()
- .first()
- .where()
| **?string** |
Обновление
| - .reload()
| **bool** |
Получение даты создания
| - created\_at
- createdAt
- getCreatedAtFormatted(string $format = 'Y-m-d H:i:s', ?string $timeZone = null): ?string
- createdAtFormatted(string $format = 'Y-m-d H:i:s', ?string $timeZone = null)
| **?string** |
Получение даты обновления
| - updated\_at
- updatedAt
- getUpdatedAtFormatted(string $format = 'Y-m-d H:i:s', ?string $timeZone = null): ?string
- updatedAtFormatted(string $format = 'Y-m-d H:i:s', ?string $timeZone = null)
| **?string** |
Получение даты удаления
| - deleted\_at
- deletedAt
- getDeletedAtFormatted(string $format = 'Y-m-d H:i:s', ?string $timeZone = null): ?string
- deletedAtFormatted(string $format = 'Y-m-d H:i:s', ?string $timeZone = null)
| **?string** |
# ticketStatuses.findById()
#### Поиск статуса по ID
```JavaScript
ticketStatuses.findById(string|int|null $id)
```
##### Описание:
Находит статус соответствующий указанному id.
##### Атрибуты:
Имя | Тип | Описание |
id | string|int|null | ID статуса заявки |
##### Возвращает:
**?ScriptTicketStatus** - v8 обертка над моделью
##### Пример:
```JavaScript
let status = ticketStatuses.findById(1095);
lead.setAttr('2_found_ticket_status_by_id', status ? status.id : null);
```
### Атрибуты и методы ScriptTicketStatus
После получения **ScriptTicketStatus** над ним можно работать с помощью следующих методов для получения необходимых значений:
Описание | Метод | Возвращаемое значение |
Получение элемента
| - .last()
- .first()
- .where()
| **?string** |
Обновление
| - .reload()
| **bool** |
Получение даты создания
| - created\_at
- createdAt
- getCreatedAtFormatted(string $format = 'Y-m-d H:i:s', ?string $timeZone = null): ?string
- createdAtFormatted(string $format = 'Y-m-d H:i:s', ?string $timeZone = null)
| **?string** |
Получение даты обновления
| - updated\_at
- updatedAt
- getUpdatedAtFormatted(string $format = 'Y-m-d H:i:s', ?string $timeZone = null): ?string
- updatedAtFormatted(string $format = 'Y-m-d H:i:s', ?string $timeZone = null)
| **?string** |
Получение даты удаления
| - deleted\_at
- deletedAt
- getDeletedAtFormatted(string $format = 'Y-m-d H:i:s', ?string $timeZone = null): ?string
- deletedAtFormatted(string $format = 'Y-m-d H:i:s', ?string $timeZone = null)
| **?string** |
# ticketStatuses.findByName()
#### Поиск статуса по имени
```JavaScript
ticketStatuses.findByName(string $name)
```
##### Описание:
Находит статус соответствующий указанному имени.
##### Атрибуты:
Имя | Тип | Описание |
name | string | Имя статуса заявки |
##### Возвращает:
**?ScriptTicketStatus** - v8 обертка над моделью.
##### Пример:
```JavaScript
let status = ticketStatuses.findByName('статус 1');
lead.setAttr('0_found_ticket_status_by_name', status ? status.id : null);
```
### Атрибуты и методы ScriptTicketStatus
После получения **ScriptTicketStatus** над ним можно работать с помощью следующих методов для получения необходимых значений:
Описание | Метод | Возвращаемое значение |
Получение элемента
| - .last()
- .first()
- .where()
| **?string** |
Обновление
| - .reload()
| **bool** |
Получение даты создания
| - created\_at
- createdAt
- getCreatedAtFormatted(string $format = 'Y-m-d H:i:s', ?string $timeZone = null): ?string
- createdAtFormatted(string $format = 'Y-m-d H:i:s', ?string $timeZone = null)
| **?string** |
Получение даты обновления
| - updated\_at
- updatedAt
- getUpdatedAtFormatted(string $format = 'Y-m-d H:i:s', ?string $timeZone = null): ?string
- updatedAtFormatted(string $format = 'Y-m-d H:i:s', ?string $timeZone = null)
| **?string** |
Получение даты удаления
| - deleted\_at
- deletedAt
- getDeletedAtFormatted(string $format = 'Y-m-d H:i:s', ?string $timeZone = null): ?string
- deletedAtFormatted(string $format = 'Y-m-d H:i:s', ?string $timeZone = null)
| **?string** |
# ticketStatuses.findAllByNames()
#### Поиск статусов по имени
```JavaScript
ticketStatuses.findAllByNames(string|array|object|null $names, string $operator = '=', bool $isReturnCollection = false)
```
##### Описание:
Находит статусы соответствующие указанным именам.
##### Атрибуты:
Имя | Тип | Описание |
names | string|array|object|null | Имя статуса |
operator | string | Оператор |
isReturnCollection | bool | Параметр позволяющий вернуть значения в виде коллекции |
##### Возвращает:
**Collection** - данные статусов в виде коллекции.
##### Пример:
```JavaScript
let statuses = ticketStatuses.findAllByNames('статус', 'like');
lead.setAttr('1_found_ticket_status_by_names_like', statuses.length);
statuses = ticketStatuses.findAllByNames(['статус 1', 'Статус 2'], 'IN');
lead.setAttr('3_found_ticket_statuses_by_names_count', statuses.length);
```
# ticketStatuses.findAllByTypes()
#### Поиск статусов по типу статуса
```JavaScript
ticketStatuses.findAllByTypes(string|array|object|null $types, string $operator = '=', bool $isReturnCollection = false)
```
##### Описание:
Находит статусы соответствующие указанным типам.
##### Атрибуты:
Имя | Тип | Описание |
types | string|array|object|null | Тип статуса |
operator | string | Оператор |
isReturnCollection | bool | Параметр позволяющий вернуть значения в виде коллекции |
На данный момент поддерживаются следующие типы статусов:
- NEW
- ASSIGNED
- PENDING\_CONFIRMATION
- CONFIRMED
- CANCELLED
- CLOSED
- PENDING\_PAYMENT
- PAYMENT\_FAILED
- PAID
- PREPARING\_ORDER
- DELIVERY\_IN\_PROGRESS
- WAITS\_FOR\_CUSTOMER\_PICK\_UP
- DELIVERED
##### Возвращает:
**Collection** - данные статусов в виде коллекции.
##### Пример:
```JavaScript
var statuses = ticketStatuses.findAllByTypes(['ASSIGNED', 'NEW'], 'IN');
lead.setAttr('4_found_ticket_statuses_by_types_in_count', statuses.length);
statuses = ticketStatuses.findAllByTypes('ASSIGNED', 'like');
lead.setAttr('5_found_ticket_statuses_by_types_like_count', statuses.length);
```