arm-ka-docs/model/entities-v5.27.md

25 lines
3.0 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.

# Модель данных v5.27 — КФО без сохранения промежуточного расчёта
Миграция arm-core: `0014_dbml_v5_27`, после `0013_dbml_v5_26`.
База: [v5.26](entities-v5.26.md). Схема: [data-model-v5.27.dbml](data-model-v5.27.dbml).
Поле `kfo_result.snapshot` не вводится. Незамороженная таблица рассчитывается при каждом GET без записи в БД.
До заморозки в `kfo_result` сохраняется обоснование порогов, в `consolidation_version` — отклонения
от методологии, в `kfo_result_line` — только строки с непустыми комментариями. Расчётные ячейки компаний
не создаются. Обязательное `consolidated_amount` строки комментария равно 0 и не используется при чтении;
`computed_at` шапки при её создании заполняется временем расчёта ответа PUT, а не временем заморозки.
При переходе в VERIFIED таблица рассчитывается по текущим источникам, ручные поля накладываются на неё,
полный результат сохраняется и получает `is_frozen = true` в одной транзакции с переходом статуса.
После заморозки GET читает сохранённый результат. Повторная заморозка не пересчитывает результат.
Миграция удаляет прежний расчётный кэш незамороженных таблиц, сохраняя комментарии, обоснования
и отклонения от методологии. Замороженные суммы не изменяются. Удалённый промежуточный расчёт при downgrade не восстанавливается.
`vgo_assignment.side` добавляется по DOC-277424 §3.4: NULL для ББ, D/K для ОФР.
Уникальность ББ — версия/тип/строка, ОФР — версия/тип/строка/сторона. Старые назначения
ASSIGN переносятся по счетам правил, неоднозначные решения блокируют миграцию;
UNASSIGNED переносится на D и K. Откат запрещён при конфликте старого уникального ключа.
`correction.ordinal` не вводится; дополнительные строки упорядочиваются по ID. Поле API `data_changed` сохраняется
для совместимости и всегда равно false: отдельного состояния неактуального сохранённого расчёта больше нет.