Release 4.37.15
Here’s what’s new in this release: We’ve improved the mapping workflow, allowing separate sales accounts per project line item, and added invoice dates to income tracking. Additionally, we’ve addressed several bugs and made minor UX improvements.
Accounting
Accounting category income validator
The income mapper now validates that all selected articles have a sales account configured before allowing submission.
Allow separate sales accounts per project line item
Project articles now have a dedicated salesAccountId field, separate from the existing cost accountId. When generating Xero invoices, the system uses the sales account code for income line items, falling back to the cost account if no sales account is explicitly set.
Approval workflows
Complete approval trail on cost documents when admin overrides review
Skipped review steps are now recorded as notes on the document at the time of the admin override, with a clear label indicating the step was bypassed due to an admin override.
General Improvements
Fix security limitations to allow marketing tracking and support chats
Several third-party tracking/analytics scripts were blocked by the Content Security Policy, this has been fixed.
Replace currency conversion rate provider
Currency rates are now fetched from Frankfurter API, as the previous provider no longer exists.
Invoicing
Add invoiceDate to Income
Added a dedicated Invoice Date field to incomes, which can be set when creating or updating an income.
Expose invoice date in income list, summary view and xlsx exports
Invoice date is now surfaced across the existing income views, including summary view, income list, budget article details, portfolio income view, and exports.
Portfolio dashboards
Respect per-project cashflow opt-out in company cashflow report
The company cashflow report and its Excel export now respect the per-project cashflow setting. Projects with cashflow disabled are filtered out from the company view.
Work orders
Fix race condition in bulk time sheet approval
Time sheet approval now uses a single atomic operation that confirms all selected time sheets together in one database transaction.
Minor work order improvements
- Improve labels (work order cost type, priced task quantity column header)
- Prefill priced task quantity from budget numbers
Workflow
Improve mapper usability with auto-select and contextual type hiding
When a selection field has exactly one valid option available, it is now automatically selected. Also, when navigating to the company-level mapper from certain views, the document type selector is no longer shown.