Kế toán

The Fixed Asset Register

Registering an asset, running depreciation for a period, and disposing of one without losing the accounting fact.

Cập nhật lần cuối

Who this is for: Manager and Accountant — reading the register needs assets.register.read, registering, depreciating and disposing needs assets.register.manage. Where: Accounting → Fixed Assets

The register is one list, in-service assets first, each row showing its tag, description, location, group, cost and net book value. Behind it are three actions: register a new asset, run depreciation for a period, and dispose of an asset that has left service.

Ghi chú

Acquisition is not posted to the ledger yet. Registering an asset records the cost, location, group and useful life here, but does not itself raise a journal entry for the purchase — only depreciation and disposal do. Until the general-ledger posting for acquisition ships, the fixed-asset cost you see here and the accounts-payable bill that paid for it are two separate records a controller reconciles by hand.

Register an asset#

Select New asset and fill in:

Field What it is
Tag A unique identifier for this one asset — the thing printed on the asset label
Description What it is
Group A sub group from Fixed Assets Setup — required, and the source of every default below unless overridden
Location Optional — where it sits
Useful life Optional override — must belong to the same group as the asset; leave blank to inherit the group's default
Budget Optional — if set, the cost is committed against that budget's remaining amount immediately
Acquisition date When it entered service
Cost What it cost

Pick the group first: the dialog fills in the effective useful-life policy and the three GL accounts (asset, accumulated depreciation, expense) the moment it's selected, so what you are about to commit to is visible before you save — the same "setup speaks, the operator doesn't re-decide it" pattern billing's charge-code picker uses. Overriding any of those inherited values is possible on this one asset only; it does not change the group's default for the next asset raised against it.

Run depreciation for a period#

Select Run depreciation, pick the period-end date, and confirm.

Every in-service asset with a resolvable useful-life policy and an acquisition date on or before that period-end is posted once for that period, as a single balanced ledger entry — a monthly straight-line or declining-balance amount per asset, all summed into one entry through the outbox seam described below. Running the same period-end again is always safe: an asset already posted for that date is silently skipped rather than double-posted, so a controller who runs a period twice by habit or by accident never doubles the expense.

An asset stops being a depreciation candidate the moment it is disposed, or if it has no useful-life policy the group can resolve — in which case it is skipped rather than the whole run failing.

Dispose of an asset#

Select Dispose on an in-service asset, enter the disposal date and the proceeds (0 if there were none), and confirm.

Disposing an asset:

  1. Flips its status to disposed and records the date and proceeds — the row stays in the register, it is never deleted.
  2. Posts a single balanced entry that removes the asset's cost and accumulated depreciation from the books and books any gain or loss as the plug between proceeds and net book value, against the disposal account (4900, Gain/Loss on Disposal of Fixed Assets).
  3. Refuses outright if the asset is not currently in_service — an already-disposed asset cannot be disposed a second time.

Quan trọng

A disposed asset's accounting fact is never deleted, only closed. The row, its full depreciation history and the disposal entry itself all stay exactly where they are — disposing an asset is closing its story, not erasing it.

How it posts#

Depreciation and disposal never write a journal entry directly. Each publishes a self-contained event on the same transactional outbox every other ledger-writing module uses — folio charges, inventory consumption, billing's cash movements — and a dedicated sink turns it into a balanced entry against the four system accounts this module owns:

Code Account Type
1500 Fixed Assets asset
1590 Accumulated Depreciation asset (contra)
5200 Depreciation Expense expense
4900 Gain/Loss on Disposal of Fixed Assets revenue

Because the write to the register and the publish to the outbox happen inside the same database transaction, the ledger entry and the register's own state (the depreciation entry, or the disposed status) can never disagree — either both commit, or neither does.

Who can do what#

Permission Lets you Held by default
assets.register.read See the register Manager, Accountant, Read-only
assets.register.manage Register, run depreciation for, and dispose of assets Manager, Accountant
assets.setup.read Read the locations, groups, useful-life policies and budgets the register draws on Manager, Accountant, Read-only
assets.setup.manage Change that setup Manager, Accountant

What's next#