Шапка XLSX пресета: коды правила без раскрытия, строки «кроме», статьи А/Б по сторонам. Сценарий правила № 6 — без перечня кодов (после AURORA-2034 исключения 76 на обеих сторонах), решения в design.md. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
35 lines
2.3 KiB
Markdown
35 lines
2.3 KiB
Markdown
# 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` по-прежнему
|
||
сначала считается свод.
|