2026-10-22 23:45:57 +04:00

35 lines
2.8 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.

## Why
Технический долг повторного ревью PR #114 (AURORA-1537), задача AURORA-1651. Признак `one_sided` считался по наличию
строк ОСВ, а не по суммам: пара «100 млн против строки с нулевым сальдо» выглядела сошедшейся (`one_sided = false`,
`exceeds_threshold = false`), а «0.00 против 0.00» с одной строкой — подсвечивалась ложно. Книга xlsx заливала пару только
по порогу. Режим «все счета» брал забалансовые счета 001–012: например, 009 «Обеспечения выданные» на компанию группы
давал ложное расхождение (решение владельца 16.10.2026).
Реализация — PR RSHB/arm-core#165 (ветка `AURORA-1651`, автор — Потапова), доведена ревьюером по решению владельца
22.10.2026.
## What Changes
- `one_sided` = ровно одна из сумм пары нулевая (знак не важен: сальдо в ОСВ бывает отрицательным).
- XLSX шахматки заливает пару, если `exceeds_threshold` или `one_sided`; в шапке режима ALL — «Все балансовые счета».
- Режим ALL — только балансовые счета (`is_off_balance = false`); MANUAL принимает любые, включая забалансовые.
- Правила — `../docs/context/05-domain-rules.md` §6 (docs-PR вместе с этим change), открытые вопросы — OQ про счёт `000`
и процент при отрицательной меньшей стороне.
## Non-goals
- Подсветка односторонней пары на экране шахматки — фронт, PR #158 (change `intercompany-matrix-ui`).
- Фильтры `GET /directories/accounts` (были в первой редакции PR, убраны решением владельца 22.10.2026).
- Процент расхождения при отрицательной меньшей стороне и исключение счёта `000` из ALL — открытые вопросы.
## Capabilities
### Modified Capabilities
- `consolidated-osv`: требования «Шахматка по сводной ОСВ версии» и «XLSX шахматки».
## Impact
- `api/src/services/intercompany_matrix.py`, `api/src/services/intercompany_matrix_export.py`; тесты шахматки.
- Контракт API не меняется (поля те же), меняется смысл `one_sided` и состав счетов режима ALL.