Andrey Epifancev 5f2b0e890f Гудвилл: UI-спека goodwill-ui, правки по проверке на стенде
OpenSpec change goodwill-ui (таблица, редактирование, переключатель/фильтр/экспорт;
вкладка «Гудвилл» в intercompany-matrix-ui больше не заглушка; R-1…R-3). По стенду:
стрелка раскрытия блока — у названия, «Выделить все» в одну строку, текст пустой таблицы.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-11-06 18:44:02 +04:00

2.7 KiB
Raw Blame History

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 говорит «предварительные … итоги»).