2.10.0¶
Released: TBD
Highlights¶
- Depreciation runs can now be reversed, units-of-production assets are rejected instead of silently never depreciating, and empty runs are no longer left in a vestigial DRAFT state. The third of the deferred Accounting Placeholder Audit feature builds.
Added¶
- Reverse a depreciation run (audit #24). New
reverseDepreciationRun(runId)mutation reverses the run's GL entry, marks the runREVERSED, and restores affected assets' book value. See Depreciation Completeness.
Changed¶
- Units-of-production depreciation is rejected at registration (audit #25) with a clear validation error, instead of booking an asset that would never depreciate.
- Depreciation runs are always posted (audit #26): an empty period no longer leaves a misleading DRAFT run; it is closed as POSTED and covered by the duplicate-run guard.
Fixed¶
- Disposal now ignores reversed runs:
_accumulated_depreciationcounts only POSTED runs, matching net-book-value, so a reversed run is fully undone for disposal as well.
Migrations¶
- None. No schema/data migration; the only schema change is the additive
reverseDepreciationRunmutation.
Frontend impact¶
- A new "reverse depreciation run" action (
reverseDepreciationRun) is available, gated by theFIXED_ASSETSpermission. Registering an asset with the units-of-production method now returns a validation error.
Versioning notes¶
- MINOR bump (
uv run python scripts/bump_version.py 2.10.0 --changelog-stub): additive GraphQL mutation plus behaviour fixes, no breaking change.