Andrey Epifancev 228af4e4d9 КФО: дизайн change kfo-calculation-contract (#206)
Proposal и design: §8 «КФО», DBML v5.26, контракт API КФО под AURORA-1546/1547; ответы на вопросы проверки исполнителем.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-11-06 20:16:41 +04:00

49 lines
5.0 KiB
Markdown
Raw Permalink 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.

# Proposal: расчёт КФО — правила §8, модель v5.26, контракт API (docs #206)
## Why
Разработка КФО стартует 10.11.2026: AURORA-1546 (расчёт, Цыганков) и AURORA-1547 (экран, Степанов, на фейковых данных
по контракту). Обе задачи в «Нужно до старта» ссылаются на три документа, которых нет или которые устарели:
- §8 «КФО» в `context/05-domain-rules.md` написан по прежней редакции: корректировки складываются с автоэлиминацией,
нет распределения по строкам правил 1 и 2, нет ветки гудвилла в расчёте, нет единиц и округления;
- в модели `kfo_result_line_company` нет «по данным клиента» и «в т. ч. взаимные» по компании — колонки экрана из
сохранённого результата не восстановить;
- контракта API КФО нет совсем.
Источники: страницы Лысенко — DOC-274230 «Правила пар счетов» (27.10), DOC-259025 «Гудвилл» (03.11), DOC-272613
«Корректировка данных агрегатом» (04.11); черновики команды — DOC-274636 «Расчёт КФО», DOC-274647 «Экран: КФО»;
макет `[31-04]`. При расхождении страница Лысенко важнее черновика (решение владельца 28.10.2026, распространено на КФО
в раскладке спринта 4, R-1).
## What changes
- `context/05-domain-rules.md` §8, блок «КФО» — переписан: источники значений, порядок расчёта, автосумма агрегата по
каждому правилу ББ, распределение по строкам, корректировка агрегата вместо автосуммы, гудвилл, ОФР, итоговые строки,
единицы и округление, расхождения и пороги, реквизиты, пересчёт и заморозка, предупреждения.
- `model/data-model-v5.26.dbml` + `model/entities-v5.26.md` — `kfo_result_line_company` получает `client_amount`
и `vgo_amount`; пояснения `kfo_result_line` (`vgo_amount`, `eliminated_manual`, `GOODWILL`, единицы) и `kfo_result`
приведены к §8; changelog в шапке.
- `dev/api-contract-kfo.md` + `dev/api-contract-kfo.openapi.yaml` — новый контракт: чтение результата КФО версии,
сохранение ручных полей (комментарии строк, обоснование порога, причины отклонений от Методики).
- §8 «Корректировка» и `dev/api-contract-corrections.md` — автосумма агрегата нового режима `min_or_full` (правило 2):
таблица корректировок и КФО считают её одной функцией.
- DBML v5.26 также: `kfo_result.warnings` и сводка корректировок, `audit_action.KFO_EDIT`, пояснение `elimination_mode`.
- `context/07-open-questions.md` — открытые вопросы КФО с вариантом, принятым на старте.
Срез плана: Срез 6 (`09-delivery-plan.md`), Гант 2.5 / 2.8. Дочерние change'и — в `arm-core` (AURORA-1546, 1547,
1417), заводят исполнители.
Схема среза ЕХ `ex-payload-v1` — отдельный change и PR (под AURORA-1560), строится на форме ответа этого контракта.
## Non-goals
- Код расчёта и экрана — AURORA-1546, 1547 в `arm-core`.
- Правила пар ОФР как данные и их расчёт — AURORA-1999 (§5); здесь только как КФО читает агрегаты ОФР.
- Механизм пересчёта и инвалидации (события, триггеры) — AURORA-1417; здесь только наблюдаемое поведение для экрана.
- «КФО Общий» (динамика), «Подтверждение КФО клиента», выгрузка формы 2.03.01.01с — AURORA-2003, 1549/1550, 1565.
- Проверки перед переходами статусов (обязательность обоснования при отправке на верификацию) — AURORA-2002 / 1414;
здесь только признак «нужно обоснование».
- Новые поля версии под «подход по Методике» и «согласовано клиентом» — ждут ответа заказчика (DOC-274636, вопросы 14, 15).
- Схема `ex-payload-v1` — следующий change.