Таблица заявок#
Пользователи процесса#
- пользователь с ролью CUSTOMER
- пользователь с ролью CONTRACTOR
- пользователь с ролью OBSERVER
- пользователь с ролью COMPLIANCE
- пользователь с ролью PARTNER
Предусловия#
- у роли пользователя есть право VIEW_ORDER или VIEW_ORDER_ALL
Точки входа#
- пункт
Заявкив меню
Процесс#
Общий вид#
| # | Шаг |
|---|---|
| 1 | Пользователь нажимает на пункт Заявки в меню приложения. |
| 2 | Система отображает первые 25 заявок. |
| 3 | Пользователь нажимает на ссылку перехода на следующую страницу. |
| 4 | Система отображает следующие 25 заявок. |
| 5 | Пользователь нажимает на ссылку перехода на предыдущую страницу. |
| 6 | Система отображает предыдущие 25 заявок. |
| 7 | Пользователь вводит в строку поиска часть номера заявки. |
| 8 | Система отображает заявки с номером, часть которого совпадают с введенным значением. |
| 9 | Пользователь вводит в строку поиска часть ФИО или названия компании клиента. |
| 10 | Система отображает заявки клиентов, у которых часть ФИО или названия компании совпадает с введенным значением. |
| 11 | Пользователь вызывает панель фильтров |
| 12 | Система отображает панель фильтров |
| 13 | Пользователь указывает значения фильтров (сразу несколько или поочередно, добавляя и убирая) |
| 14 | Система отображает отфильтрованные заявки (фильтры дополняют друг друга) |
Интерфейс#
Таблица заявок#
| Поле таблицы | Атрибут объекта |
|---|---|
| Чекбокс | Выбор заявки для дальнейшей массовой обработки |
| Дата заявки | order.submittedAt. Если в нем значение отсутствует, то order.createdAt |
| Номер заявки | первой строкой: order.docuement.number. Может отсутствовать значение, в этом случае показывается прочерк |
второй строкой: Фамилия И.О. исполнителя из order.document.userEmployee.fio. Строка отображается пользователю с правом VIEW_HIDDEN_FROM_CUSTOMER_INFO |
|
| Клиент | первой строкой: Для физлиц/ИП: order.docuement.customer.person.fio, для юрлиц:order.docuement.customer.сompany.mame |
Пользователю с правом VIEW_HIDDEN_FROM_CUSTOMER_INFO: если у клиента установлен признак customer.isPriority = true, рядом названием отображается звезда. При наведении курсора на звезду отображается хинт Приоритетный клиент |
|
второй строкой: название партнера из order.docuement.customer.partner, Строка отображается пользователю с правом VIEW_HIDDEN_FROM_CUSTOMER_INFO |
|
| Сумма | Сумма из order.payment.amountCounterparty + код валюты из order.payment.currencyCounterparty |
| Статус | order.status. Статусная модель заявки |
второй строкой: Рекламации: {N}/{K} закрыто. Строка отображается пользователю с правом VIEW_HIDDEN_FROM_CUSTOMER_INFO |
|
{N} - количество рекламаций в статусе CLOSED в заявке, {K} - всего рекламаций в заявке |
|
| Если рекламаций в заявке нет, вторая строка не отображается |
- Модель document-order: md / json
- Структура таблицы для всех ролей и прав отображается одинаково
- Записи в таблице отсортированы по убыванию по полю
order.document.changedAt- по дате и времени последнего изменения заявки (поле в таблице не отображается) - При клике на строку открывается деталка заявки. Отображение деталки зависит от статуса заявки и роли пользователя
- Пользователь с правом VIEW_ORDER
- ролью CUSTOMER видит только "свои" заявки, у которых клиент
order.document.customerсвязан с пользователем - ролью AGENT видит только "свои" заявки, у которых агент
order.contract.document.agent- соответствуют пользователю - ролью PARTNER видит только заявки от "своих" клиентов (у которых в карточке указан тот же партнёр, с которым связан пользователь-партнёр)
- ролью CUSTOMER видит только "свои" заявки, у которых клиент
- Пользователь с правом VIEW_ORDER_ALL видят все заявки
- Фильтры отображаются только пользователю с правом USE_ORDER_FILTER
- Кнопка
Создать заявкуотображается только пользователю с правом SUBMIT_ORDER. Инициализирует процесс создания заявки - Окно отображения пустого списка аналогично окну Нет ни одного клиента
Выбор заявок#
Для пользователей с правом USE_ORDER_MULTISELECT в списке заявок первой колонкой отображается чекбокс, которым отмечаются строки для дальнейшей обработки при массовых операциях.
При клике на чекбокс в заголовке (макет):
- Если до клика в заголовке выбраны не Все строки (только часть или ни одной), то выбираются Все строки (устанавливается чекбокс). В заголовке чекбокс
- Если до клика уже выбраны Все строки , то выбор со всех строк снимается. В заголовке чекбокс
При установке чекбокаса в строке:
- Если после установки/снятия выбраны все строки, то в заголовке чекбокс

- Если после установки/снятия выбраны не все строки, то в заголовке чекбокс

- Если после установки/снятия не выбрано ни одной строки, то в заголовке чекбокс
Если выбрана хотя бы одна строка, под списком отображается панель:
- Панель фиксируется при скролле
- На панели отображается количество выбранных строк
- при выборе/отмене выбора строки, счетчик обновляется
На нижней панели отображается кнопка с выпадающим списком кнопок для запуска массовых операций над заявками
Строка поиска#
Поиск по вхождению введенного значения в атрибутах:
- номер
order.document.number - клиент:
- для заявок от юрлиц:
order.document.customer.company.fullName - для заявок от физлиц/ИП
order.document.customer.person.fio
- для заявок от юрлиц:
- ИНН клиента
- для заявок от юрлиц:
order.document.customer.company.inn - для заявок от физлиц/ИП
order.document.customer.person.inn
- для заявок от юрлиц:
- Очищение строки поиска сбрасывает фильтр по Номеру и Клиенту заявки.
Панель фильтров#
-
Отображается только пользователю с правом USE_ORDER_FILTER
-
Кнопки
ПрименитьиСброситьдоступны если панели было изменено значение хотя бы в одном поле - Фильтры применяются при нажатии на кнопку
Применить - При нажатии
Сбросить:- все значения фильтров очищаются
- быстрый поиск остается
- панель фильтров закрывается
- строки в таблице сразу фильтруются.
По заявке#
-
Тип - выбор из списка:
Экспорт/Импорт. Поиск поorder.direction -
Период создания - поиск по вхождению
даты заявкив указанный в фильтре период (включительно указанные даты).дата заявки- значениеorder.submittedAt, а при его отсутствии -order.document.createdAt- если указано только начало периода, то система ищет заявки у которых
даты заявки>= указанному значению - если указано только окончание периода, то система ищет заявки у которых
даты заявки<= указанному значению - если любая дата некорректная — подсвечиваем поле, не пишем текст ошибки.
- eсли в диапазоне дат дата конца меньше даты начала, система подсвечивает оба поля, пишет под ними ошибку
Первая дата должна быть меньше или равна второй - если есть ошибки в веденных датах, система не применяет фильтр.
- минимальное значение даты 01.01.1900
- максимальное значение даты 31.12.2100
-
Статус - мультиселект, поиск по выбранным статусам заявки в
order.status. Статусная модель -
Агент - мультиселект, поиск по выбранному агенту в
order.contract.document.agent- выбор из списка всех агентов
- В выпадашке отображаются
agent.fullName
-
Исполнитель - мультиселект из списка сотрудников с ролями CONTRACTOR и SENIOR_CONTRACTOR
- первым пунктом в списке отображается
Не назначен. Отображается в автокомплите так же как и остальные пункты (находится при поиске, не отображается, если введенное не содержится части изНе назначен) - поиск по пользователям выбранных сотрудников в
order.document.userEmployee
- первым пунктом в списке отображается
-
Партнер - мультиселект из списка партнеров. Поиск по клиентам с указанными партнерами.
-
Комплаенс офицер - мультиселект из списка сотрудников с ролью COMPLIANCE и SENIOR_COMPLIANCE.
- первым пунктом в списке отображается
Не назначен. Отображается в автокомплите так же как и остальные пункты (находится при поиске, не отображается, если введенное не содержится части изНе назначен) - поиск по назначенному Комплаенс офицеру в
order.userCompliance
- первым пунктом в списке отображается
-
Есть новые сообщения
- если значение = true, фильтрует заявки у которых есть непрочитанные сообщения для роли текущего пользователя, для роли CONTRACTOR поиск непрочитанных выполняется только если пользователь назначен ответственным за темы в переписке, и только в темах где он является ответственным
- если значение = false, фильтр не применяется
По платежу#
-
Сумма Платежа - поиск по вхождению суммы заявки
order.amountOperatingCostCounterpartyCurrencyв указанный промежуток (включительно указанные суммы).- если указано только сумма
От, то система ищет заявки у которыхorder.amountOperatingCostCounterpartyCurrency>= указанному значению - если указано только сумма
До, то система ищет заявки у которыхorder.amountOperatingCostCounterpartyCurrency<= указанному значению - Если сумма
Доменьше чем суммаОт, система подсвечивает оба поля, пишет под ними ошибкуПервая сумма не может быть больше второй - если есть ошибки в веденных суммах, система не применяет фильтр
- минимальное значение - 0,00
- максимальное значение - 99 999 999 999,99
- если указано только сумма
-
Валюта - мультиселект из локального справочника валют. поиск по выбранным валютам в
order.currencyCounterparty. -
Получатель - инпут, поиск по вхождению в
order.counterparty.name -
Банк SWIFT - поиск по
order.payment.bank- плейсхолдер
Введите SWIFT или название - пользователь вводит в поле код SWIFT, название банка или их часть
- система отображает подсказку для выбора банка из локального справочника SWIFT. Отображаются банки у которых код SWIFT или название содержат введённое значение
- пользователь выбирает из предложенного списка нужный банк
- система подставляет и отображает в поле фильтра наименование выбранного банка
swift.name - заявки фильтруются по совпадению выбранного банка и значения в
order.payment.bank
- плейсхолдер
-
Банк РФ - поиск по
order.payment.bankCustomer- плейсхолдер
Название, Бик или SWIFT - пользователь вводит в поле БИК, или код SWIFT, или название банка, или их часть
- система отображает подсказку для выбора банка из локального справочника Банков РФ. Отображаются банки у которых код SWIFT, БИК или название содержат введённое значение
- пользователь выбирает из предложенного списка нужный банк
- система подставляет и отображает в поле фильтра наименование выбранного банка
bank.name - заявки фильтруются по совпадению выбранного банка и значения в
order.payment.bankCustomer
- плейсхолдер
-
Номер счета - инпут, поиск по вхождению в
order.payment.accountNumber. -
Назначение - инпут, поиск по вхождению в
order.payment.purpose.
Инвойс, контракт#
-
Тип продукта - поиск по вхождению в
order.additionalInfo.productTypeили вorder.additionalInfo.productTypeOther -
дата инвойса/контракта - поиск по совпадению значения в
order.additionalInfo.documentDate.- минимальное значение даты 01.01.1900
- максимальное значение даты 31.12.2100
-
номер инвойса/контракта - поиск по вхождению в
order.additionalInfo.documentNumили в одну из строкorder.additionalInfo.documents[number]
По документам#
- Есть - поиск заявок в которых есть указанные файлы
- мультиселект из списка:
Акт-отчет- по наличию файлов в группеАкт-отчетв импортных и в экспортных заявкахДокументы к отправке субагенту- по наличию файлов в группеДокументы к отправке субагентутолько в импортных заявкахИнвойс- по наличию файлов в группеИнвойсв экспортных заявках илиИнвойс-поручениев импортных заявкахПодтверждающие документы- по наличию файлов в группеПодтверждающие документыв импортных и в экспортных заявкахПоручение- по наличию файлов в группеПоручениетолько в экспортных заявкахПоручение субагенту- по наличию файлов в группеПоручение субагентутолько в импортных заявкахПрочее- по наличию файлов в группеПрочеетолько в импортных заявках
- мультиселект из списка:
- Нет - поиск заявок в которых нет указанных файлов
- мультиселект, аналогична полю
Есть
- мультиселект, аналогична полю
По комиссии#
- Ниже предельного значения ставки -
- если значение = true, фильтрует заявки у которых заполнено
order.isBelowCost = true. - если значение = false, фильтр на
order.isBelowCostне накладывается
- если значение = true, фильтрует заявки у которых заполнено
По рекламации#
-
Активная
- если значение = true, фильтрует заявки у которых есть рекламации в стусе отличном от
CLOSED. - если значение = false, фильтр по статусу рекламаций не накладывается
- если значение = true, фильтрует заявки у которых есть рекламации в стусе отличном от
-
Претензия
- если значение = true, фильтрует заявки у которых есть рекламации с признаком
isClaim = true. - если значение = false, фильтр по признаку рекламаций не накладывается
- если значение = true, фильтрует заявки у которых есть рекламации с признаком
-
Если включены и Активные и Претензия, то отображаются только заявки в которых есть "Активные претензии"
- В чипсах в списке заявок для фильтров по рекламации отображается:
- если выбрана только "Активная", то
Рекламация: Активная - если выбрана только "Претензия", то
Рекламация: Претензия - если выбраны обе "Претензия", то
Рекламация: Активная + 1
- если выбрана только "Активная", то
По клиенту#
- Приоритетный
- если значение = true, фильтрует заявки у которых у клиента установлен признак
isPriority = true. - если значение = false, фильтр по признаку приоритетного клиента не накладывается
- если значение = true, фильтрует заявки у которых у клиента установлен признак
Примененные фильтры#
Примененные значения фильтров отображаются над таблицей:
- При удалении одного из фильтров, система отображает список заявок по оставшимся фильтрам.
- При нажатии "Сбросить фильтр", система очищает все фильтры, т.ч. быстрый поиск по Номеру заявки и Клиенту
- При повторном открытии панели фильтров в полях отображаются ранее установленные значения
- Если по указанным фильтрам не найдено ни одной заявки, то отображается окно:

Выгрузка списка заявок в Excel#
Кнопка Выгрузить реестр
- отображается пользователю с правом EXPORT_ORDER_LIST
- активная если в списке есть строки
- При нажатии на кнопку пользователем, система:
- отображает лоадер на кнопке, делает кнопку недоступной
- формирует excel-файл
- если произошла техническая ошибка, показывает баннер технической ошибки над списком заявок
- сохраняет сформированный excel-файл на устройство пользователя, возвращает кнопку в активное состояние.
Наполнение файла#
- В реестр выгружаются заявки, соответствующие текущему фильтру в списке заявок
- В файле две закладки:
ИМПОРТ- содержит список заявок на отправку денегЭКСПОРТ- содержит список заявок на получение денег
- Название поелй и выгружаемые атрибуты см. в файле
- Если в результате применения фильтра один из типов заявок отсутствует, то закладка выгружается пустой, на ней только первая строка с заголовком
- Если в результате применения фильтра заявки отсутствуют, то файл выгружается пустой, на обеих закладках только первая строка с заголовком
Состояние "Нет ни одной заявки"#
Если в базе еще нет ни одной заявки, вместо таблицы отображается страница Заявок пока нет с кнопкой Создать заявку.
Поведение кнопки такое же, как у аналогичной кнопки в таблице заявок.
Копка создать заявку#
Видна только при наличии у пользователя права SUBMIT_ORDER. Инициализирует процесс создания заявки
Полный набор макетов
Все макеты и состояния по ссылке Макеты Figma: Список заявок
