Monday, August 31, 2026
4 changes · master
Enhancements to existing features
Jordan e-invoicing now shows all submission issues together before invoices are sent, helping users fix problems faster and avoid repeated error rounds. Rejected invoices are easier to investigate with clear rejection details and XML download access, while demo invoices and receipts are visibly marked as non-fiscal documents.
Original PR description
Description of the issue/feature this PR addresses: Rework the UX of the Jordan e-invoicing (JoFotara) flow: where submission errors are reported, how a rejected invoice exposes its XML, where the…
Description of the issue/feature this PR addresses: Rework the UX of the Jordan e-invoicing (JoFotara) flow: where submission errors are reported, how a rejected invoice exposes its XML, where the JoFotara fields live on the invoice, and how demo documents identify themselves. Current behavior before PR: Configuration errors mask invoice-level ones, so the user fixes the settings and gets a second round of errors. They arrive as a pop-up after the Send & Print wizard is confirmed, one alert per invoice. The invoice form shows a yellow banner and a "Download XML" link restricted to base.group_no_one, so a rejected invoice offers no practical way to inspect what was sent. Demo mode is invisible: the checkbox reads "JoFotara (Jordan EDI)" either way, and demo PDFs and POS receipts look like valid fiscal documents. Desired behavior after PR is merged: All errors are reported together as danger alerts inside the wizard, before submission — one alert per defect, with a "View Invoices" action listing every invoice sharing it. A rejection opens a dialog with JoFotara's message and buttons to copy it or download the submitted XML, for any user. The JoFotara fields, plus Payment Method and "Reversal of", move into a "JoFotara" group on the Other Info tab. task-6321488 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr
This update adds support for China's differential taxation rules in invoicing, allowing businesses to manage balance deductions and issue the appropriate net or full amount Fapiao. It improves VAT accuracy by validating deduction details, creating offset entries automatically, and keeping links for audit traceability.
Original PR description
Support Balance Deduction for China's Differential Taxation rules, where businesses may issue Net Amount Fapiao or Full Amount Fapiao depending on the applicable taxation method. The selected method…
Support Balance Deduction for China's Differential Taxation rules, where businesses may issue Net Amount Fapiao or Full Amount Fapiao depending on the applicable taxation method. The selected method determines how the deduction is applied and how the corresponding Output VAT Offset Entries are generated, ensuring accurate VAT accounting and traceability. - Add invoice-line-level Balance Deduction management through dedicated wizard. - Validate applicable invoice lines before posting, ensuring required deduction information is provided and taxes meet the supported percentage-tax requirements. - Generate Output VAT Offset Entries according to the selected Differential Taxation Method: - Link generated offset entries to the originating invoice and invoice lines for accounting traceability. - Reverse previously generated offset entries when the invoice is reset to draft or Balance Deduction information is reset, preserving accounting consistency and auditability. task-[6104958](https://www.odoo.com/odoo/project/967/tasks/6104958)
Point of Sale sessions with many invoiced bank payments now close much faster by processing payment reconciliation and invoice receivable line creation in batches. This reduces the risk of session closing timing out for businesses with high transaction volumes, improving reliability at end of day.
Original PR description
Steps to reproduce ------------------ 1. On a bank payment method, enable "Identify Customer". 2. Create a lot of orders paid with this method and invoice them (the customer reporting the issue had…
Steps to reproduce ------------------ 1. On a bank payment method, enable "Identify Customer". 2. Create a lot of orders paid with this method and invoice them (the customer reporting the issue had 2081 orders). 3. Close the session. The close takes several minutes, and on a remote database the request is killed by the worker time limit before it completes. Cause ----- `_reconcile_account_move_lines` reconciles each group of lines with its own `reconcile()` call, one per payment. Every call creates its partials and triggers the recompute cascade of the ORM, which searches `account.move.line` over the whole set of payments of the session, so the cost of a single call grows with the number of payments. `_create_invoice_receivable_lines` has the same shape: the values are grouped per payment, so every group holds a single value and the lines are created one `create()` call at a time. opw-6242303 already batched the creation and the posting of the split bank payments, and the reconciliation of their receivable lines, but only for the orders that are not invoiced. Invoiced orders go through `split_inv_payment_receivable_lines`, which was left untouched. Fix --- Gather every reconciliation of the session into a single `_reconcile_plan` call. The entries of the plan are processed independently and in order, so the result is the same as reconciling them one by one, but the recompute cascade runs once instead of once per payment. Create all the invoice receivable lines in a single `create()` call and dispatch the records back to their payment method or payment afterwards. Benchmark --------- Closing a session of 2081 invoiced orders on a copy of the customer database: - before: 558s - after: 54s opw-6458271 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#285183 Forward-Port-Of: odoo/odoo#281495
Belgian payroll calculations for copyright royalties are updated to reflect 2026 rules. IP royalties paid through payroll will now include social security contributions and use a flat 15% withholding tax, improving compliance with Belgian legislation.
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) Forward-Port-Of: odoo/enterprise#129136