🛠 Enhancements
Asset Template Dropdown Ordering
Fixed an issue where Asset Parent Template options displayed in a confusing, non-alphabetical order when creating a new asset template. The list is now alphabetized, making it easier and more intuitive for users to find the correct parent template.
Enhanced Approval Rule Definitions
Added new definition fields: Assignment Category Full Path and Assignment Category Top Level to approval rules. These fields allow rules to reference parent and child categories, enabling the “Includes” operator to apply across all subcategories.
This enhancement reduces manual setup, simplifies support and maintenance, and saves teams significant time when creating approval rules by trade.
Available On: Work Orders, Assignments, Vendor Invoices, Vendor Proposals, Expenses, Visits, Purchase Orders, and Client Invoices/Proposals.
Asset-Category Mapping Improvements
Improved the asset scanning and work order creation flow to ensure users select categories that correctly correspond to their scanned assets, enhancing data accuracy and reducing downstream errors.
This is for the browser experience only.
Key Enhancements:
When a user scans an asset, only categories mapped to that asset’s template are available for selection.
If multiple assets are selected, available problems are shown as an aggregate of all mapped categories.
If no category mapping exists, all categories remain visible.
Added an informational message guiding users to map Asset Templates to categories for improved accuracy.
This update streamlines the store user experience and helps ensure consistent, high-quality asset and category data across work orders.
Lock GL Codes After Invoice Completion
Added a site setting to prevent GL Code changes on invoices once they’re in a completed/approved state, allowing post-completion assignment edits without altering exported financials.
How it works:
New toggle:
Prevent GL Code Updates On Invoices After Completed, Billing, Reconciled, Accepted(boolean).When enabled, invoices in states defined by your existing completion settings (Accepted, Billing, Completed, Reconciled) do not update GL Codes, even if related Assignment/WO fields change.
When disabled, GL Codes on invoices update per normal GL Mapping behavior.
This safeguards financial integrity while still letting teams update assignment details after completion.
API Documentation Update: Subcontractors Endpoint
The Subcontractors API endpoint now includes a Filters section and examples, aligning it with other endpoints like
subcontractor_quotes.Note: Filtering on Organization is built off Entities due to differences in how the response and return query are structured.
🐛 Bug Fixes
Duplicate Client Creation Fix
Resolved an issue where clicking Save multiple times during client creation resulted in duplicate client records with unique IDs. The system now prevents repeated submission ensuring each client is saved only once after validation.
Login Loading State Enhancement
On the login form, we now prevent users from clicking “Log In” multiple times while authentication is in progress. This improvement reduces duplicate submissions and improves overall login reliability.
Note: This update does not apply to SSO logins.
Reporting Query Logic Fix
Fixed an issue introduced by FIRA-3791 where columns with aggregate functions in subqueries (e.g., Store District, District Manager Names) were incorrectly placed in a HAVING clause, causing reports to fail or return no data.
Impacted Examples:
Stores → Store District
Budgets → Budget Workorder Class / Budget Category
Districts → District Manager Names
Regions → Region Manager Names
Subcontractor Invoices → Invoice Tax Code
Reports using these fields now return data correctly across all datasources and filters.
User Import Template Fix
Resolved an issue where the User V2 import template triggered an error upon opening and failed to display dropdowns for data validation (e.g., Action and Role). This fix ensures the template downloads, opens, and functions correctly across all environments.
Invoice Permissions Update
Fixed an issue where vendor users could copy or edit line items on submitted or approved invoices. The system now enforces proper permission and status checks across invoices, quotes, purchase orders, and expenses to prevent unauthorized changes.
Currency Accuracy Fix
We’ve updated how currency totals are generated in the application to better support all currencies, including those without subunits like the Japanese Yen (JPY). Previously, we used
Money.new(amount/.01, currency), which assumes the currency has fractional units (e.g., pennies in USD, CAD, or MEX).This approach caused incorrect values for currencies like JPY, which have no fractional units.
The system has now been refactored to correctly handle all currencies, ensuring accurate totals regardless of whether a currency has subunits.
Negative Line Items
Fixed an issue where negative line items were not allowed to be entered. We now allow negative values to be entered (ex. Invoices)