Assets Reference Public

Widgets, Reminders & Settings

Reports & Automation Widgets, Reminders & Settings Everything ambient in the Assets module: the two dashboard widgets that surface assets without anyone opening the Safekeep menu…

Guide version: r1 Module version: 1.0.0 Updated: 2026-07-22 Estimated time: 10 min 2 views
Reports & Automation

Widgets, Reminders & Settings

Everything ambient in the Assets module: the two dashboard widgets that surface assets without anyone opening the Safekeep menu, the topbar shortcut icon, the four scheduled cron jobs that compute book values and chase people about returns, warranties and audits, and the small number of settings that tune the whole area.

ℹ️
Prerequisites. Every item on this page requires the Assets module to be enabled (module_assets, Settings → Manage Modules → Assets under the Safekeep category) and the base asset permission — see Getting Started and Permissions & Roles. The cron jobs run per tenant and are enabled by default as soon as the module is on.

Dashboard widgets

The module registers two widgets in the core Dashboard's widget palette. Both are read-only DataTables (10 rows per page, a refresh button, and a fixed-height scroll area) whose row titles link to the asset detail page.

????️
Assets assigned to me

Widget key assets_assigned_to_me. Available on both staff and client dashboards and included in the default widget set for both — most users see it without doing anything.

⚠️
Assets needing attention

Widget key assets_attention. Staff only and not in the default palette — an admin or staff user must add it to a custom dashboard themselves.

"Assets assigned to me"

Panel heading: an archive icon plus "Assets assigned to me". It lists every asset whose current holder (issued_to) is the logged-in user — in Safekeep vocabulary, every asset currently endorsed to you. Default sort: Due date ascending, so the return you owe soonest is on top.

ColumnWhat it shows
Title The asset's title, as a link to the asset view page (ams/assets/view/…).
Asset TagThe asset's tag.
CategoryThe asset's category.
Status The endorsement status chip: Assigned Acknowledged Return requested Returned — or "-" when none.
Due dateThe endorsement's return-by date (due_at).
????
No in-place actions. The widget has no "Confirm receipt" button of its own. To acknowledge an asset that was just endorsed to you, click its Title to open the asset view page and press "Confirm receipt" there — the full flow (including the acceptance-agreement modal, when it applies) is on Checkout & Check-in.

"Assets needing attention"

Panel heading: a warning-triangle icon plus "Assets needing attention". This is the custodian's radar: it lists every asset that meets at least one of three conditions, each rendered as a colored chip in the Status column (one asset can carry several chips at once). Default sort: Due date ascending.

Return due
Return dueThe endorsement's due date (due_at) is today or in the past, and the asset has not been returned yet.
Warranty expiring
Warranty expiringThe warranty expiry date falls between today and today + N days. N comes from the asset_warranty_reminder_days setting, defaulting to 30.
Audit due
Audit dueThe asset's Next Audit date is today or in the past (no grace period).
ColumnWhat it shows
TitleAsset title, linking to the asset view page.
Endorsed toThe current holder's name, or "-" if the asset is unassigned.
StatusThe attention chip(s) listed above — an asset can show more than one.
Due dateThe endorsement's return-by date.
Warranty expiry dateThe asset's warranty expiry date.
Next AuditThe asset's next scheduled audit date — see Auditing Assets.

Like the first widget, there are no in-place actions — click the title to act on the asset from its detail page. The same three buckets have report-style counterparts: the Audit due tab of Asset Reports covers audits (with a wider 30-day look-ahead), and the three reminder cron jobs below notify holders about the same conditions.

Adding a widget to a dashboard

  1. Open (or create) a custom dashboard

    "Assets assigned to me" already sits in the default dashboard for both staff and clients. To place either widget yourself, use a custom dashboard: on the Dashboard page, open the "…" menu at the top right and choose "Add new dashboard" (a small modal asks for a title and a color). Saving drops you straight into the new dashboard's edit screen. Existing custom dashboards are opened via the colored dots beside that menu.

  2. Enter edit mode

    On an existing custom dashboard, the same "…" menu offers "Edit dashboard". The edit screen shows the widget palette in a fixed panel on the left — a search box plus every widget available to you. (The palette's "Add widget" button builds a brand-new custom widget; you don't need it to place the shipped Assets widgets.)

  3. Place the Assets widget

    If the dashboard is empty, click "Add row" and pick a column layout first. Then find "Assets assigned to me" or "Assets needing attention" in the palette, drag it into a row, and press "Save" (or "Save & show"). The widgets only appear in the palette while the Assets module is enabled and you hold the asset permission — and "Assets needing attention" is offered to staff dashboards only.


Topbar icon

The module ships one topbar shortcut: an archive icon with the tooltip "Assets" that simply navigates to ams/assets (the Asset Registry). It has no dropdown, no badge, and no unread count — it is a plain link.

ℹ️
Where you'll actually see it. The icon is not rendered in the main fixed topbar. Its only home is the global Search modal — the row of shortcut icons at the bottom of the search window shows it when the Assets module is enabled and you hold the asset permission. There is currently no My Preferences control for hiding topbar shortcuts (that preference field is disabled in the UI).

Cron jobs

Four scheduled jobs ship with the module. All are discovered by ERPat's Advanced Cron runtime, are enabled by default, and run per tenant. One computes numbers silently; the other three send reminder notifications to asset holders.

Job Slug Schedule What it does Who gets notified Notification message
Compute asset depreciation compute_asset_depreciation Monthly — the 1st of the month at 01:10 Recomputes the straight-line book value for every non-deleted asset that has a depreciation schedule, a cost > 0 and a purchase date, and stores current_value and depreciation_computed_at into the asset's meta. This feeds the Depreciation schedule report — see Depreciations. Nobody — no notification is raised; output is visible only in the cron run log.
Remind asset return due remind_asset_return_due Daily at 07:00 Finds endorsed assets whose return-by date (due_at) is within the next 3 days or already past, and that have not been returned. Assets with no holder are skipped. The asset holder (the "Endorsed to" user) only. "An asset assigned to you is due to be returned"
Remind asset warranty expiry remind_asset_warranty_expiry Daily at 07:30 Finds assets whose warranty expiry date falls between today and today + 30 days (already-expired warranties are excluded). The 30-day window is hardcoded in the job — it does not read the asset_warranty_reminder_days setting the widget uses. Unassigned assets are skipped. The asset holder only. "An asset's warranty is about to expire"
Remind asset audit due remind_asset_audit_due Weekly — Monday at 08:00 Finds assets whose Next Audit date is within the next 7 days or already overdue. Unassigned assets are skipped — audits on unassigned assets surface only via the Audit due report and the attention widget. The asset holder only. "An asset assigned to you is due for audit"
⚠️
Reminders repeat — there is no dedupe. The jobs re-query on every run with no "already reminded" flag: a holder is re-notified daily about a due/overdue return (indefinitely, until the asset is checked in), daily for the whole 30-day warranty window, and weekly until an overdue audit is recorded and the Next Audit date moves. The cure is always the same — complete the action (check the asset in, record the audit), not the notification.

Running a job manually

Administrators can list, dry-run, or trigger any of the four jobs from the ERPat CLI without waiting for the schedule:

php erpat cron:list                                  # see all jobs + schedules
php erpat cron:dry-run compute_asset_depreciation    # simulate, no writes
php erpat cron:run compute_asset_depreciation
php erpat cron:run remind_asset_return_due
php erpat cron:run remind_asset_warranty_expiry
php erpat cron:run remind_asset_audit_due

A manual cron:run of the depreciation job is the quickest way to populate the "Current value" and "Computed at" columns of the Depreciation schedule report right after you attach depreciation profiles — otherwise they show "-" until the 1st of the next month.


Settings

Settings → Asset Entries Configuration

The one settings screen for this area lives in core Settings (components group), reached at Settings → Asset Entries. Page heading: "Asset Entries Configuration". It has two fields and a Save button:

FieldInputTooltip (quoted)Effect
"Sort Asset Entry Comments"
sort_asset_entry_comments
Dropdown: "Ascending" / "Descending" (default: Descending) "Choose how to sort comments — ascending (oldest first) or descending (newest first)." Controls the order of the comment stream on the asset detail page.
"Allowed users to mention"
allowed_users_to_mention_on_asset_entries
Multi-select user picker; its first option "- Select All -" selects everyone at once "Select which users can be mentioned in asset entry comments." Restricts who can be @-mentioned in asset comments.

Saving shows a success toast and writes the system-log event "Asset entries settings updated".

⚠️
Database-only knobs — no UI anywhere. Two settings influence behavior but have no settings screen; changing them requires inserting/updating the setting row directly in the database (ask your system administrator):
  • asset_warranty_reminder_days — the look-ahead window (in days) for the Warranty expiring chip in the "Assets needing attention" widget. Default: 30. Note the warranty reminder cron ignores this setting and always uses 30 days.
  • asset_audit_cadence_days — the default value pre-filled in the audit modal's "Schedule next audit in (days)" field. Default: 90, and effectively fixed at 90 unless the setting is added via the database. See Auditing Assets.

In-app notifications

The three reminder jobs deliver through the standard ERPat notification pipeline: an in-app web notification plus an email (using the general notification email template — there are no dedicated Assets email templates), each subject to the recipient's own per-event notification preferences. The recipient is always the asset's current holder, and clicking a notification opens that asset's detail page.

EventNotification text (quoted)Sent by
asset_return_due "An asset assigned to you is due to be returned" Remind asset return due (daily, 07:00)
asset_warranty_expiring "An asset's warranty is about to expire" Remind asset warranty expiry (daily, 07:30)
asset_audit_due "An asset assigned to you is due for audit" Remind asset audit due (weekly, Monday 08:00)
????
What to do when you receive one. Open the asset from the notification, then: for a return-due reminder, hand the asset back so a custodian can Check in it (or use "Request return" — see Checkout & Check-in); for an audit-due reminder, arrange the physical audit (Auditing Assets); for a warranty reminder, plan any warranty-covered repair before cover lapses (Maintenance, tick "Warranty work").
????️
Roadmap. There is no per-asset "watcher" or custodian-broadcast notification yet — reminders reach only the asset's holder, and unassigned assets generate no reminders at all. Broader report and notification coverage is on the module roadmap.
Was this guide helpful?

Report a content problem