68 lines
6.9 KiB
Markdown
68 lines
6.9 KiB
Markdown
# goodwill-ui Specification
|
||
|
||
## Purpose
|
||
Вкладка «Гудвилл» отчёта версии (AURORA-1544): таблица гудвилла по головным организациям, режим редактирования долей и комментариев, переключатель учёта гудвилла в КФО, фильтр знака и экспорт — по контракту `../docs/dev/api-contract-goodwill.md` и DOC-259025.
|
||
|
||
## Requirements
|
||
|
||
### Requirement: Таблица гудвилла
|
||
Вкладка `goodwill` страницы отчёта версии SHALL загружать таблицу одним запросом `GET /consolidations/versions/{id}/goodwill`
|
||
(контракт `../docs/dev/api-contract-goodwill.md`) и показывать блоки по ГО в порядке ответа: строка ГО, строки ДО, строка
|
||
«Всего» блока из `groups[].totals`, внизу «Итого по листу» из `totals`. Колонки — по макету `[31-03]`: «Учет в отчете»,
|
||
«Наименование дочерней организации», «Доля владения», «Фондовые вложения головной организации», «Доля участия головной
|
||
организации в уставном капитале», «Уставный капитал», «Гудвилл (+/-)», «Комментарий». Сумма `null` SHALL показываться
|
||
прочерком, ноль — нулём в выбранных единицах; итоги фронт MUST NOT считать сам.
|
||
|
||
#### Scenario: Нулевой и нерассчитанный гудвилл
|
||
- **WHEN** у одной строки `goodwill_amount = "0.00"`, у другой `null`
|
||
- **THEN** первая показывает «0,00», вторая — «—»
|
||
|
||
#### Scenario: Строка «Нет вложений»
|
||
- **WHEN** у строки `has_investments = false`
|
||
- **THEN** строка серая, с меткой «Нет вложений», чекбокс недоступен, суммы — прочерки, сохранённые доля и комментарий видны
|
||
|
||
#### Scenario: Предупреждения
|
||
- **WHEN** у строки есть `warnings` (например, `CAPITAL_SOURCE_MISSING`)
|
||
- **THEN** рядом с названием ДО иконка предупреждения, по наведению — тексты `message`
|
||
|
||
### Requirement: Редактирование таблицы гудвилла
|
||
Кнопка «Редактировать» SHALL быть доступна при `editable = true`; иначе — недоступна с подсказкой причины
|
||
(`read_only_reason`). В режиме редактирования (баннер «Доступны для редактирования столбцы «Доля владения» и
|
||
«Комментарий».») у действующих строк доступна галочка; у отмеченной действующей строки — поля доли и комментария, P и G
|
||
строки SHALL пересчитываться предварительно по введённой доле. Доля — 0–100, не больше двух знаков, запятая или точка;
|
||
ошибочная доля MUST NOT обрезаться или подменяться, а показывается ошибкой у поля. «Сохранить» SHALL быть недоступно,
|
||
пока у отмеченной действующей строки нет корректной доли или комментария. Групповой чекбокс блока SHALL отмечать и снимать
|
||
все действующие строки блока, включая скрытые фильтром, и показывать промежуточное состояние при частичном выборе.
|
||
«Отменить изменения» SHALL возвращать последнее сохранённое состояние.
|
||
|
||
#### Scenario: Сохранение набора
|
||
- **WHEN** аналитик отметил две строки, ввёл доли «80,5» и «100» и комментарии и нажал «Сохранить»
|
||
- **THEN** уходит один `PUT …/goodwill` только с изменёнными строками; ответ заменяет таблицу, режим редактирования закрывается
|
||
|
||
#### Scenario: Снятие галочки у строки без доли
|
||
- **WHEN** аналитик снимает галочку у строки, где доля не вводилась, и сохраняет
|
||
- **THEN** строка уходит с `ownership_share: null` и сохраняется без ошибки
|
||
|
||
#### Scenario: Ошибка строки от сервера
|
||
- **WHEN** сервер отвечает 422 `COMMENT_REQUIRED` с ключом пары
|
||
- **THEN** поле комментария этой строки подсвечено ошибкой, режим редактирования не закрыт, введённое не потеряно
|
||
|
||
#### Scenario: Лишние знаки доли
|
||
- **WHEN** аналитик вводит долю «80,123»
|
||
- **THEN** у поля ошибка «Число от 0 до 100, не больше двух знаков после запятой», значение в поле не меняется, «Сохранить» недоступно
|
||
|
||
### Requirement: Переключатель, фильтр и экспорт гудвилла
|
||
Панель вкладки SHALL содержать переключатель «Учитывать гудвилл в КФО» (`PUT …/goodwill-settings`, доступен при
|
||
`editable` вне режима редактирования) с подписью суммы `goodwill_in_kfo_amount` или «Гудвилл не учитывается в КФО»;
|
||
фильтр «Гудвилл»: «Все значения», «Положительные», «Отрицательные», «Нулевые» (нерассчитанный гудвилл — только во «Все
|
||
значения»); единицы и знаки после запятой; «Настройка таблицы»; «Экспорт» — `GET …/goodwill/export` с текущим фильтром
|
||
(`sign`); «На весь экран».
|
||
|
||
#### Scenario: Экспорт с фильтром
|
||
- **WHEN** выбран фильтр «Положительные» и нажат «Экспорт»
|
||
- **THEN** запрос уходит с `sign=positive`
|
||
|
||
#### Scenario: Выключение гудвилла
|
||
- **WHEN** аналитик выключает переключатель
|
||
- **THEN** таблица перечитывается из ответа, под переключателем подпись «Гудвилл не учитывается в КФО», ручной ввод строк не меняется
|