Assets
This page is generated from the in-app guide content — edit
featureToggleGuidesand runpnpm gen:feature-toggle-docs.
Auto-create a work order for each slip
Each preventive slip the nightly job creates also gets a draft work order linked to it, ready to assign or dispatch to Field Service.
| Code | Default | Switch at | Turn on first |
|---|---|---|---|
asset.pm_auto_create_work_order | Off | /asset-management/settings | Auto-generate preventive maintenance (asset.pm_auto_generate) |
How it works
When the nightly job creates a preventive slip, it also creates a draft work order linked to that slip.
Conditions for it to take effect
Auto-generate preventive maintenance must be on.
When ON
Each new automatic slip comes with a draft work order ready to assign or dispatch to Field Service.
When OFF
Slips are created without a work order; create one from the slip when needed.
Screens, documents and reports affected
Work order list (new drafts), maintenance slip detail.
Caveats
Applies only to slips created by the nightly job, not to slips created by hand. Turning it off does not delete work orders already created.
Example
The AC slip created overnight already has draft work order WO-0123 attached; the supervisor only assigns a technician in the morning.
Auto-generate preventive maintenance
Every night, create a preventive maintenance slip for assets whose interval (category or asset override) is due. One open slip per asset.
| Code | Default | Switch at | Turn on first |
|---|---|---|---|
asset.pm_auto_generate | Off | /asset-management/settings | — |
How it works
A nightly job (01:25) checks every active company that has this on and creates a preventive maintenance slip for each asset whose interval (asset override, otherwise its category) is due within the lead days.
When ON
Preventive slips appear by themselves each night; an asset never gets a second slip while one is still open.
When OFF
No slips are created automatically; preventive maintenance is scheduled by hand.
Screens, documents and reports affected
Maintenance list and calendar, asset detail (maintenance history), the nightly job.
Caveats
Only assets with an interval greater than 0 on the asset or its category are picked up. Turning it off stops new slips; slips already created stay. Auto-create a work order for each slip requires this (turn that off first).
Example
Category Air conditioners has a 90-day interval. The night an AC unit reaches 90 days since its last maintenance, a slip is created for it.
Block checkout when unavailable
Only assets in Active status can be checked out or reassigned (not under maintenance, reserved or lost). Disposed assets are always blocked.
| Code | Default | Switch at | Turn on first |
|---|---|---|---|
asset.block_checkout_when_unavailable | On | /asset-management/settings | — |
How it works
Checked when an asset is handed to a person or a location (Check out, Reassign, including tool checkouts from maintenance and Field Service). The asset must be in Active status.
When ON
Checking out or reassigning an asset that is under maintenance, reserved, in storage or lost is rejected with an error naming its status.
When OFF
Any non-terminal asset can be checked out or reassigned regardless of status. Disposed, written-off and lost/stolen assets are still always blocked.
Screens, documents and reports affected
Asset detail (Check out, Reassign), tool checkouts from maintenance slips and Field Service tool requisitions.
Caveats
Reopening an asset audit session restores the previous custodian without this check.
Example
A laptop is under repair (status Under maintenance). With this on, IT cannot check it out to a new hire until the repair work order completes and the asset is Active again.
Require category on create
Block creating an asset with no category
| Code | Default | Switch at | Turn on first |
|---|---|---|---|
asset.require_category_on_create | Off | /asset-management/settings | — |
How it works
Checked when an asset is created (one by one, bulk serialized creation) and in CSV import preview/commit.
When ON
Creating an asset without a category is rejected; an import row without category_name is reported as an error.
When OFF
Assets can be created without a category; depreciation and maintenance defaults that come from the category are then empty.
Screens, documents and reports affected
New asset form, bulk serialized creation, asset CSV import.
Caveats
Capitalizing an asset from a goods receipt does not go through this check. Turning it on does not touch existing assets without a category. On by default for new companies.
Example
With this on, an accountant cannot register a new printer until they pick Office equipment, so its depreciation life and account come from the category.
Require condition on check-in
Require an asset condition to be recorded on check-in
| Code | Default | Switch at | Turn on first |
|---|---|---|---|
asset.require_condition_on_checkin | Off | /asset-management/settings | — |
How it works
Checked when an asset is returned (Check in) — from the asset page or when a Field Service tool is returned.
When ON
A return without a condition is rejected.
When OFF
A return can be saved without a condition.
Screens, documents and reports affected
Asset detail (Check in), Field Service tool returns and tool requisition returns.
Caveats
A Damaged condition always requires damage notes, on or off. Reassigning closes the previous holder’s assignment with condition Unknown without asking. Tools returned automatically when a work order or maintenance slip completes are recorded with condition Unknown — inspect them if condition matters. On by default for new companies.
Example
An employee returns a projector; the custodian must pick Good, Fair or Damaged (with notes) before the return is saved.
Work-order parts deduct stock
A parts entry linked to an inventory item (or a SKU matching one item) creates and confirms a goods issue when the work order completes — real stock deduction and COGS posting. Off keeps parts cost-only.
| Code | Default | Switch at | Turn on first |
|---|---|---|---|
asset.workorder_parts_deduct_stock | On | /settings/erp-configuration | — |
How it works
Read when an asset work order is completed, inside the same transaction that marks it completed.
When ON
Completing a work order issues each part (actual quantity if entered, otherwise planned) from its warehouse at ledger cost, stamped with the asset’s cost center, and posts cost of goods issued after commit.
When OFF
Completing a work order issues no stock: parts stay as planned lines and the parts cost is what was typed on the work order. Reservations are still released.
Screens, documents and reports affected
Asset work order completion, goods issues with source Asset work order, work order parts cost.
Caveats
While on, a part line with no inventory item and no SKU matching exactly one item blocks completion with an error. Existing companies were pinned on (migration 2655) so behaviour did not change; on by default. Materials of a linked maintenance slip are issued by the slip regardless of this switch. With it off, Reserve parts is hidden and the API refuses it (a reservation would lock stock that is never issued).
Example
A technician completes a work order with 2 filters on the parts list: with this on, 2 filters leave the maintenance warehouse and the parts cost becomes the ledger cost; with it off, stock is untouched and the typed cost stays.