บัญชี
The Fixed Asset Register
Registering an asset, running depreciation for a period, and disposing of one without losing the accounting fact.
อัปเดตล่าสุด
Who this is for: Manager and Accountant — reading the register needs
assets.register.read, registering, depreciating and disposing needsassets.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.
หมายเหตุ
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:
- Flips its status to disposed and records the date and proceeds — the row stays in the register, it is never deleted.
- 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). - Refuses outright if the asset is not currently
in_service— an already-disposed asset cannot be disposed a second time.
สำคัญ
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#
- Fixed asset setup: locations, groups, useful life and budgets — the four tabs a registered asset draws its defaults from
- The ledger — where depreciation and disposal entries actually land
- Accounting overview and the chart of accounts — the four system accounts this module owns
- Charge codes, tax and billing setup — the same outbox-to-ledger pattern, for guest-facing charges instead of fixed assets