32 lines
3.1 KiB
Markdown
32 lines
3.1 KiB
Markdown
## 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 не меняется.
|