Andrey Epifancev d8af058f75 feat(web): таблица корректировок под ответы Лысенко 29.10 (#206)
- отзыв корректировки убран (RevokeModal, revokeCorrection, пункт меню агрегата);
  `status` из тела PUT убран — сервер сразу применяет (R-29, R-30);
- «Учитывать в КФО»: у агрегата отмечен и закреплён, у строк агрегата флажка нет,
  у нераспределённых — EXCLUDE/INCLUDE; `excluded` у строки агрегата убран (R-31, R-32);
- у нераспределённой — строка баланса владельца `line_code`, фильтр «Строка баланса»
  действует и на неё (R-33);
- фейк: ENTRY_ALLOCATED для EXCLUDE/INCLUDE строки агрегата, ENTRY_EXCLUDED для ASSIGN
  исключённой; «Убрать из правила» отдаёт строку с line_code;
- спека, design.md (R-29…R-34), tasks §9, план Task 9, README/ARCHITECTURE.

Источник: AURORA-1395 #9920570, WIP API arm-core #208.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-29 23:17:34 +04:00

6.5 KiB
Raw Blame History

1. Типы контракта, клиент API, флаг фейка

  • 1.1 Типы src/types/corrections.ts по контракту docs/dev/api-contract-corrections.md
  • 1.2 Клиент src/services/api/corrections.ts (таблица, сохранение, отмена, разнесение, экспорт) и флаг Config.CORRECTIONS_MOCK

2. Фейк контракта и модель таблицы

  • 2.1 Фейк correctionsFake и данные дизайна mockData / mockCalc под флагом REACT_APP_CORRECTIONS_MOCK
  • 2.2 Чистая модель таблицы tableModel.ts: строки, фильтры, пресет правила, итоги

3. Модель окна корректировки и черновик

  • 3.1 editorModel.ts: состояние окна, проверки ввода, контроль баланса, кандидаты для выбора строки
  • 3.2 Деньги копейками в utils/money.ts, черновик в draftStorage.ts

4. Вкладка и таблица только на чтение

  • 4.1 Вкладка «Таблица корректировки»: загрузка, ошибка с «Повторить», пусто, экспорт, полный экран
  • 4.2 Таблица с группами колонок, раскрытием агрегата, нераспределёнными записями, «Итого»
  • 4.3 Панель: отображение, пресет правила, тип записи, единицы, знаки, сброс фильтров, настройка таблицы; фильтры в заголовках

5. Решения по строкам, отмена корректировки, только чтение

  • 5.1 Флажок «Учитывать в КФО» и меню строки (перенос в правило, убрать из правила, вернуть к автоматике)
  • 5.2 Отмена корректировки с комментарием, подсказки режима «только чтение», обработка 409

6. Окно «Корректировка операции»

  • 6.1 Окно: стороны, строки ОСВ, распределение корректировки, контроль баланса, комментарий, сохранение
  • 6.2 Выбор нераспределённой строки (picker), черновик, плашки конфликта, доступность с клавиатуры

7. Сверка с дизайном, проверки, документация

  • 7.1 Проход сценариев спеки в браузере на фейке (ширина 1920, headless Chrome по CDP) и сверка частей экрана с дизайном. Проверено: таблица и группы колонок, панель, фильтры в заголовках, раскрытие, нераспределённые, пресет, настройка таблицы, окно корректировки, решения по строкам (в т.ч. повторный INCLUDE), «Убрать из правила», ошибка загрузки с «Повторить», экспорт, composition_changed и «черновик». Не проверено — вынесено в 8.1: полный экран, 409 / CORRECTION_VERSION_CONFLICT, недоступный localStorage, «Вернуть к автоматике» внутри агрегата, реальный API
  • 7.2 make web-check, npm test, npm run lint, openspec validate corrections-table-ui --strict
  • 7.3 README (флаг фейка) и ARCHITECTURE (виджет CorrectionTable)

8. Подключение к API (после слияния AURORA-1540)

  • 8.1 Влить main, запустить без флага на стенде на реальной версии, пройти сценарии спеки. Отдельно проверить то, что не проверено на фейке:
    • полноэкранный режим (уведомления внутри бокса, выпадающие списки);
    • 409 и CORRECTION_VERSION_CONFLICT в окне и при решении по строке;
    • недоступный localStorage (приватное окно): окно корректировки работает без черновика;
    • «Вернуть к автоматике» на строке внутри агрегата (на нераспределённой фейк не возвращает строку в правило, R-23);
    • сценарии спеки, которых нет на данных фейка, — на реальных данных: Сатурн — Архол; Бековский с 62.01 / 60.02 / 62.03 / 76.01; ПМП — Бековский комбинат для «Добавить строку ОСВ»;
    • allocate с несколькими entry_ids и код VALIDATION_ERROR — фейк их не воспроизводит (M-10)
  • 8.2 Расхождения ответа с контрактом — правка фейка и типов или замечание в PR 1540; убрать фейк контракта (correctionsFake.ts и его тест) и ветку флага в corrections.ts; mockData и mockCalc остаются тестовыми фикстурами (R-27)
  • 8.3 make check-full, PR в main

9. Ответы Лысенко 29.10 (AURORA-1395, #9920570) и WIP API 1540 (arm-core #208)

  • 9.1 Убрать отзыв корректировки и status из тела PUT (п. 9; R-29, R-30)
  • 9.2 «Учитывать в КФО»: агрегат закреплён, у строк агрегата флажка нет, у нераспределённых — EXCLUDE / INCLUDE; excluded у строки агрегата убран (п. 4; R-31, R-32)
  • 9.3 Строка баланса владельца у нераспределённой (line_code), фильтр «Строка баланса» по ней (п. 11; R-33)
  • 9.4 Фейк: ENTRY_ALLOCATED для EXCLUDE/INCLUDE строки агрегата, ENTRY_EXCLUDED для ASSIGN исключённой; проверка на фейке в браузере (агрегат, раскрытие, нераспределённые, «×» в окне)
  • 9.5 Спека, design.md, README/ARCHITECTURE; контракт docs — отдельным PR