Виды и статусы заявок
Виды или типы заявок позволяют различать заявки по продаваемой продукции, оказываемым услугам или вообще разным типам обращений пользователей.
Статусы же помогают понять на какой стадии сейчас находится заявка: получена, в работе, ожидание оплаты и т.д.
Виды заявок
В меню видов заявок можно попасть из раздела Заявки и персоны в верхнем меню бота, нажав в выпадающем списке на Виды заявок.
После перехода к меню видов открывается таблица содержащая все типы заявок бота.
Здесь можно просматривать таблицу, создавать новые виды заявок (1), редактировать информацию о уже существующих и удалять их (2).
При нажатии на кнопку Создать открывается окно настройки вида заявки со следующими полями:
- Наименование - имя вида заявки;
- Заказ в магазине - если включить опцию, заявка с данным видом будет считаться заказом и относиться к функционалу магазина в боте.
После создания вид появится в таблице в меню видов с автоматически заданным ему Id. Тут его можно редактировать и удалить.
Редактирование видов включает в себя те же поля, что при создании.
Статусы заявок
В меню статусов заявок можно попасть из раздела Заявки и персоны в верхнем меню бота, нажав в выпадающем списке на Статусы заявок.
После перехода к меню статусов открывается таблица содержащая все статусы заявок бота.
Здесь можно просматривать таблицу, создавать новые статусы заявок (1), редактировать информацию о уже существующих, перемещать по приоритету и удалять их (2).
При нажатии на кнопку Создать открывается окно настройки статуса заявки со следующими полями:
- Наименование - имя статуса заявки;
- Тип - значение статуса в виде выпадающего списка. По сути это статусы по умолчанию ставящиеся в соответствие созданным статусам.
Поле Тип можно оставить не заполненным, если нет подходящего варианта. Это никак не повлияет на работу статусов.
После создания статус появится в таблице в меню статусов с автоматически заданным ему Id. Тут его можно редактировать и удалить.
Редактирование статусов включает в себя те же поля, что при создании.
JS методы для работы со статусами заявок
К статусам заявок можно обращаться из JS следующими методами:
Название метода | Метод |
Перезагрузить все статусы из БД | ticketStatuses.reload(): bool |
Получить Laravel Collection | ticketStatuses.getCollection(): ?Collection |
Поиск статусов | ticketStatuses.find(array|object|null $where, bool $isReturnCollection = false): ?ScriptTicketStatus |
Поиск статуса по ID | ticketStatuses.findById(string|int|null $id): ?ScriptTicketStatus |
Поиск статуса по имени | ticketStatuses.findByName(string $name): ?ScriptTicketStatus |
Поиск статусов по имени | ticketStatuses.findAllByNames(string|array|object|null $names, string $operator = '=', bool $isReturnCollection = false): ?Collection |
Поиск статусов по типу статуса | ticketStatuses.findAllByTypes(string|array|object|null $types, string $operator = '=', bool $isReturnCollection = false): ?Collection |
У каждого объекта ScriptTicketStatus есть свои атрибуты и методы. Они расписаны в конце раздела.
Каждый из методов подробнее расписан ниже.
Перезагрузить все статусы из БД
ticketStatuses.reload()
Описание:
Перезагружает все статусы из БД.
Возвращает:
bool - подтверждение перезагрузки.
Получить Laravel Collection
ticketStatuses.getCollection()
Описание:
Возвращает коллекцию статусов заявок.
Возвращает:
?Collection - данные статусов в виде коллекции.
Пример:
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(array|object|null $where, bool $isReturnCollection = false)
Описание:
Находит статусы соответствующие указанным данным.
Атрибуты:
Имя | Тип | Описание |
where | array|object|null | Параметр по которому будет проверяться соответствие с найденными статусами |
isReturnCollection | bool | Параметр позволяющий вернуть значения в виде коллекции |
Возвращает:
?ScriptTicketStatus - v8 обертка над моделью
или
Collection - данные статусов в виде коллекции.
Пример:
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);
Поиск статуса по ID
ticketStatuses.findById(string|int|null $id)
Описание:
Находит статус соответствующий указанному id.
Атрибуты:
Имя | Тип | Описание |
id | string|int|null | ID статуса заявки |
Возвращает:
?ScriptTicketStatus - v8 обертка над моделью
Пример:
let status = ticketStatuses.findById(1095);
lead.setAttr('2_found_ticket_status_by_id', status ? status.id : null);
Поиск статуса по имени
ticketStatuses.findByName(string $name)
Описание:
Находит статус соответствующий указанному имени.
Атрибуты:
Имя | Тип | Описание |
name | string | Имя статуса заявки |
Возвращает:
?ScriptTicketStatus - v8 обертка над моделью.
Пример:
let status = ticketStatuses.findByName('статус 1');
lead.setAttr('0_found_ticket_status_by_name', status ? status.id : null);
Поиск статусов по имени
ticketStatuses.findAllByNames(string|array|object|null $names, string $operator = '=', bool $isReturnCollection = false)
Описание:
Находит статусы соответствующие указанным именам.
Атрибуты:
Имя | Тип | Описание |
names | string|array|object|null | Имя статуса |
operator | string | Оператор |
isReturnCollection | bool | Параметр позволяющий вернуть значения в виде коллекции |
Возвращает:
Collection - данные статусов в виде коллекции.
Пример:
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(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 - данные статусов в виде коллекции.
Пример:
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);
Атрибуты и методы ScriptTicketStatus
После получения ScriptTicketStatus над ним можно работать с помощью следующих методов для получения необходимых значений:
Описание | Метод | Возвращаемое значение |
Получение элемента |
|
?string |
Обновление |
|
bool |
Получение даты создания |
|
?string |
Получение даты обновления |
|
?string |
Получение даты удаления |
|
?string |
Нет комментариев