Dashboards
Work Orders Dashboard
- Corrected numeric calculations in Work Order charts to prevent values being combined as text.
- Fixed incorrect months appearing in the Work Orders line chart.
- Work Order priority categories with no records now display a zero value.
Work Requests Dashboard
- Added Rejected By and Rejected Date fields to Work Requests.
- Rejected Work Requests now record who rejected the request and when it was rejected.
- Updated dashboard totals to include both approved and rejected Work Requests as closed items.
- Fixed incorrect days appearing in the bar chart.
- Improved axis label visibility to prevent labels from being truncated.
Work Orders and Planning
- Added a multi-editor for bulk updating key Work Order fields, including scheduled dates.
- Standardised the terms Scheduled Start and Scheduled End across the application, replacing the previous Due Date terminology.
- Work Orders can now be added to In Progress events from the Event Planner.
- Added a colour key to the Event Planner to identify Pending, In Progress and Completed work.
- Work Orders created from Task Management now use the Task Description as the Work Order Description.
- Added the pricing date when adding a part to a Work Order, defaulting to today’s date.
- For plant hire assets, Work Orders now include a Customer Details tab showing the customer, project and contract information.
Tasks and Action Items
- Task searches on the Tasks page now search across assets.
- Asset Action Items now show both open and completed items by default.
- Added colour coding to usage dates on the Asset and Task screens, making assets with stale meter readings easier to identify.
Timesheets and Labour Costs
- Timesheets can now be created for contractors as well as employees.
- Contractor and employee timesheets are managed from the same Timesheets screen.
- Timesheets can now be entered in the mobile app, either directly or against a Work Order.
- Hourly rates can now be recorded against contractor and employee profiles.
- Work Order actual labour costs are calculated using the recorded hours and the person’s hourly rate.
Assets and Meter Readings
- Fixed an issue that prevented an asset’s Department from being changed and saved.
- Added Warranty Status to the Asset Editor header.
- The Asset Summary Report now includes month-to-date and previous-month usage.
- Added a stale meter reading filter to the Assets page.
- Assets can be filtered by those without a reading for more than 1, 3, 5, 7, 14 or 30 days.
- Fixed an error when assigning a Form without selecting an Asset from the Work Assignment page.
- Starting a Form on the desktop now requires a Department selection, matching the mobile app workflow.
- Fixed an issue where completed Forms could sometimes lose the Asset number in the mobile app.
Mobile App and QR Codes
- Scanning a Work Order QR code from a printed Work Order now opens the corresponding Work Order in the mobile app.
- Scanning an Asset QR code now opens the corresponding Asset details in the mobile app.
Reports
- Added additional fields to the Work Orders report base table.
- Added Work Order filters for Overdue and Confirm Completion.
- Aligned Work Order report filters with those on the Work Orders page.
- Updated two-option filters to support Yes, No and All.
- Added the ability to hide the report filters panel to provide more space for report results.
- Added a Meter Readings report base table.
- Added the latest meter reading to the Assets report base table.
- Added reporting filters to identify assets without a meter reading for more than a specified number of days.
Xero Integration
- Improved Xero connection resilience and reduced the likelihood of connections being lost.
- Staggered scheduled bill, supplier and account synchronisations to reduce token conflicts.
- Added a configurable date range for bill retrieval to help avoid Xero throttling limits.
- Added configurable token-request timeouts, defaulting to 15 seconds.
- Added a configurable token-expiry buffer, defaulting to five minutes.
- Improved token refresh locking to prevent unnecessary or conflicting refresh requests.
- Strengthened database transaction and connection cleanup during token refresh failures.
- Added safe token refresh diagnostics without logging sensitive access or refresh token values.
- Preserved connection state and existing refresh tokens following ambiguous
invalid_grant responses.
- Prevented older Xero settings or account mapping data from overwriting newly rotated credentials.
- Added configurable concurrency limits for scheduled tenant synchronisations, defaulting to four tenants at a time.
- Added regression testing for OAuth failures, connection-pool failures and transaction-startup failures.