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

47 lines
3.6 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 — КФО и позиции ВГО
Ветка: `feat/kfo-table-back`. Миграция 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).
## vgo_assignment.side
Nullable varchar: для ББ NULL, для ОФР только D или K. Это отдельные ручные решения для дебетовой
и кредитовой позиции исходной строки ОСВ (DOC-277424 §3.4).
Прежний уникальный индекс заменяется двумя частичными:
- balance: `(consolidation_version_id, statement_type, osv_entry_id)`;
- income: `(consolidation_version_id, statement_type, osv_entry_id, side)`.
Существующие income ASSIGN переносятся по счетам зафиксированной версии правила с учётом иерархии
и исключений; при неоднозначности миграция откатывается. UNASSIGNED переносится на обе стороны.
ББ остаётся без стороны. Откат запрещён, если две позиции одной строки не помещаются в старый ключ.
## kfo_result.snapshot
Boolean NOT NULL DEFAULT true. Несмотря на имя, поле не содержит снимок JSON:
- true — входные данные изменились, нужен пересчёт;
- false — сохранённый расчёт актуален.
После сохранённого изменения периметра, документов, формы, сопоставления, разнесения, корректировок
или гудвилла признак выставляется той же транзакцией. GET пересчитывает помеченный результат и
сбрасывает признак только при успешном сохранении. is_frozen защищает от пересчёта и инвалидации;
существующие замороженные результаты при миграции получают false.
Сами суммы, комментарии, доли и предупреждения остаются в предусмотренных таблицах kfo_result,
kfo_result_line и kfo_result_line_company. Исторические названия компаний и полный набор реквизитов
в отдельном JSON больше не сохраняются.
## Корректировки
`correction.ordinal` не добавляется. Основная строка определяется через parent_correction_id;
дополнительные строки упорядочиваются по ID. Порядок ввода дополнительных строк не сохраняется.
Если исключение ограничено суммой, это порядок применения дополнительных строк.
## Граница v5.26 / v5.27
v5.26 содержит только изменения, описанные в data-model-v5.26.dbml: показатели компаний, предупреждения,
сводки корректировок и события KFO_EDIT/EX_SNAPSHOT_WRITE. side и булевый snapshot вводятся только в v5.27.
Наличие EX_SNAPSHOT_WRITE в enum не означает реализации процесса записи среза ЕХ.