Friday, May 8, 2026
10 changes · saas-18.4
Resolved issues and error corrections
Point of Sale now shows customer change as a negative amount, matching the fact that cash is leaving the shop. This makes payment screens, receipts, and customer displays clearer and avoids confusion when customers overpay.
Original PR description
Steps to Reproduce ------------------------ - Install point of sale. - Do a order and pay more than the amount. Issue ------ - The change amount is displayed as a positive value on the UI. - Typically, amounts going out of the shop (like change given to the customer) should be shown as negative. Cause ------- - The change amount was not correctly represented in the UI. - Since the change flows in the opposite direction of the payment, it should be displayed as the negation of the original amount. FIX ----- - Updated the frontend to display the change amount with the correct (negative) sign. - No backend changes were required, as the correct value was already being handled during order synchronization Enterprise PR: https://github.com/odoo/enterprise/pull/112560 task: 6074620 Forward-Port-Of: odoo/odoo#263357 Forward-Port-Of: odoo/odoo#256776
This fixes an issue where using the translation button on a product line inside a sales order template could show a confusing validation error. The form now saves the main template record first, so users see the correct required-field guidance instead of an unrelated technical message.
Original PR description
Steps to reproduce: * Enable multiple languages * Go to Sale Order Templates and create a new template * Add a product line, then click the translate button on the description field * A confusing…
Steps to reproduce: * Enable multiple languages * Go to Sale Order Templates and create a new template * Add a product line, then click the translate button on the description field * A confusing validation error appears for missing `sale_order_template_id` Issue: * Instead of highlighting the missing required fields on the sale order template form view, it raises a misleading validation error on `sale_order_template_id` Cause: * `useTranslationDialog` always attempts to save the passed record directly. In O2M list views, the field can belong to a nested relational record, so the correct behavior is to save the root record instead. Affected Version: 17.0 Before: <img width="1919" height="1014" alt="image" src="https://github.com/user-attachments/assets/cd61381d-289a-4df4-bdf2-7881fa851939" /> After: <img width="1920" height="887" alt="image" src="https://github.com/user-attachments/assets/5218c74b-c024-4994-b816-cb7ae69b420f" /> --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#262988 Forward-Port-Of: odoo/odoo#262755
The update improves how incoming electronic invoices are identified when they contain conflicting format information. This helps Odoo process certain malformed but recognizable invoices more reliably instead of falling back too early to a less accurate interpretation.
Original PR description
Some UBL invoices we receive both have a node CustomizationID signifying that it's a bis3 and a UBLVersionID 2.1 (which should be illegal). We don't block malformed bis3 invoices. But we should try to guess that it's a bis3 if it has the perfect customization. We can keep the fallback in case it's an unknown bis3 format. --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#263349 Forward-Port-Of: odoo/odoo#263285
The customer list in Accounting now has the needed currency information to show totals for "Total Due" and "Total Overdue". This prevents confusing dash placeholders and helps users quickly see accurate outstanding amounts.
Original PR description
In the partner list view, enabling the "Total Due" and "Total Overdue" columns results in empty aggregates (—) at the bottom of the list. Steps to reproduce: - Navigate to Accounting -> Customers -> Customers - Add columns 'Total Due' and 'Total Overdue'. - Check the computed totals. Issue: The totals displays dashes (—) instead of the numbers. Analysis: The web client list renderer requires a currency field to be present in the view to correctly format and display aggregate sums for monetary fields, otherwise empty dashes are shown as fallback. opw-6169513 Forward-Port-Of: odoo/odoo#261820
This update corrects a minor error in the automated testing of Odoo's Point of Sale (POS) module. A typo in the test scripts caused a failure, which has now been resolved. This ensures the reliability of POS testing and prevents potential disruptions to the system.
Original PR description
Correct a typo in `test_01_order_flow` assertions. `pdis_order1` was reassigned multiple times; the second assertion should use `pdis_order2`. Task-6065459 Forward-Port-Of: odoo/enterprise#116424 Forward-Port-Of: odoo/enterprise#111917
This update fixes a visual inconsistency in the Point of Sale (POS) interface. It now applies the same background styling to combo products as regular products, creating a more uniform and professional look across the product screen and combo configuration popup. This improves the overall user experience and presentation of products.
Original PR description
In this commit: --- - Applied the same background styling to combo items as normal product cards. - Ensured visual consistency between product cards on the product screen and in combo configuration popup. | Before | After | | -------- | -------- | | <img width="979" height="447" alt="image" src="https://github.com/user-attachments/assets/6d91e1d7-99d5-47c4-a1bf-6604765d08d5" /> | <img width="979" height="453" alt="image" src="https://github.com/user-attachments/assets/602c9a8f-9e56-4633-84bf-0710cb5debab" /> | task-6103260 Forward-Port-Of: odoo/enterprise#113159
This update resolves an issue where a duplicate XML ID was present in the payroll configuration for Kenya (l10n_ke_he_payroll). This duplication caused potential errors and inconsistencies in salary calculations. The fix ensures data integrity and accurate payroll processing.
Original PR description
This commit avoids duplicated xml_id for `hr.salary.rule` model. In commit https://github.com/odoo/enterprise/commit/a7d51fa2ee8b1af0e807b3e9cb6e313d8885ff67, key `l10n_ke_employees_salary_pension_contribution` (sequence 72) was deleted and added key `l10n_ke_employees_salary_pension_contribution` (sequence 35). In commit https://github.com/odoo/enterprise/commit/c23243be9ca833acea7089defadbe0eaf869051d, key `l10n_ke_employees_salary_pension_contribution` (sequence 72) was added again. Forward-Port-Of: odoo/enterprise#115872 Forward-Port-Of: odoo/enterprise#85723
This update fixes a visual issue in the Point of Sale (POS) system where the change amount was not displayed with the correct negative sign. The change ensures that the POS interface accurately reflects the amount of change given to customers, improving the user experience and preventing potential errors. This is a minor fix.
Original PR description
In this commit: --------------- - The tours are updated to adapt the change as now frontend display the change amount with the correct (negative) sign. Community PR: https://github.com/odoo/odoo/pull/256776 task: 6074620 Forward-Port-Of: odoo/enterprise#116634 Forward-Port-Of: odoo/enterprise#112560
This update resolves an error in the Luxembourg VAT reports (FAIA) caused by a missing required 'TVA' TaxType element. The fix ensures compliance with Luxembourg tax regulations and prevents report generation failures. This was triggered by a customer report (opw-5427296).
Original PR description
This is one of several commits fixing the FAIA xml export. The customer in ticket [opw-5427296](https://www.odoo.com/odoo/unassigned-tasks/5427296) received several errors which mention that the `TaxType` element should be 'TVA'. This is corroborated by one of these elements in the XSD files for the FAIA report. The XSD files can be found at the link below. https://pfi.public.lu/dam-assets/backup/FAIA/FAIA/XSD_Files.zip opw-6118272 [link](https://www.odoo.com/odoo/project.task/6118272) Forward-Port-Of: odoo/enterprise#115293 Forward-Port-Of: odoo/enterprise#113720
The budget report now accurately displays data without duplicate analytic lines. This change addresses an issue caused by a recent performance optimization that introduced redundant data retrieval. The fix ensures correct reporting by utilizing a revised query strategy.
Original PR description
#### Issue: The budget report displays duplicate analytic lines. #### Steps to reproduce: In a new company: - Create a budget with one budget line (Analytic Account A). - Create one analytic item…
#### Issue: The budget report displays duplicate analytic lines. #### Steps to reproduce: In a new company: - Create a budget with one budget line (Analytic Account A). - Create one analytic item (linked to Analytic Account A). - Open the budget report and remove the default "open budget" filter. Duplicate amounts appear in the pivot view and duplicate lines appear in the list view. #### Cause: In #104299, the query in `_get_aal_query` was refactored for performance to avoid a single query with an OR condition in the LEFT JOIN. It was replaced by two separate queries combined with `UNION ALL`. This caused some lines to be captured by both queries, resulting in duplicates in the final report. #### Fix: Use three separate queries, each with specific filter conditions to guarantee unique results: Q1 - Analytic lines with no matching budget line. Q2 - Analytic lines matched to a budget line with no company (null-company). Q3 - Analytic lines matched to a company-specific budget line. OPW-6051696 Forward-Port-Of: odoo/enterprise#116612