kfo-table-back: vgo_assignment.side и kfo_result.snapshot
This commit is contained in:
parent
b9e31aba3c
commit
5c8f9a39cc
1772
model/data-model-v5.27.dbml
Normal file
1772
model/data-model-v5.27.dbml
Normal file
File diff suppressed because it is too large
Load Diff
46
model/entities-v5.27.md
Normal file
46
model/entities-v5.27.md
Normal file
@ -0,0 +1,46 @@
|
|||||||
|
# Модель данных 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 не означает реализации процесса записи среза ЕХ.
|
||||||
Loading…
x
Reference in New Issue
Block a user