Thursday, August 27, 2026
2 changes · saas-19.3
Enhancements to existing features
Belgian payroll calculations are updated to reflect 2026 rules for copyright royalty payments. These payments now include social security contributions and use a flat 15% withholding tax, helping employers stay compliant with the new legal treatment.
Original PR description
As of 2026, copyright (IP) royalties paid through the payroll are subject to ONSS and their withholding tax becomes a flat rate: - new rule "Intellectual Property - ONSS Part" (IP.PART.ONSS) computes the 13.07% ONSS on the IP part of the remuneration - the IP withholding tax is now a flat 15% (new rule parameter ip_tax_rate) applied on the IP part net of its ONSS part, replacing the 50%/25% cost-deduction brackets and the withholding cap (ip_deduction_bracket_1/2 are no longer referenced by the code)
Resolved issues and error corrections
Refunds for orders with fixed global discounts now mirror the original discount correctly, so customers are refunded the right amount. This also prevents point-of-sale sessions from closing without balanced accounting entries.
Original PR description
BACKPORT OF https://github.com/odoo/odoo/pull/278180 When refunding an order that had a fixed-amount global discount, the refunded total was inflated: e.g. a 65.00 order (80.00 - 15.00 fixed…
BACKPORT OF https://github.com/odoo/odoo/pull/278180 When refunding an order that had a fixed-amount global discount, the refunded total was inflated: e.g. a 65.00 order (80.00 - 15.00 fixed discount) was refunded as 95.00 instead of 65.00. On the refund order amount_paid then differed from amount_total, so the POS session's closing entry could not balance; _validate_session rolled back and no account.move was created, leaving the session closed with no accounting. When a refund is created, the product lines are negated and the discount line is excluded, then pos_discount re-applies the global discount to the refund order through applyDiscount. For a fixed amount, reduce_base_lines_to_target_amount targets an absolute value and does not follow the sign of the (now negative) base, so the discount keeps the sale sign. Percentages scale with the base and are not affected. Negate the fixed discount amount when the destination order is a refund so it mirrors the negative base. The stored discount_value is left unchanged so the auto-resync of the discount stays idempotent. opw-6458124 Forward-Port-Of: odoo/odoo#281958