Improvements
General
The existing Allow price adaptations feature has been extended with optional minimum and maximum limits, allowing more controlled price adjustments at the POS and helping enforce business rules (e.g., regulatory limits on gift cards) when required.

Selling prices are now managed using the Blocked functionality, in line with the Recreatex framework, ensuring data consistency and traceability.
Applies to both article selling prices and deviating prices of article components.
Prices can no longer be deleted.
Use the Blocked checkbox in the selling price configuration (tab General) to hide prices and prevent further use.
Data, history, and logging remain preserved.
Prices can be unblocked if needed.
Event planning
Invoice contact selection on event file and file component level
Users can now specify an invoice contact person directly on the event file and file components (subfiles), selecting from the invoice customer's contacts. This invoice contact is also copied to the sales header when booking files or file components and can be used on invoices, reports, and exports.
New field Invoice contact person has been added to the file and file component forms. (1)

The field is only available when an invoice customer is selected.
Only contacts configured as an Invoicing contact type (2) can be selected, and they must have an external debtor number.
When an invoice contact is selected on a file, it is automatically copied to its file components.
When an event file or file component is booked, the selected invoice contact is copied to the sales header and overrides the default invoice contact logic.

Two new fields, Invoice address & Invoice address contact, are now available on the sales header to store the data.
The selected contact is used on all resulting invoices.
Files and file components with different invoice contacts will always produce separate invoices.
Batch invoicing: Sales headers with different invoice contacts are no longer bundled into a single invoice, ensuring each contact receives their own invoice. Only invoices with the same invoicing customer and contact are bundled.
Invoice exports & reports: All relevant invoice export processes and Crystal Reports templates have been updated to support the new field. The field can now be included in invoice exports and visualised in Crystal Reports.
Activities
Student access with required instructor presence
For activities such as swimming, you can now require the instructor to be present before participants are allowed to enter. This feature can be combined with existing time-based access windows for activities.
The membership created for an activity registration now retains a link back to the source activity, allowing the system to verify instructor presence at access time.
Two new settings have been added to the access group configuration:

Only allow access when an instructor is present (Default: disabled): When enabled, participants can only pass through access control if their instructor has already badged in.
Allow access when no instructor is configured (Default: disabled): An optional fallback that grants access on days where no instructor is linked to the activity. This setting only applies when the first option is enabled.
A new validity check, Activity instructor present, is now visible in the membership validity check tool in Recreatex backoffice.

Set up the activity with registration article(s) so that participants receive a membership upon registration.
Link instructors (employees) to the relevant activity days. The employee must have an existing address (customer account) linked.
In the access control settings for the relevant access group, enable Only allow access when an instructor is present (and optionally the fallback setting).
Ensure the instructor has a membership linked to the same access group as the students.
When a participant scans their card, the system checks whether the feature is active for the access zone linked to their membership. If it is, it looks up which instructor is assigned to that day's activity. If an instructor is assigned, the system verifies whether the instructor has already entered at the same access point.
If the instructor is present, access is granted.
If not, access is denied.
If no instructor is configured for that day, the outcome depends on the fallback setting Allow access when no instructor is configured: access is either granted or denied accordingly.