Product Updates
- Added a Status field with Draft and Final options to Sales Ledger Entry reports, so reports can be filtered down to finalised invoices.
- Sales statements now show the Xero reference for each document, with the lookups batched so statement pages and full Excel exports stay fast.
- When a Contact can't be matched in Xero, you can now create and sync that contact into Xero straight from a modal instead of leaving the page.
- The new invoice page now shows a read-only link back to the Booking the invoice was raised from, matching the legacy page.
- Raise Invoice on an Account's Registrations now bills several Registrations onto one combined invoice, with a new createCombinedInvoice GraphQL mutation.
Bug Fixes
- Fixed adding a Learner to a Registration failing and leaving the items list stale while the page refreshed its data.
- Fixed Delete Registration being disabled whenever a Registration had Learners, billable items or redeemed Training Tokens; it is now only blocked once the invoice is issued.
- Fixed training-token receipts reporting incorrect discount and tax totals, and Event timezones are now validated before Event dates are converted and saved.
- Fixed Tasks staying assigned to a suspended User, so open Tasks are now unassigned and visible to others, while Completed Tasks keep their assignee.
- Fixed the Message Center Associate Booking picker searching every Booking in the instance instead of only those on the enquiry contact's Account.
- Fixed Registrations staying locked after their invoice was deleted, so they can be edited again and show the redeemed token receipt instead of nothing.
- Fixed child invoice lines being duplicated at the top level of sales statements, which double-credited them on Credit Notes and double-counted them in promo code totals.
- Fixed the Finalise endpoint ignoring the invoice's company when checking permission, and it now stores base-currency equivalents before pushing to Xero.
Documentation Updates
The following documentation pages have been updated: