Фронт закладывал >= 5% (R-34, из неоднозначного текста контракта
«от 5% включительно»), а API 1540 (domain/corrections.py) считает
строго больше. Приведены к факту: живой контроль окна (editorModel),
подпись фильтра «Отклонение, %», тест на границе (ровно 5.00% больше
не красный, добавлен случай 5.01%).
Реальный контракт AURORA-1540/1751 не дал единой POST .../allocations:
решение по строке разбито на PUT/DELETE .../vgo-assignments/rule
(привязка/снятие правила) и PUT .../vgo-assignments/exclude (КФО),
ответ — список VgoAssignmentOut, а не вся таблица. allocate()
маршрутизирует по action и перечитывает таблицу сама — вызывающий код
(CorrectionContent, CorrectionEditorModal) не менялся.
Фейк контракта (CORRECTIONS_MOCK) убран — API уже есть. mockData/mockCalc
остаются тестовыми фикстурами (R-27).
Проверено на реальном стенде (Русский Бисквит — 2025 К1): загрузка
таблицы, EXCLUDE/INCLUDE, ASSIGN, снятие правила, сохранение
корректировки, экспорт — без ошибок в консоли.
Нужно для DELETE .../vgo-assignments/rule (снятие правила) — API
ждёт statement_type/entry_ids в теле. Единственный прежний вызов
(files.ts, без тела) не затронут.
AppModal не задаёт margin у ant-modal-header, только padding — без
инлайн-override возвращался зазор, убранный в AURORA-1589 раньше.
Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
- отзыв корректировки убран (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>
- режим запроса вынесен в utils/chessMatrixMode (all / manual / half) с тестами;
при «одна сторона» запрос матрицы не уходит, индикатор загрузки снимается;
- подсказка по спеке intercompany-matrix-ui: один текст в таблице и у фильтров,
у фильтров — только в состоянии «одна сторона»;
- высота шахматки: min-height только для состояния подсказки, обёртка снова auto
(в обычном режиме «Итого» сразу под строками);
- откат pairs?.length в shouldWarnCounterPairs (маскировал старый API);
- вернули комментарий про сумму, лишний columns || [] и дубль CSS убраны;
опечатка CataloguGroupTabsI.
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
AllocationIn получил side: строка с дебетовым и кредитовым сальдо даёт
две позиции, решение касается одной. Флажок, меню строки, окно
корректировки и фейк передают и ищут позицию по строке и стороне.
Контракт — docs PR #184.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
I-2: sourceDiff = суммы сторон, отклонение и порог из агрегата; diffOf только для распределения.
M-1: целая часть суммы не более 16 цифр («Слишком большая сумма»). M-6, M-7: комментарий, один percentText.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
I-1: локальный notification.useNotification с getContainer на бокс вкладки; M-6, M-8: комментарии.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
T6.11: при пересборке окна из нового агрегата (правок не было) база черновика
обновляется до текущей редакции корректировки, иначе при следующем открытии
показывалась ложная плашка об изменении.
T6.12: подпись кнопки «Выбрать» называет контрагента; ошибки полей статьи
объявляются role=alert.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Флажок «Учитывать в КФО» и меню строк (перенести, убрать, вернуть к
автоматике) отправляют allocate; «Отменить корректировку» открывает окно
с обязательным комментарием и вызывает revoke. Ошибки — уведомление с
текстом сервера, 409 — ещё перечитывание таблицы. Подсказки режима только
чтения вынесены в readOnly.ts, подсказка «Недоступно» убрана (T4.14).
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
- Копейки, процент и порог 5 % вынесены из mockCalc в utils/money;
editorModel больше не зависит от фейка, тесты перенесены.
- Один разбор суммы строки ввода для проверки, живого контроля и сравнения;
некорректные строки в живой контроль не входят.
- isDirty сравнивает суммы копейками; комментарий — точно.
- Черновик: savedAt проверяется через Date.parse.
- Тесты границ порога, пустых сторон и неизвестного rule_id.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Состояние окна «Корректировка операции», проверки ввода, живой контроль
(исходные суммы и распределение), кандидаты «Добавить строку ОСВ» и
черновик в localStorage. Деньги — строки, сложение через sumAmounts,
ввод через parseAmountInput; процент — percentOfSmaller из mockCalc.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Стороны нового агрегата по знаку строки, RULE_REQUIRED, ENTRY_NOT_IN_VERSION,
атомарность allocate, возврат прежнего правила в кандидаты, тесты.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Типы 1:1 с components.schemas контракта корректировок, клиент API
(таблица, сохранение, отзыв, разнесение, экспорт), флаг
REACT_APP_CORRECTIONS_MOCK в Config. Ветка фейка пока бросает ошибку
(фейк — в следующей задаче). Строка R-1 в design.md.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
- список ГК в сторе снова общий и полный (с архивными); «Архив» фильтрует только список справочника,
выбор ГК — первая показанная, пустой список — «Группа компаний не выбрана»
- перенос ЮЛ и новая консолидация не предлагают архивные ГК
- «Входит в ГСК/ГСЗ» — поля строки in_gsk/in_gsz, колонки только в карточке ГК (не в «ЮЛ вне ГК»)
- «Архивировать» красным, а не «Разархивировать»; тексты модалки и кнопка «Сохранить» в изменении ГК
- вернул поясняющие комментарии; поиск ГК не сжимается галочкой «Архив»
- тесты: selectors (видимые ГК, выбор ГК), toCatalogueJurRow
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Решение владельца после показа на стенде: «Указать» во «Встречных записях»
открывает список из одного участника пары; «Показать все организации» —
обычный список. Чистая pairCandidateRows + vitest, спека и design.md.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Открытая панель «Первичные документы» живёт в адресе экрана консолидации (?entity=<id ЮЛ> рядом с ?version=),
открытие и закрытие заменяют запись истории. «Назад» из документа, открытого из панели, возвращает на консолидацию
с той же версией и панелью той же организации; переключатель документа (AURORA-1692) и прямая ссылка — как прежде.
- utils/consolidations.ts: panelEntity / withPanelEntity + тест;
- ConsolidationsList: панель открыта по ?entity=, когда ЮЛ из адреса уже в сторе (без мелькания прежнего ЮЛ);
- ConsoleLegalEntities: onDrawerOpen(id ЮЛ строки);
- change back-to-primary-docs: MODIFIED document-review-ui «Переключатель документа», ADDED primary-files-ui
«Открытая панель в адресе экрана консолидации».
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Тело режима прокручивается внутри карточки; ключ и страница — одно состояние (currentPage);
запасная горизонтальная прокрутка таблиц на узком окне.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>