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

32 lines
3.1 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.

## Context
PR RSHB/arm-core#165, задача AURORA-1651 (технический долг ревью PR #114). Шахматка — чистая функция от сводной ОСВ
версии (DECISION-5), контракт ответа не меняется: меняются смысл `one_sided`, состав счетов режима ALL и заливка xlsx.
## Decisions
1. `one_sided = (amount_a == 0) != (amount_b == 0)`. Формула из описания задачи (`min(amount_a, amount_b) == 0 and
variance_amount > 0`) на неотрицательных суммах даёт то же, но на отрицательном сальдо (возможно по §1) пропускает
пару: −50 против 0 → `min = −50`. Знак ненулевой суммы не важен.
2. Подсветка в API и в xlsx — `exceeds_threshold or one_sided`. Поле `exceeds_threshold` сохраняет смысл «процент > 5»;
экран шахматки красит пару по тому же правилу (PR #158, change `intercompany-matrix-ui`).
3. Забалансовые счета (`is_off_balance = true`) исключаются только в ALL; MANUAL выбирает их явно, это не ошибка.
4. Фильтры `GET /directories/accounts` (`kind[]`, `row_type`, `is_off_balance`) из первой редакции PR убраны: в задаче их
нет, потребителей нет, при фильтре по `kind` в ответе оставались `parent_id` на строки вне ответа.
## Decisions made without discussion
- 2026-10-22. Формула `one_sided` через «ровно одна сумма нулевая» вместо формулы из описания задачи. Обоснование —
отрицательное сальдо (решение 1). Цена ошибки: если аналитик решит, что отрицательная сторона — не «пара без
встречной стороны», меняется одна строка и тест.
- 2026-10-22. Влив `main` с #141 и разрешение конфликтов выполнил ревьюер (владелец: «доведём задачу до ума, потом
сольём»). В ALL сохранены и фильтр забалансовых, и `MatrixSelection(..., "closing")` из #141; тесты #141 на старый
смысл `one_sided` переписаны. Цена ошибки: низкая, расчёт PRESET не затронут (свои счета правила).
## Решения владельца (2026-10-22)
- Экран красит и по `one_sided` (а не бэкенд выставляет `exceeds_threshold`).
- Фильтр `/directories/accounts` убрать из PR.
- Счёт `000` «Вспомогательный» не трогать, вопрос — в `07-open-questions.md`.
- Процент при отрицательной меньшей стороне — вопрос в `07-open-questions.md`, в этом PR не меняется.