Friday, August 22, 2025
5 changes · saas-18.4
Enhancements to existing features
Accounting now includes helpers to spread global discounts and returned merchandise across individual invoice lines for electronic invoicing. This improves compliance and accuracy for formats such as Mexico's CFDI, where discounts and returns need to be reflected line by line.
Original PR description
This commit also adds a new helper '_dispatch_global_discount_lines' that can be used to split the global discount lines across the others base lines. That way in EDI like Mexico, the global discount can be reported line by line as a discount per line and no longer a big discount applied on a single line. There is also another helper '_dispatch_return_of_marchandise_lines' that allows to dispatch negative lines using the quantity. For example, if you buy 3 times the same product but one is returned because broken, you will end up with a sell of 2 products instead of 3 but having a discount of 33.33%. This makes the difference when generating the mexican CFDI. --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#223530
Completing large batches of manufacturing work orders is now much faster. This reduces waiting time for production teams when confirming many work orders, especially when they belong to the same manufacturing order.
Original PR description
### Description: Improves the performance of `button_finish` when confirming many work orders. Previously, the method would update each work order individually, leading to slow performance. This PR changes the way the write is executed to do it by batch, which is much faster, especially when work orders share the same manufacturing order. ### Benchmark (in 18.0): | N° of work orders | Before | After | |-------------------|--------|-------| | 250 | 14s | 610ms | | 500 | 53s | 1s | ### Reference: opw-4957774 Forward-Port-Of: odoo/odoo#223588
This update adds automated test coverage for key restaurant point-of-sale workflows, including floor management, bill splitting, tips, tables, courses, and orders. It helps reduce the risk of regressions in everyday restaurant operations without changing user-facing behavior.
Original PR description
This commit introduces HOOT test coverage for the POS Restaurant module: - Added tests for primary models: restaurant.table, restaurant.order.course, and patched pos.order - Added tests for patched pos_store.js. - Added component tests for SplitBillScreen, FloorScreen and TipScreen. task-4945629 Forward-Port-Of: odoo/odoo#220375
Automatic reconciliation rules now avoid overly long shared names when duplicate names are detected. Instead, the system keeps names usable by adding a number in parentheses, making bank reconciliation rules easier to identify and manage.
Original PR description
In this commit: https://github.com/odoo/enterprise/commit/e9ab2ae2876970c66c41fa56de70511af24471c1 we change the way the name of automatic reco model are made. But the solution we choose are a bit naive. If the common substring is huge then the reco model is unusable. Since we are stuck with the constraint, the solution we choose is to add a number in parentheses to avoid duplicate. task-5031337 Forward-Port-Of: odoo/enterprise#92888
This update improves how discounts and negative lines are distributed on Mexican electronic invoices and related POS invoices. It helps produce more accurate compliant invoice totals, especially for refunds or complex discount scenarios.
Original PR description
Forward-Port-Of: odoo/enterprise#92727