OpenSpec change goodwill-ui (таблица, редактирование, переключатель/фильтр/экспорт; вкладка «Гудвилл» в intercompany-matrix-ui больше не заглушка; R-1…R-3). По стенду: стрелка раскрытия блока — у названия, «Выделить все» в одну строку, текст пустой таблицы. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
27 lines
2.7 KiB
Markdown
27 lines
2.7 KiB
Markdown
## Context
|
||
|
||
Экран — по контракту `../docs/dev/api-contract-goodwill.md`, DOC-259025 §4–§6 и макету `[31-03]`, `[31-03-01]`. Суммы —
|
||
строки, арифметика только в копейках (`utils/money.ts`), чистые функции вкладки — `utils/goodwill.ts` с vitest.
|
||
|
||
## Decisions
|
||
|
||
- Итоги «Всего» и «Итого по листу» берутся из ответа (`groups[].totals`, `totals`), фронт их не считает.
|
||
- В режиме редактирования P и G строки — предпросмотр (`previewAmounts`, та же формула и округление, что на бэке).
|
||
- Сохранение — один `PUT …/goodwill` с изменёнными строками (`changedRows`); ошибка строки (422 с ключом пары)
|
||
подсвечивает поле этой строки, режим не закрывается.
|
||
- Переключатель `goodwill_enabled` меняется вне режима редактирования, отдельным запросом.
|
||
|
||
## Decisions made without discussion
|
||
|
||
Ревью arm-core #220 (06.11.2026, владелец: «давай всё сделаем сами»).
|
||
|
||
- **R-1 (2026-11-06). Правки вне задачи в PR откатены к `main`.** Обработка ошибок в 8 файлах справочников, `Alert` в
|
||
`CatalogueJurTable`, удалённые комментарии в `types/api.ts`, шахматке и корректировках. Обоснование: не относятся к
|
||
AURORA-1544, давали ложный тост на незаполненной форме (`validateFields` бросает не `Error`) и конфликтовали с #219/#221.
|
||
Оставлены общий фильтр единиц и `useFullscreen` (используется только вкладкой гудвилла). Цена ошибки: если правки нужны —
|
||
отдельной задачей.
|
||
- **R-2 (2026-11-06). Итоги — только с бэка** (правило владельца «агрегаты отдаёт бэк»). Цена ошибки: нет.
|
||
- **R-3 (2026-11-06). Предпросмотр — только у строк;** «Всего» и «Итого по листу» в режиме правки показывают сохранённое
|
||
и обновляются после «Сохранить». Обоснование: агрегаты не считаем на фронте (R-2). Цена ошибки: аналитик видит итог
|
||
после сохранения, а не во время ввода (DOC-259025 §5.1 п. 3 говорит «предварительные … итоги»).
|