Andrey Epifancev 4401fbb510 Архив OpenSpec intercompany-matrix-one-sided (PR #165)
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-23 00:05:52 +04:00

2.8 KiB
Raw Blame History

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.