Обработка исполнителем новой заявки#
Пользователи процесса#
Предусловия#
- Заявка отправлена исполнителю на рассмотрение (Статус заявки = NEW)
- У пользователя роли CONTRACTOR есть право VIEW_ORDER_ALL
- У пользователя ролей CUSTOMER есть право VIEW_ORDER
- У пользователя ролей OBSERVER, COMPLIANCE есть право VIEW_ORDER_ALL
- У пользователя ролей PARTNER есть право VIEW_ORDER
Точки входа#
- По ссылке из письма
- Выбрал заявку в статусе NEW из списка заявок
Варианты завершения#
- Заявка возвращена клиенту на доработку (Статус заявки = CUSTOMER_ADJUSTMENT)
- Заявка привязана к договору (заполнен агент, присвоен номер), заявка отправлена на согласование агенту
статус заявки = AGENT_APPROVAL)
Процесс#
Общий вид#
Верхнеуровневый процесс обработки новой заявки исполнителем
| # | Шаг |
|---|---|
| 1. | Исполнитель открывает заявку, проверяет её |
| 1.1 | Если к заявке есть замечания, Исполнитель пишет их и отправляет на доработку клиенту. Конец сценария. |
| 2. | Исполнитель привязывает заявку к договору |
| 3. | Исполнитель отправляет заявку на согласование агенту |
Особенности процесса#
- Пользователь с правом VIEW_ORDER видят только "свои" заявки, у которых
order.document.userEmployeeилиorder.document.userCustomerсовпадает сuser.id- с ролью PARTNER видит только заявки "своих" клиентов (у которых в карточке указан тот же партнёр, с которым связан пользователь-партнёр)
- Пользователь с правом VIEW_ORDER_ALL видят все заявки
- Внешний вид формы аналогичен форме процесса создания заявки, отличия описаны в разделе Особенности статуса NEW
- В зависимости от роли у пользователя отличаются доступные действия в заявке. Описаны в разделе Особенности статуса NEW
- При открытии заявки пользователем, заявка открывается в режиме просмотра.
- Для перехода в режим редактирования пользователь нажимает кнопку
Редактировать. Кнопка отображается Исполнителю. - В режиме редактирования система позволяет редактировать исполнителя только поле
Договор. Все остальные поля исполнитель редактировать не может. - Работа с вложениями (просмотреть, скачать) доступна без перехода в режим редактирования.
Особенности сабмита формы
- пользователь может сохранить заявку, даже если он не заполнил все обязательные поля
- при сохранении (и, опосредованно, при отправке, так как отправка тригерит сохранение) валидируются заполненные поля на соответстиве типам и паттернам.
- при отрпавке заявки проверяется заполнены ли все обязательные поля
- нельзя сохранить заявку, если в ней есть заполненные поля, чьё содержимое не отвечает требованиям
- можно сохранить заявку, если в ней не заполнены обязательные поля
- нельзя отправить заявку, если в ней не заполнены обязательные поля
Интерфейс#
Особенности статуса NEW#
в хинте статуса заявки отображается подсказка Агент заполняет заявку и отправляет клиенту на согласование
В зависимости от роли отличаются доступные действия и кнопки в заявке:
Видимость кнопок описана в import_order.json:
- Кнопка
Редактировать- отображается исполнителю - Кнопка
Закрыть заявку- отображается исполнителю, клиенту - Кнопка
Отправить агенту- отображается исполнителю - Кнопка
Вернуть клиенту на доработку- отображается исполнителю
Заголовок и номер заявки#
В зависимости от типа заявки заголовок:
Импортная заявкаЭкспортная заявка
Если заявке уже присвоен номер, то к заголовку добавляется №{order.document.number}
Номер присваивается при сохранении если указан договор.
Поля заявки#
Отображаются все поля заявки, которые описаны в процессе создания заявки. Поля заполненные клиентом недоступны для редактирования.
Поля для заполнения Исполнителем:
Группа полей Маршрут#
- Договор
- Атрибут объекта
order.contract
- обязательное
- текст ошибки, если выбран не подписанный договор:
Договр должен быть подписан - выбор из списка договоров:
- в списке первой строкой отображается ссылка
Создать новый договор.- При нажатии инициализируется процесс создания нового договора
- В процессе создания нового договора (до перехода к его деталке), на кнопке крутится лоадер, кнопка
Создать новый договори форма заявки блокируются.
- в списке отображаются только активные договора с клиентом, от которого поступила заявка и имеющие такой же
document.directionкак и у заявки:contract.statusnot in (CLOSED,CANCELLED),contract.doocument.customer==order.doocument.customercontract.document.direction==order.document.direction
- если есть связанные с договором неподписанные доп. соглашения (не в статусах SIGNED, CANCELLED), отображается красная надпись
Есть неподписанные доп. соглашения. Наличие неподписанных доп. соглашений в договоре не блокирует процессы заявки. - пользователь вводит номер договора или его часть
- система показывает список договоров у которых введенное значение входит в номер договора
- для каждого договора отображается:
Номер договораиАгентесли они заданы в договоре- Если номер и агент не заданы (возможно в статусе договора Draft), то вместо номера отображается название статуса
Черновики прочерк вместо агента. - текущий статус договора
- пользователь выбирает из предложенного списка нужный договор
- Если выбран договор с номером и агентом, система отображает в поле номер договора, под полем название Агента из договора
- Если выбран договор без номера и агента, система отображает в поле название статуса "Черновик", под полем - пусто.
- в списке первой строкой отображается ссылка
- При изменении значения поля пользователем, система:
- заполняет субагента, плательщика и его счет
- заполняет Комиссию или Накладные расходы из базовой или индивидуальной ставки
- заполняет или очищает ссылки на использованный запрос индивидуальных или набор базовых ставок
- заполняет курс и его срок:
- находит курс агента из договора, у которого
firstCurrency = order.currencyCounterpartyиsecondCurrency = order.currencyCustomer- если курс найден, подставляет его значение
exchangeRateв заявкуorder.commission.exchangeRate, и заполняет срок курсаorder.commission.exchangeRateNotValidAfterкак при изменении курса вручную пользователем - если курс не найден, оставляет курс и его срок пустыми`
- если курс найден, подставляет его значение
- находит курс агента из договора, у которого
- При очистке значения поля
Договор, система очищает поля:- субагент,
- плательщик,
- Счет плательщика
- Ставка,
- Накладные расходы,
- Курс,
- Срок действия курса
- Поведение системы в зависимости от результата подбора субагента, плательщика, счета плательщика
- см. набор макетов работы поля
Другие поля группы: см. описание полей в Обработка агентом новой заявки: - отображаются исполнителю в заявке, но недоступны для изменения в статусе NEW, - не отображаются клиенту
Группа полей Агентское вознаграждение#
Поля группы: см. описание полей в Обработка агентом новой заявки:
- отображаются в заявке всем пользователям, кроме COSTOMER , недоступны для изменения
Итоговая информация по заявке#
См. описание работы блока итоговой информации
Скачивание заявки в "Excel"#
- Кнопка
Скачать файл(макет) отображается пользователю с правом EXPORT_ORDER во всех статусах заявки - при нажатии на кнопку
- во время формирования файла на кнопке отображается лоадер, кнопка недоступна
- если возникает техническая ошибка, над заявкой отображается баннер с технической ошибкой
- после завершения формирования файла, файл сохраняется на устройство пользователя
- шаблон формируемого файла
- название сформированного файла:
Order {amountCounterparty} {currencyCounterparty}.xlsxamountCounterparty- сумма в формате NNN NNN,NN (разделители разрядов пробелы, отделитель десятичной части - запятая)currencyCounterparty- код валюты alfa-3
Просмотр и редактирование заявки#
Режим просмотра заявки#
- В режиме просмотра все поля недоступны для редактирования.
- кнопка
Редактироватьотображается только Исполнителю - При нажатии на кнопку
Редактироватьзаявка переходит в режим редактирования
Режим редактирования заявки#
- Доступны для редактирования только поле
Договор(см. в разделе Поля заявки) - Отображаются кнопки
ОтменитьиСохранитьСохранитьстановится доступна только после изменения значения полей заявки.- при нажатии
Сохранитьсистема сохраняет заявку, возвращает форму в режим просмотра - при нажатии
Отменить, система сбрасывает изменения и возвращает форму в режим просмотра.
- При изменении значений полей от которых зависит блок итоговой информации (в т.ч. при автоматическом заполнении при изменении договора), блок пересчитывается и обновляется.
Сохранение заявки#
Сохранение заявки выполняется:
- при нажатии пользователем кнопки
Сохранить - перед отправкой заявки исполнителем агенту
При сохранении заявки, система:
- не выполняет проверку обязательности полей и наличия обязательных вложений
- выполняет проверку на соответствие типам и паттернам.
Соответствие полей формы схемам document и document-order описаны в разделе поля заявки
Кроме полей, введённых пользователем и заполненных системой при изменении договора, система сохраняет:
order.document.userEmployee- пользователь, изменивший заявкуorder.document.changedAt- текущие дата времяorder.document.exchangeRate:- если в заявке валюты
order.currencyCounterpartyиorder.amountCounterpartyравны, то значение всегда 1 - если валюты не равные, то значение не заполняется системой
- если в заявке валюты
order.document.number:- обновляется только если был изменен договор
- имеет формат
{номер договора}_{номер заявки} - найти максимальный номер заявки из всех привязанных к этому же договору, увеличить номер на 1.
- при перевыборе одного и того же договора повторно несколько раз подряд, номер заявки не увеличивается
- если указанный договор имеет статус SIGNED, номер присваивается. При других статусах договора - номер заявки очищается.
После сохранения заявки система:
- обновляет заголовок (добавляет номер)
- переводит заявку в режим просмотра
- показывает сообщение:
Документы#
Доступные функции при работе с документами в статусе NEW#
Просмотр и скачивание всех вложений, которые клиент прикрепил на этапе создания заявки доступно всем пользователям, которые могут просмотреть заявку
Отправка заявки на согласование агенту#
| # | Шаг |
|---|---|
| 1. | Исполнитель нажимает кнопку отправки заявки |
| 2. | Система делает недоступными все поля, кнопки и ссылки на форме, на всех закладках. Показывает лоадер на кнопке |
| 3. | Система проверят формат полей |
| 2а. | Если есть ошибки, система подсвечивает поля с ошибками. Конец процесса. |
| 3. | Система сохраняет заявку в БД |
| 4. | Система проверят заполнение обязательных полей |
| 4а. | Если есть ошибки, система подсвечивает поля с ошибками. Конец процесса. |
| 5. | Система обновляет поля заявки и статус на AGENT_APPROVAL |
| 6. | Система отправляет сообщение на почту агенту |
| 7. | Система закрывает заявку, показывает список заявок и сообщение об успешной отправке |
Проверка перед отправкой#
Перед отправкой система выполняет проверку:
- формата и обязательность значений соответствуют описанию полей в разделе поля заявки
- Договор в Статусе SIGNED
Если обнаружены ошибки:
- система показывает тултип на кнопке отправки:
Подпишите и заполните договор - форма переходит в режим редактирования (если она еще не в нем), подсвечиваются незаполненные поля. Пользователя перекидывает на вкладку «Параметры»
- Если договор не в статусе SIGNED, поле так же подсвечивается красным, как для незаполненных обязательных полей
Обновление полей заявки при отправке#
При отправке заявки исполнителю система записывает в заявку значения:
order.status- AGENT_APPROVALorder.verifiedAt- текущие дата и времяdocument.changedAt- текущие дата и время
Отправка сообщения на E-mail исполнителя#
Система отправляет сообщение всем активным пользователям с ролью AGENT агента,
указанного в договоре contract.document.agent:,
Полный набор макетов
Все макеты и состояния по ссылке Макеты Figma: Заявка у исполнителя
