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

Деталка набора базовых ставок#

Интерфейс#

Макет

Ссылка возврата на список наборов базовых ставок#

Аналогично ссылке возврата в деталке клиента

Статусы набора ставок#

Статус набора "Запланирован"#

  • отображается если у набора ставок:
    • Дата начала > сегодняшнего дня
  • на статусе при наведении мышкой отображается хинт: Срок действия набора ещё не наступил
  • Набор в этом статусе:
    • набор можно редактировать (отображается кнопка редактировать)
    • набор можно удалить (отображается кнопка удалить)
    • в набор можно добавить строки в таблицу ставок (отображается кнопка добавить)
    • можно редактировать/удалять строки в таблице ставок (открывается модалка при клике на строку )
    • можно копировать набор данных (отображается кнопка копирования)

Статус набора "Активен"#

  • отображается если у набора ставок:
    • Дата начала <= сегодняшнего дня
    • Дата окончания >= сегодняшнего дня или пустая
  • на статусе при наведении мышкой отображается хинт: Действующий набор
  • Набор в этом статусе:
    • набор нельзя редактировать (не отображается кнопка редактировать)
    • набор нельзя удалить (не отображается кнопка удалить)
    • в набор нельзя добавить строки в таблицу ставок (не отображается кнопка добавить)
    • нельзя редактировать/удалять строки в таблице ставок (не открывается модалка при клике на строку )
    • можно копировать набор данных (отображается кнопка копирования)

Статус набора "Завершён"#

Макет

  • отображается если у набора ставок:
    • Дата окончания < сегодняшнего дня
  • на статусе при наведении мышкой отображается хинт: Срок действия набора истёк
  • Набор в этом статусе:
    • набор нельзя редактировать (не отображается кнопка редактировать)
    • набор нельзя удалить (не отображается кнопка удалить)
    • в набор нельзя добавить строки в таблицу ставок (не отображается кнопка добавить)
    • нельзя редактировать/удалять строки в таблице ставок (не открывается модалка при клике на строку )
    • можно копировать набор данных (отображается кнопка копирования)

Мэппинг полей#

baseRate.schema.json

Дата начала
Атрибут объекта: baseRate.startDate
  • обязательное
  • дата
  • должна быть > сегодняшнего дня
  • уникально в разрезе агента
  • в выпадашке дни <= текущего - неактивны
  • текст ошибки при сохранении:
    • если введенное значение <= текущей даты: Дата должна быть позднее текущего дня
    • если набор на указанную дату для агента уже существует: Для даты уже есть набор базовых ставок
Агент
Атрибут объекта baseRate.agent.fullName
  • недоступно для редактирования

Таблица ставок#

baseRateSet.schema.json

Поле таблицы Атрибут объекта
Валюта отправителя baseRate.rates[].currencyCustomer
Валюта получателя baseRate.rates[].currency
Страна банка получателя baseRate.rates[].country, выводим country.englishName
Сумма baseRate.rates[].minAmount - baseRate.rates[].maxAmount
Ставка baseRate.rates[].percent
Минимальная комиссия baseRate.rates[].minimumRateThreshold

Если нет строк таблицы ставок и не отображается кнопка на добавление, таблица ставок не отображается.

Сортировка по полям:

  • Валюта отправителя (по алфавиту),
  • потом по Валюта получателя (по алфавиту),
  • потом по Cтрана банка получателя (по алфавиту по country.englishName)
  • потом по Сумма (minAmount, по возрастанию)

Добавление ставки#

  • Кнопка + Добавить
  • При нажатии на кнопку + Добавить, открывается модальное окно с полями для ввода
  • модалка не закрывается по клику на фон (только крестиком или кнопками Отменить, Добавить)
Валюта отправителя
Атрибут объекта: baseRate.rates[].currencyCustomer
  • не обязательное
  • выбор из локального справочника валют, аналогично полям Валюта в заявке
  • хинт на поле (отображается когда поле в фокусе): Если валюта не выбрана, ставка будет применятся ко всем валютам
Валюта получателя
Атрибут объекта: baseRate.rates[].currency
  • не обязательное
  • выбор из локального справочника валют, аналогично полям Валюта в заявке
  • хинт на поле (отображается когда поле в фокусе): Если валюта не выбрана, ставка будет применятся ко всем валютам
Страна банка получателя
Атрибут объекта: baseRate.rates[].country
  • необязательное
  • работа поля аналогична
Сумма от
Атрибут объекта: baseRate.rates[].minAmount
  • обязательное
  • инпут
  • число
  • минимальное значение - 0,01
  • максимальное значение - 99 999 999 999,99

  • разделитель групп разрядов - пробел

  • десятичный разделитель - запятая
  • 2 знака дробной части отображаются всегда:
    • если пользователь вводит целое число, система добавляет в поле ,00. Например: введено 123456, отображается 123 456,00
    • если пользователь вводит число одним заком поле запятой, система добавляет 0. Например: введено 123456,3, отображается 123 456,30
    • если пользователь вводит точку для разделения дробной части, система заменяет точку на запятую. Например: введено 123456.3, отображается 123 456,30
    • Ссылка на пример (в примере нет добавления ,00 )
  • при вставке в поле значения из буфера, значение вставляется только если его формат соответствует требованиям
  • не может быть больше "Суммы до"
  • диапазоны сумм не могут пересекаться в рамках валюты, страны и агента
Сумма до
Атрибут объекта: baseRate.rates[].maxAmount
  • обязательное
  • инпут
  • число
  • минимальное значение - 0,01
  • максимальное значение - 99 999 999 999,99
  • разделитель групп разрядов - пробел
  • десятичный разделитель - запятая
  • 2 знака дробной части отображаются всегда:
    • если пользователь вводит целое число, система добавляет в поле ,00. Например: введено 123456, отображается 123 456,00
    • если пользователь вводит число одним заком поле запятой, система добавляет 0. Например: введено 123456,3, отображается 123 456,30
    • если пользователь вводит точку для разделения дробной части, система заменяет точку на запятую. Например: введено 123456.3, отображается 123 456,30
    • Ссылка на пример (в примере нет добавления ,00 )
  • при вставке в поле значения из буфера, значение вставляется только если его формат соответствует требованиям
Ставка, %
Атрибут объекта: baseRate.rates[].percent
  • значение

    • обязательное
    • инпут
    • число
    • минимальное значение - 0,0000
    • максимальное значение - 100

    • разделитель групп разрядов - пробел

    • десятичный разделитель - запятая
    • 4 знака дробной части отображаются всегда:
      • если пользователь вводит целое число, система добавляет в поле ,0000. Например: введено 123456, отображается 123 456,0000
      • если пользователь вводит число одним заком поле запятой, система добавляет 0. Например: введено 123456,3, отображается 123 456,3000
      • если пользователь вводит точку для разделения дробной части, система заменяет точку на запятую. Например: введено 123456.3000, отображается 123 456,3000
      • Ссылка на пример (в примере нет добавления ,00 )
    • при вставке в поле значения из буфера, значение вставляется только если его формат соответствует требованиям
Минимальная комиссия
Атрибут объекта: baseRate.rates[].minimumRateThreshold
  • обязательное
  • инпут
  • число
  • минимальное значение - 0,01
  • максимальное значение - 99 999 999 999,99
  • разделитель групп разрядов - пробел
  • десятичный разделитель - запятая
  • 2 знака дробной части отображаются всегда:
    • если пользователь вводит целое число, система добавляет в поле ,00. Например: введено 123456, отображается 123 456,00
    • если пользователь вводит число одним заком поле запятой, система добавляет 0. Например: введено 123456,3, отображается 123 456,30
    • если пользователь вводит точку для разделения дробной части, система заменяет точку на запятую. Например: введено 123456.3, отображается 123 456,30
    • Ссылка на пример (в примере нет добавления ,00 )
  • при вставке в поле значения из буфера, значение вставляется только если его формат соответствует требованиям

полю Страна (order.counterparty.country) в заявке

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

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

Кнопка Добавить

  • Активна если изменено значение хотя бы одного поля.
  • при нажатии пользователем на кнопку, система:
    • выполняет проверку, что обязательные поля заполнены. Если проверка не выполняется:
      • подсвечивает незаполненные поля
      • окно не закрывает, запись не сохраняет
    • выполняет проверку, что Сумма от <= Сумма до. Если проверка не выполняется:
      • под Сумма от отображает текст ошибки Первая сумма не может быть больше второй
      • окно не закрывает, запись не сохраняет
    • выполняет проверку, что диапазон сумм Сумма от и Сумма до не пересекается в рамках валюты отправителя, валюты получателя, страны и агента. Если проверка не выполняется:
      • под Сумма от отображает текст ошибки Диапазон сумм пересекается с существующим
      • окно не закрывает, запись не сохраняет
    • закрывает окно,
    • сохраняет в БД,
    • показывает обновленную форму набора базовых ставок

Редактирование и удаление ставки#

Пользователь с правом CREATE_BASE_RATE нажимает на строку в таблице ставок (и в режиме редактирования, и в режиме просмотра), Система показывает модалку редактирования строки:

  • модалка открывается, если есть право CREATE_BASE_RATE
  • модалка открывается, если набор в статусе Запланировано
  • поля аналогичны полям при добавлении ставки
  • заполнены ранее сохраненными значениями
  • все поля доступны для редактирования
  • модалка не закрывается по клику на фон

Кнопка Удалить

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

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

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

Просмотр и редактирование набора ставок#

Режим просмотра набора ставок#

Режим редактирования набора ставок#

Кнопка Редактировать в деталке набора ставок

  • Отображается:
  • При нажатии на кнопку:
    • становится доступными для изменения поле Дата начала
    • отображаются кнопки Отменить и Сохранить:

Кнопка Отменить - отображается всегда - При нажатии: - сбрасывает внесенные изменения в поля набора ставок - переводит форму в режим просмотра

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

  • Активна если изменена Дата начала
  • При нажатии пользователем на кнопку, система:
    • в процессе сохранения на кнопке отображает лоадер, все поля и кнопки формы заблокированы
    • проверяет обязательные поля, в случае ошибки подсвечивает незаполненные поля
    • сохраняет набор ставок в БД
    • переводит форму в режим просмотра

Удаление набора ставок#

Кнопка Удалить

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

Копирование набора ставок#

Кнопка копирования

  • отображается пользователю с правом CREATE_BASE_RATE
  • доступна во всех статусах
  • при наведении мыши отображается подсказка Скопировать набор
  • при нажатии на кнопку система показывает диалоговое окно (макет):
Дата начала
Аналогично полю дата начала в окне создания

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

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

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

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