Andrey Epifancev e9a4f8e8a8 openspec: change intercompany-matrix-preset-header (AURORA-1761, PR #223)
Шапка XLSX пресета: коды правила без раскрытия, строки «кроме», статьи А/Б
по сторонам. Сценарий правила № 6 — без перечня кодов (после AURORA-2034
исключения 76 на обеих сторонах), решения в design.md.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-11-11 15:17:08 +04:00

35 lines
2.3 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# Proposal
## Why
AURORA-1761 (PR arm-core #223): техдолг ревью PR #141 (пресет шахматки по правилу ББ, AURORA-1747). Шапка XLSX пресета
перечисляла все раскрытые субсчета сторон правила: для правила № 6 — около 50 кодов в одной ячейке, а исключения
субсчетов 76 не видны вовсе, шапку нельзя сверить с Прил. 3. Подписи «Статья А / Статья Б» не учитывали `side_1 = K`.
## What Changes
- Шапка XLSX пресета: «Счета дебета» / «Счета кредита» — коды так, как они заданы в правиле; под каждой стороной строка
«кроме» с исключёнными кодами этой стороны.
- «Статья А» — статья дебетовой стороны, «Статья Б» — кредитовой: при `side_1 = K` статьи меняются местами.
- Реквизиты правила в `MatrixExportInfo` — вложенный `PresetRuleDetails` (None для ALL/MANUAL) вместо шести
необязательных полей; имя файла через общий `VersionExportInfo._filename`.
- Из `_export_response` убрана проверка с `raise ValueError` (давала 500).
- OpenAPI маршрутов preset: 404 — версия или правило, 422 — `INVALID_RULE` / `RULE_REQUIRED` / `ACCOUNTS_REQUIRED`.
## Capabilities
### Modified Capabilities
- `consolidated-osv` — «XLSX шахматки пресета»: коды правила без раскрытия, строки «кроме», статьи по сторонам.
## Impact
arm-core `api/src/services/intercompany_matrix.py`, `api/src/services/intercompany_matrix_export.py`,
`api/src/api/endpoints/consolidations/intercompany_matrix.py`, тесты шахматки. JSON-ответ расчёта, аудит, DBML,
`05-domain-rules.md` не меняются.
## Non-goals
- Проверка правила до расчёта сводной ОСВ (необязательный пункт задачи) — не сделана: на неверный `rule_id` по-прежнему
сначала считается свод.