10 KiB
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 считать сам. Стрелка раскрытия блока SHALL стоять в
колонке «Наименование дочерней организации» при любом наборе видимых колонок; если эта колонка скрыта — в первой видимой.
Если загрузка не удалась, вместо таблицы SHALL показываться текст ошибки (сообщение сервера или «Не удалось загрузить
таблицу гудвилла») и кнопка «Повторить»; сообщение «Вложений по 58.01 между компаниями периметра нет» 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
Scenario: Стрелка блока при скрытой колонке
- WHEN в «Настройке таблицы» снята колонка «Учет в отчете»
- THEN стрелка раскрытия блока остаётся в колонке «Наименование дочерней организации»
Scenario: Ошибка загрузки
- WHEN
GET …/goodwillотвечает ошибкой - THEN вместо таблицы — текст ошибки и «Повторить»; «Повторить» запрашивает таблицу заново и при успехе показывает её
Requirement: Редактирование таблицы гудвилла
Кнопка «Редактировать» SHALL быть доступна при editable = true; иначе — недоступна с подсказкой причины
(read_only_reason). В режиме редактирования (баннер «Доступны для редактирования столбцы «Доля владения» и
«Комментарий».») у действующих строк доступна галочка; у отмеченной действующей строки — поля доли и комментария, P и G
строки SHALL пересчитываться предварительно по введённой доле. Доля — 0–100, не больше двух знаков, запятая или точка;
ошибочная доля MUST NOT обрезаться или подменяться, а показывается ошибкой у поля. «Сохранить» SHALL быть недоступно,
пока у отмеченной действующей строки нет корректной доли или комментария. Групповой чекбокс блока SHALL отмечать и снимать
все действующие строки блока, включая скрытые фильтром, и показывать промежуточное состояние при частичном выборе.
«Отменить изменения» SHALL возвращать последнее сохранённое состояние. На ответ 409 (версия закрыта, блокировку забрали)
или 404 (пары уже нет) при «Сохранить» экран SHALL показать уведомление с текстом сервера и перечитать таблицу, строку
MUST NOT подсвечивать; если после перечитывания editable = false, режим редактирования 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, не больше двух знаков после запятой», значение в поле не меняется, «Сохранить» недоступно
Scenario: Версию забрал другой пользователь
- WHEN аналитик в режиме редактирования нажимает «Сохранить», сервер отвечает 409
LOCKED_BY_OTHER, перечитанная таблица приходит сeditable = false - THEN уведомление с текстом сервера, режим редактирования закрыт, показаны сохранённые значения, «Редактировать» недоступна с подсказкой «Консолидацию редактирует другой пользователь»
Scenario: Пары больше нет
- WHEN сервер отвечает на «Сохранить» 404 по паре, которой больше нет в версии
- THEN уведомление с текстом сервера, таблица перечитана, ни одна строка не подсвечена; правки этой пары в запрос больше не попадают
Requirement: Переключатель, фильтр и экспорт гудвилла
Панель вкладки SHALL содержать переключатель «Учитывать гудвилл в КФО» (PUT …/goodwill-settings, доступен при
editable вне режима редактирования) с подписью суммы goodwill_in_kfo_amount или «Гудвилл не учитывается в КФО»;
фильтр «Гудвилл»: «Все значения», «Положительные», «Отрицательные», «Нулевые» (нерассчитанный гудвилл — только во «Все
значения»); единицы и знаки после запятой; «Настройка таблицы»; «Экспорт» — GET …/goodwill/export с текущим фильтром
(sign); «На весь экран». На ответ 409 или 404 при переключении экран SHALL показать уведомление с текстом сервера и
перечитать таблицу.
Scenario: Экспорт с фильтром
- WHEN выбран фильтр «Положительные» и нажат «Экспорт»
- THEN запрос уходит с
sign=positive
Scenario: Выключение гудвилла
- WHEN аналитик выключает переключатель
- THEN таблица перечитывается из ответа, под переключателем подпись «Гудвилл не учитывается в КФО», ручной ввод строк не меняется
Scenario: Переключатель после закрытия версии
- WHEN аналитик переключает «Учитывать гудвилл в КФО», а сервер отвечает 409
VERSION_NOT_EDITABLE - THEN уведомление с текстом сервера, таблица перечитана, переключатель недоступен