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

Курсы валют#

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

  • пользователь с ролью AGENT - загрузка курсов валют из Excel
  • пользователь с ролью CONTRACTOR, PARTNER, OBSERVER, COMPLIANCE - просмотр

Точки входа#

  • пункт Справочник -> Курсы валют в меню приложения. Отображается пользователю с правом VIEW_EXCHANGE_RATE_ALL или VIEW_EXCHANGE_RATE

Интерфейс#

Макет

Таблица курсов#

exchange_rate.schema.json

Поле таблицы Атрибут объекта
Агент exchangeRate.agent.fullName
Курс 1 {exchangeRate.firstCurrency} = {exchangeRate.exchangeRate} {exchangeRate.secondCurrency}
  • таблица отображается с пагинацией
  • записи отсортированы
    • по полю Агент agent.fullName, по алфавиту
    • потом по полю exchangeRate.firstCurrency, по алфавиту
    • потом по полю exchangeRate.secondCurrency, по алфавиту
  • пользователь с правом VIEW_EXCHANGE_RATE_ALL видит все записи
  • пользователь с правом VIEW_EXCHANGE_RATE:
    • с ролью AGENT - видит только свои записи (в которых exchangeRate.agent совпадает с агентом, связанным с пользователем)

Состояние "Нет ни одной записи"#

[Макет]https://www.figma.com/design/PjSXrXTC4uJj65iYXOcgkR/SPA-%E2%80%93-%D0%A1%D0%BF%D1%80%D0%B0%D0%B2%D0%BE%D1%87%D0%BD%D0%B8%D0%BA%D0%B8?node-id=6390-115987&t=5dIBAKLufGNrAzRr-4)

  • Если таблице еще нет ни одной записи, вместо таблицы отображается страница "Курсов валют пока нет" и кнопка загрузки
  • Если нет прав для загрузки, то надпись Загрузите таблицу Excel. Максимальный размер 10Mb. не отображается

Загрузка курсов из файла#

Кнопка загрузки курсов отображается пользователю с правом UPLOAD_EXCHANGE_RATE

При нажатии на кнопку отображается диалоговое окно загрузки файла с курсами

Загрузка курсов из файла#

Макет

Ссылка Скачать шаблон.

При нажатии на ссылку скачивается шаблон exchange_rates.xlsx на устройство пользователя.

Поле Агент

  • Отображается пользователю с правом UPLOAD_EXCHANGE_RATE_AGENT_SELECTION
  • В выпадашке список всех активных агентов

Кнопка Загрузить

  • Отображается если файл ещё не был выбран или уже был удален пользователем
  • При нажатии на кнопку:
    • пользователь выбирает файл. Может выбрать только файлы XLSX, не более 10MB.

Кнопка Удалить выбранный файл

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

Кнопка Отмена

  • активна всегда
  • при нажатии форма закрывается, курсы валют не сохраняются

Кнопка Сохранить

  • активна если
    • выбранный файл прошел проверки, и система не обнаружила ошибки
    • Заполнено поле Агент (если поле отображается пользователю)
  • при нажатии пользователем на кнопку, система:
    • во время обработки отображает лоадер, все кнопки и ссылки неактивны
    • построчно выполняет проверки файла. При нахождении первый ошибочной строки, показывает сообщение пользователю, все остальные строки не проверяет:
      • должно быть только три колонки. Если проверка не выполняется, показывает сообщение: Таблица должна содержать 3 колонки
      • должны быть заполнены все три колонки. Если проверка не выполняется, показывает сообщение: Таблица содержит пустые ячейки
      • указанная валюта должна быть в системе в справочнике. Если проверка не выполняется, показывает сообщение: Валюта {код_валюты_из_файла} не найдена в системе
      • значение курса - число, больше 0, целое или дробное, максимум 4 знака после запятой. Если проверка не выполняется, показывает сообщение: Числа должны быть целыми или дробными, больше нуля, макс. 4 знака после запятой
      • пара валют должна быть уникальна,
        • при этом, если в двух разных строках одни и те же валюты указаны в разных столбцах (например в первой строке USD/RUB, а во второй порядок обратный RUB/USD), такое не является ошибкой и может быть загружено двумя строками.
        • если проверка не выполняется, показывает сообщение: Пара {код_валюты_1_из_файла}/{код_валюты_2_из_файла} дублируется
      • Валюты в двух столбцах должны быть разные. Если проверка не выполняется, показывает сообщение: Валюты в строке дублируются
      • при всех остальных неудачных проверках файла, показывает стандартную системную ошибку на диалоговом окне.
      • если в файле нет ни одной заполненной строки - это не ошибка, это возможность пользователю удалить все курсы.
    • удаляет все курсы агента, связанного с пользователем, выполняющим загрузку (у которых exchangeRate.agent совпадает с агентом, связанным с пользователем)
    • сохраняет курсы валют из файла. Если строк в файле нет - справочник для агента остается пустой.
      • exchangeRate.agent:
        • если пользователем отображается поле Агент, то указанный пользователем
        • если не отображается, то агент, связанный с пользователем выполняющим загрузку
      • exchangeRate.firstCurrency - из первой колонки файла
      • exchangeRate.secondCurrency- из второй колонки файла
      • exchangeRate.exchangeRate - из третьей колонки файла
    • закрывает диалоговое окно
    • показывает обновленную таблицу курсов. Если строк в файле нет - показывает состояние Нет ни одной записи
    • показывает оповещение Курсы загружены
    • загруженный файл система не сохраняет