Andrey Epifancev da15355dd7 Архив OpenSpec consolidations-ui (PR #166)
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-23 11:00:20 +04:00

7.5 KiB
Raw Blame History

Why

В ветке AURORA-1589 (PR RSHB/arm-core#166, автор — Степанов, задача AURORA-1589) фронт доводит экраны консолидаций до макета: список консолидаций ГК [34] с «Взять в работу» и перехватом [35], модалку «Новая консолидация» [42] и кнопку «Изменить статус» в карточке версии [30] с модалкой [33-01]. Бэкенд этих действий уже в main (consolidations-api: список с in_work_only, блокировка и перехват, ручная смена статуса). У экранов нет UI-спеки. Спеку, документацию и тесты ведёт ревьюер коммитами в ветку автора (правило владельца). После ревью раунда 1 владелец решил (23.10.2026) довести PR самим в этой же ветке: расхождения кода с целевой спекой (бывшие «Known issues» design.md) исправлены ревьюером, коммит 71ef633 («Единицы» сводной ОСВ) остаётся в PR и тоже исправлен.

What Changes

Репозиторий — только arm-core (web/). Эндпоинты arm-core (без изменений): GET /company-groups/{id}/consolidations (in_work_only), GET /consolidations/versions/{id}, POST /consolidations/versions/{id}/lock (takeover_reason), POST /consolidations/versions/{id}/status, POST /consolidations.

  • Список консолидаций [34]: колонки, дерево версий с номером только у версий 2+, фильтр «Только в работе» (выключен по умолчанию), «Взять в работу» с подтверждением [35] и перехватом с причиной, неактивные пункты меню «⋯».
  • Панель «Организации» без выбранной консолидации и серый статус «Отсутствует».
  • Подписи статусов версии («Корректировка данных», «Отменена») и пояснение статуса под заголовком карточки.
  • Модалка «Новая консолидация» [42]: ИНН отдельной колонкой, «+ Создать», без звёздочек обязательности.
  • «Изменить статус» [33-01]: допустимые переходы — зеркало MANUAL_TRANSITIONS бэка, по умолчанию ничего не выбрано, кнопка доступна только владельцу блокировки и при наличии ручных переходов.
  • Модалка [31-00] «Остались неуказанные ИНН» при уходе со «Сводной ОСВ» на другую вкладку отчёта.
  • Предупреждение браузера о несохранённых правках в модалках этих экранов («Взять в работу» с причиной, «Изменить статус», «Новая консолидация»).
  • Сводная ОСВ [30]: «Единицы» (руб. / тыс. руб. / млн руб. / млрд руб.) и «Знаков после запятой» (0–3) — масштаб на строках без float, ноль — «—».
  • Новая спека consolidations-ui (ADDED Requirements), дельта consolidated-osv-ui (ADDED).
  • Чистые правила экранов — web/src/utils/consolidations.ts, масштаб сумм — formatScaledAmount в web/src/utils/money.ts, тесты vitest.
  • Документация фронта: web/CLAUDE.md (вторая библиотека иконок lucide-react), web/ARCHITECTURE.md (новые виджеты).

Non-goals

  • Полный маршрут согласования (переходы Среза 7), «Добавить версию», «Отключить подтверждение КФО», «История изменений», «Редактировать состав», «Импорт», «Дата верификации», «Утверждён в РФ» / «Верифицирован в ГО» — зонтичная задача AURORA-1416.
  • ГСК консолидации в API списка и карточки (колонка «ГСК») — отдельная задача ядра; до неё колонка пустая.
  • Список допустимых переходов из API (allowed_transitions) — с маршрутом согласования; до него фронт держит зеркало.
  • Предупреждение браузера о несохранённых правках в формах вне экранов консолидаций (справочники, проверка документов) и при переходе по меню приложения — открытый вопрос владельцу (design.md, «Открытые вопросы»).
  • «Настройка таблицы», «На весь экран», фильтры по суммам в сводной ОСВ — задача «Сводная ОСВ: UI по макету».
  • Изменения бэкенда и DBML.

Capabilities

New Capabilities

  • consolidations-ui: список консолидаций ГК, взятие в работу и перехват, модалка новой консолидации (вид), смена статуса версии и шапка карточки версии.

Modified Capabilities

  • consolidated-osv-ui: ADDED требование «Единицы и знаки после запятой» (коммит 71ef633 остаётся в PR, решение владельца 23.10.2026). consolidation-setup (состав модалки [42], создание, «К отчётности») не правится — вид модалки и шапка карточки описаны в новой спеке (design.md, решение без обсуждения (а)).

Impact

  • web/src/utils/consolidations.ts (+ тест), web/src/utils/money.ts (formatScaledAmount, + тест), web/src/hooks/useBeforeUnload.ts, web/src/widgets/ConsolidatedOsv/ (OsvTabs.tsx — модалка [31-00], useNumberDisplay.tsx, OsvTable.tsx),
  • web/src/widgets/ConsoleTable/ (ConsoleTable.tsx, LockModal.tsx, config.tsx, consts.ts, flatten.ts), web/src/widgets/StatusChangeModal/ChangeStatusModal.tsx, web/src/widgets/NewConsoleModal/ (NewConsoleModal.tsx, CompanyOptionRow.tsx), web/src/widgets/ConsoleLegalEntities/, web/src/layouts/ConsolidationReportPage.tsx (шапка, после влива #158), web/src/widgets/ConsolidatedOsvContent/ («Единицы»), web/src/layouts/ConsolidationsList.tsx, web/src/services/api/consolidations.ts, web/src/store/slices/consolidations/thunks.ts, web/src/types/, web/src/widgets/Sidebar/ (иконки), web/package.json (lucide-react).
  • Права: действия требуют CONSOLIDATION_EDIT на сервере; меню по правам не скрывается.
  • Гайд фронта по API (docs/dev/frontend-api-guide.md §5.7): заметка о зеркале ручных переходов — PR в RSHB/arm-ka-docs, сливать вместе с этим PR.