Monday, September 7, 2026
3 changes · saas-19.4
Enhancements to existing features
The Belgian salary configurator now prevents employees or candidates from choosing both a company car rental option and reimbursement for using a private car. When one option is selected, the other is reset and disabled, reducing incorrect benefit selections and payroll inconsistencies.
Original PR description
In order to safe gaurd from employees (or candidates) from selecting both options for renting a company car and getting reimbursed for their private cars, the salary configurator now resets and disables one of the benefits if the other is selected. Task: 6515172 Forward-Port-Of: odoo/enterprise#130299
Swiss QR invoices can now be created even when the company or customer address is missing a street or building number, because those details are not required for valid Swiss QR invoices. Users will see an informational warning in the Send & Print flow and can review affected customers, while other invoices in a batch continue processing instead of being blocked.
Original PR description
In Switzerland, the street and building number is not required to generate a valid QR invoice. To minimize friction, errors are no longer raised if they are missing from the address of the company or the customer during the creation of the QR Code. Instead, an info banner is now displayed in the Send & Print popup indicating to the user that the addresses of some of the customers are missing and allow the user to browse through those customers. task-4349496 opw-4317153 Forward-Port-Of: odoo/odoo#271534
The rental stock integration now reuses an existing shared rule for identifying rented quantities. This makes it easier for other add-ons to customize rental behavior consistently, with no expected change for day-to-day users.
Original PR description
There is already an existing hook on product.product ([sale_renting.models.product_product.ProductProduct._get_qty_in_rent_domain](https://github.com/acsone/enterprise/blob/2cd105c93bb7199a5ecea67a919a7ab5d9251cbf/sale_renting/models/product_product.py#L24)), use it to get the domain, so it can be inherited by other modules.
While the upstream method uses `('product_id', 'in', self.ids)` instead of this one's `('product_id', '=', self.id)`, this isn't an issue since there's a `self.ensure_one()` just above.
Forward-Port-Of: odoo/enterprise#130090
Forward-Port-Of: odoo/enterprise#129191