Перейти к содержанию

Обработка исполнителем новой заявки#

Пользователи процесса#

Предусловия#

Точки входа#

Варианты завершения#

  • Заявка возвращена клиенту на доработку (Статус заявки = 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.status not in (CLOSED, CANCELLED),
      • contract.doocument.customer == order.doocument.customer
      • contract.document.direction == order.document.direction
    • если есть связанные с договором неподписанные доп. соглашения (не в статусах SIGNED, CANCELLED), отображается красная надпись Есть неподписанные доп. соглашения. Наличие неподписанных доп. соглашений в договоре не блокирует процессы заявки.
    • пользователь вводит номер договора или его часть
    • система показывает список договоров у которых введенное значение входит в номер договора
    • для каждого договора отображается:
      • Номер договора и Агент если они заданы в договоре
      • Если номер и агент не заданы (возможно в статусе договора Draft), то вместо номера отображается название статуса Черновик и прочерк вместо агента.
      • текущий статус договора
    • пользователь выбирает из предложенного списка нужный договор
      • Если выбран договор с номером и агентом, система отображает в поле номер договора, под полем название Агента из договора
      • Если выбран договор без номера и агента, система отображает в поле название статуса "Черновик", под полем - пусто.
  • При изменении значения поля пользователем, система:
  • При очистке значения поля Договор, система очищает поля:
  • см. набор макетов работы поля

Другие поля группы: см. описание полей в Обработка агентом новой заявки: - отображаются исполнителю в заявке, но недоступны для изменения в статусе NEW, - не отображаются клиенту

Группа полей Агентское вознаграждение#

Поля группы: см. описание полей в Обработка агентом новой заявки:

  • отображаются в заявке всем пользователям, кроме COSTOMER , недоступны для изменения

Итоговая информация по заявке#

См. описание работы блока итоговой информации

Скачивание заявки в "Excel"#

  • Кнопка Скачать файл (макет) отображается пользователю с правом EXPORT_ORDER во всех статусах заявки
  • при нажатии на кнопку
    • во время формирования файла на кнопке отображается лоадер, кнопка недоступна
    • если возникает техническая ошибка, над заявкой отображается баннер с технической ошибкой
    • после завершения формирования файла, файл сохраняется на устройство пользователя
    • шаблон формируемого файла
    • название сформированного файла: Order {amountCounterparty} {currencyCounterparty}.xlsx
      • amountCounterparty - сумма в формате 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, номер присваивается. При других статусах договора - номер заявки очищается.

После сохранения заявки система:

  • обновляет заголовок (добавляет номер)
  • переводит заявку в режим просмотра
  • показывает сообщение:

img_27.png

Документы#

Доступные функции при работе с документами в статусе NEW#

Просмотр и скачивание всех вложений, которые клиент прикрепил на этапе создания заявки доступно всем пользователям, которые могут просмотреть заявку

Отправка заявки на согласование агенту#

# Шаг
1. Исполнитель нажимает кнопку отправки заявки
2. Система делает недоступными все поля, кнопки и ссылки на форме, на всех закладках. Показывает лоадер на кнопке
3. Система проверят формат полей
2а. Если есть ошибки, система подсвечивает поля с ошибками. Конец процесса.
3. Система сохраняет заявку в БД
4. Система проверят заполнение обязательных полей
4а. Если есть ошибки, система подсвечивает поля с ошибками. Конец процесса.
5. Система обновляет поля заявки и статус на AGENT_APPROVAL
6. Система отправляет сообщение на почту агенту
7. Система закрывает заявку, показывает список заявок и сообщение об успешной отправке

Проверка перед отправкой#

Перед отправкой система выполняет проверку:

  • формата и обязательность значений соответствуют описанию полей в разделе поля заявки
  • Договор в Статусе SIGNED

Если обнаружены ошибки:

  • система показывает тултип на кнопке отправки: Подпишите и заполните договор
  • форма переходит в режим редактирования (если она еще не в нем), подсвечиваются незаполненные поля. Пользователя перекидывает на вкладку «Параметры»
  • Если договор не в статусе SIGNED, поле так же подсвечивается красным, как для незаполненных обязательных полей

Обновление полей заявки при отправке#

При отправке заявки исполнителю система записывает в заявку значения:

  • order.status - AGENT_APPROVAL
  • order.verifiedAt - текущие дата и время
  • document.changedAt - текущие дата и время

Отправка сообщения на E-mail исполнителя#

Система отправляет сообщение всем активным пользователям с ролью AGENT агента, указанного в договоре contract.document.agent:,

Полный набор макетов

Все макеты и состояния по ссылке Макеты Figma: Заявка у исполнителя