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

Массовые операции над заявками#

Общий процесс#

# Шаг
1 Пользователь выбирает одну или несколько заявок
2 Пользователь выбирает функцию массовой обработки
3 Система показывает диалоговое окно
3.1 Если пользователь отказывается (крестиком, кликом на фон или нажал Отмена), система закрывает диалог. Конец сценария.
4. Система для каждой заявки выполняет проверку: можно ли выполнить выбранную обработку к заявке. Если можно - выполняет. Если нет - пропускает заявку . В процессе показывает диалог с прогресс баром и кнопкой прерывания процесса
4.1 Если пользователь прерывает процесс (кнопкой прерывания), система показывает диалоговое окно с текстом с итоговым результатом
4.2 Если пользователь закрывает окно с прогресс-баром (крестиком), система продолжает выполнять обработку выбранных заявок в фоновом режиме без отображения прогресс бара. Обновляет таблицу, снимает галки с уже обработанных заявок. Конец сценария.
5 Система отображает диалоговое окно с итоговым результатом
6 Пользователь закрывает диалоговое окно (крестиком или кликом на фон)
7 Система отображает список заявок. Сбрасывает галочки выбора с заявок которые обработались успешно. У заявок, к которым операция не применена или не были затронуты, галочки остаются

Общее для всех массовых операций#

Окно процесса обработки#

  • Заголовок окна такой же как и у окна подтверждения выполнения действия пользователем. Текст указан ниже для каждой операции.
  • Окно может быть закрыто только крестиком

Все заявки обработаны успешно

  • Макет
  • полоса прогресса - синяя
  • отображается общее количество выбранных заявок
  • отображается количество обработанных заявок

Есть заявки, которые не прошли проверку условий обработки

  • Макет
  • отображается общее количество выбранных заявок
  • отображается количество обработанных заявок и заявок, которые не прошли проверку

Окно отображения итоговой информации#

  • Окно может быть закрыто крестиком, кликом на фон

**Все заявки обработаны успешно:

  • Макет
  • полоса прогресса - зеленая
  • отображается общее количество выбранных заявок
  • отображается общее количество обработанных заявок

Есть заявки, которые не удалось обработать

  • окно отображается в случаях если обработка закончилась и часть заявок не прошла проверку условий для обработки или при выполнении обработки возникли технические ошибки
  • Макет
  • полоса прогресса - зеленая
  • отображается общее количество выбранных заявок
  • отображается общее количество обработанных заявок и заявок, которые не прошли проверку или при их обработке произошла техническая ошибка.

Пользователь прервал обработку

  • макет
  • полоса прогресса - серая
  • отображается общее количество выбранных заявок
  • отображается общее количество обработанных заявок и (если такие есть) заявок, которые не прошли проверку или при их обработке произошла техническая ошибка.

После закрытия пользователем окна с итоговой информацией

  • система показывает обновленный список заявок (заново запрашивает с бэка, с обновленными статусами)
  • примененные фильтры сохраняются
  • отображается первая страница пагинации
  • сбрасывает галочки выбора с заявок, которые обработались успешно (на всех страницах пагинации, которые отобраны в результате фильтрации)
  • у заявок, к которым операция не применена или не были затронуты, галочки остаются (на всех страницах пагинации, которые отобраны в результате фильтрации)

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

Кнопка#

  • название кнопки: Инвойс, текст подсказки на кнопке Импортная заявка
  • отображается только пользователям с правом CREATE_INVOICE

Диалоговое окно#

  • макет
  • заголовок окна: Сформировать и отправить инвойс для импортных заявок
  • поля (формат и обязательность) аналогичны полям ввода дополнительных параметров при формировании Инвойса в заявке
  • может быть закрыто крестиком, кликом на фон, кнопкой Отменить

Проверки выполняемые для каждой заявки#

Система применяет действие только к тем заявкам, у которых:

  • тип заявки: Импорт
  • статус заявки: INVOICE_PREPARATION

Обработка заявки#

Формирование инвойса в экспортной заявке#

Кнопка#

  • название кнопки:
    • Инвойс на товары, текст подсказки на кнопке Экспортная заявка
    • Инвойс на услуги, текст подсказки на кнопке Экспортная заявка
  • отображается только пользователям с правом EXPORT_CREATE_INVOICE

Диалоговое окно#

  • макет
  • заголовок окна: Сформировать и отправить инвойс для экспортных заявок
  • поля (формат и обязательность) аналогичны полям ввода дополнительных параметров при формировании Инвойса в заявке
  • может быть закрыто крестиком, кликом на фон, кнопкой Отменить

Проверки выполняемые для каждой заявки#

Система применяет действие только к тем заявкам, у которых:

  • тип заявки: 'экспорт'
  • статус заявки: INVOICE_PREPARATION (INVOICE_ADJUSTMENT - не смотрим, т.к. если клиент вернул, то скорее стандартная форма не подходит и нужно ручное вкладывание, либо требуется только изменение тарифа исполнителем без переформирования инвойса.)

Обработка заявки#

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

Формирование поручения в экспортной заявке#

Кнопка#

  • название кнопки: Поручение, текст подсказки на кнопке Экспортная заявка
  • отображается только пользователям с правом EXPORT_CREATE_INSTRUCTION

Диалоговое окно#

  • макет
  • заголовок окна: Сформировать и отправить поручение
  • поля (формат и обязательность) аналогичны полям ввода дополнительных параметров при формировании Поручения в заявке
  • может быть закрыто крестиком, кликом на фон, кнопкой Отменить

Проверки выполняемые для каждой заявки#

Система применяет действие только к тем заявкам, у которых:

  • тип заявки: 'экспорт'
  • статус заявки: INSTRUCTION_PREPARATION

Обработка заявки#

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

Формирование Поручения субагенту#

Кнопка#

  • название кнопки: Поручение субагенту, текст подсказки на кнопке Импортная заявка
  • отображается только пользователям с правом IMPORT_CREATE_INSTRUCTION

Диалоговое окно#

  • макет
  • заголовок окна: Сформировать поручение субагенту
  • может быть закрыто крестиком, кликом на фон, кнопкой Отменить

Проверки выполняемые для каждой заявки#

Система применяет действие только к тем заявкам, у которых:

  • тип заявки: Импорт
  • статус заявки: DOCUMENTS_COLLECTING
  • ПФ "поручение субагенту" отсутствует

Обработка#

  • Система формирует ПФ Поручение субагенту (аналогично формированию Поручение субагенту)
  • Статус заявки не меняется!

Формирование отчёта#

Кнопка#

  • название кнопки: Отчёт, текст подсказки на кнопке отсутствует. Отчёты формируются и по импортным и по экспортным заявке по одной кнопке.
  • отображается только пользователям с правом EXPORT_CREATE_REPORT или CREATE_REPORT

Диалоговое окно#

  • макет
  • заголовок окна: Сформировать и отправить отчёт
  • поля в диалоге отсутствуют
  • может быть закрыто крестиком, кликом на фон, кнопкой Отменить

Проверки выполняемые для каждой заявки#

Система применяет действие только к тем заявкам, у которых:

  • Для импортных заявок:

    • тип заявки: 'импорт'
    • существует приложенный файл в группе вложений Подтверждающие документы
    • статус заявки: EXECUTION (REPORT_ADJUSTMENT, в котором тоже может формироваться отчёт не обрабатываем, т.к. если отчёт вернули, то он требует индивидуальной работы с клиентом)
  • Для экспортных заявок:

    • тип заявки: 'экспорт'
    • статус заявки: REPORT_PREPARATION (REPORT_ADJUSTMENT, в котором тоже может формироваться отчёт не обрабатываем, т.к. если отчёт вернули, то он требует индивидуальной работы с клиентом)

Обработка заявки#

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

Формирование пакета для отправки субагенту#

Кнопка#

  • название кнопки: Пакет документов для отправки субагенту
  • отображается только пользователям с правом DOWNLOAD_TO_SEND_SUBAGENT

Диалоговое окно#

  • макет
  • заголовок окна: Сформировать пакет документов для отправки субагенту
  • может быть закрыто крестиком, кликом на фон, кнопкой Отменить

Проверки выполняемые для каждой заявки#

Система применяет действие только к тем заявкам, у которых:

  • тип заявки: Импорт
  • статус заявки: DOCUMENTS_READY_TO_SENT

Обработка#

  • Окно прогресса не отображается, операция выполняется в фоне
  • Система:
    • отображает список заявок, все галочки выбора снимает
    • для каждой заявки в статусе DOCUMENTS_READY_TO_SENT формирует архив файлов:
      • в архиве все файлы из заявки из группы TO_SEND_SUBAGENT
      • заявка в формате Excel
      • название файла Order {amountCounterparty} {currencyCounterparty} {subsidiary.fullNameEnglish}.zip
        • из {subagent.fullNameEnglish} убраны все знаки символы кроме латиницы и пробела, пробел заменен на нижнее подчеркивание
        • {amountCounterparty} - сумма в формате NNN NNN,NN (разделители разрядов пробелы, отделитель десятичной части - запятая)
        • {currencyCounterparty} - код валюты alfa-3
    • все сформированные файлы группирует по субагенту, указанному в заявке order.subagent и для каждого субагента формурует архив пакетов заявок
      • название файла {subagent.fullNameEnglish}.zip.
        • из {subagent.fullNameEnglish} убраны все знаки символы кроме латиницы и пробела, пробел заменен на нижнее подчеркивание
    • сохраняет архивы по субагнетами в S3
    • пользователю письмо запустившему формирование файла отправляет письмо:
    • если архивы сформированы. В письме ссылки для скачивания всех сформированных архивов по субагентам
    • если архивы НЕ сформированы

Документы отправлены#

Выполняется только для импортных заявок в статусе "Пакет документов готов к отправке"

Кнопка#

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

Диалоговое окно#

  • макет
  • заголовок окна: Перевести заявки в статус Документы отправлены
  • поля в диалоге отсутствуют
  • может быть закрыто крестиком, кликом на фон, кнопкой Отменить

Проверки выполняемые для каждой заявки#

Система применяет действие только к тем заявкам, у которых:

  • тип заявки: 'импорт'
  • статус заявки: DOCUMENTS_READY_TO_SENT

Обработка заявки#

  • перевести заявку в статус: EXECUTION, обновить атрибут changedAt заявки.
  • отправить сообщение агенту и исполнителю