Tuesday, May 5, 2026
23 changes · master
Resolved issues and error corrections
This update eliminates a distracting popup message that appeared when opening the Point of Sale (PoS) module, specifically when reading scale weight data. The fix prevents a frustrating user experience and ensures smoother PoS operations. This resolves a minor usability issue.
Original PR description
This PR removes the unwanted popup "can't reach iot box on local network" before opening PoS when reading scale weight
This update prevents referral-only users from accessing the Reporting tab within the Referrals app. Access to this tab is now restricted to users with recruitment management permissions, streamlining the reporting process for authorized personnel. This change improves data security and usability.
Original PR description
This commit hides the Reporting tab in the Referrals app from users with referral only access rights, and only show it to users with recruitment access. TaskID-6133065
This update restores a previous system for tracking changes made to employee payslips. Now, when a user edits a payslip line, a detailed log is created showing all affected lines. This enhances transparency and simplifies auditing of payroll adjustments.
Original PR description
purpose: We want to reintroduce the same way of logging payslip lines changes as previously done by the removed payslip edit wizard - changed the log in chat to include all affected lines by the user's change task-id: 6144266
This update fixes a technical issue that previously displayed confusing error messages when generating tax reports. Now, users will receive a helpful message guiding them to set up a certificate if one isn't already configured, preventing tracebacks and improving the user experience. This ensures reports can be successfully submitted to authorities.
Original PR description
Description of the issue this commit addresses: When sending the tax report or ec sales list xbrl file via the wizard to the authority, if no certificate has been set, a traceback shows up. This happens because some processes try to use the certificate without checking its existence. Desired behavior after the commit is merged: When sending via the xbrl wizard, if no certificate has been set up, an error offering the user to go to the certificate set up shows up and no traceback. task-6065382 Forward-Port-Of: odoo/enterprise#115907 Forward-Port-Of: odoo/enterprise#112951
A small typo in the quality module caused newly created quality alert records to be incorrectly grouped as 'None'. This fix replaces the incorrect '&' character with the correct '|' character, ensuring records are properly assigned to their intended stages. This resolves a potential data grouping error.
Original PR description
Issue: ------- While adapting the 'Domain' in the PR https://github.com/odoo/enterprise/commit/07b34a2e927347ca5c839ec632808adb02703e1f there occurred a typo where '|' got replaced with the '&' and causing the records getting grouped in 'None' when creating. Solution: ------------ To replace '&' with '|' to get the records grouped under the correct stage. Steps to reproduce: ----------------------- 1. In v19.0, in quality module try to create a quality alert record. 2. Just like that the newly created record will be under 'None'. Reference Image: <img width="1105" height="407" alt="image" src="https://github.com/user-attachments/assets/4c9c33be-ec06-4f06-8245-54dbe4473bc0" /> OPW - [6074016](https://www.odoo.com/odoo/project/70/tasks/6074016) Forward-Port-Of: odoo/enterprise#113108
This update ensures our accounting system accurately reflects the latest Ecuadorian withholding tax regulations (Resolución N.º NAC-DGERCGC26-00000009) for 2026. The changes involve updating unit tests to align with these new tax percentages, ensuring compliance and accurate reporting.
Original PR description
In accordance with the implementation of the new withholding tax percentages according to "Resolución N.º NAC-DGERCGC26-00000009" for Ecuador, following internal implementation guidelines by TRESCLOUD. Unit tests are updated to be based on the new withholding percentages. BP #110343 Forward-Port-Of: odoo/enterprise#112957 Forward-Port-Of: odoo/enterprise#110712
This update fixes a validation error that occurred when creating correction payslips in Odoo. It ensures that each correction payslip is correctly linked to a structure, allowing for accurate payroll processing. This improves the reliability of the payroll system when adjustments are made.
Original PR description
Ensure `structure_id` is set when creating correction payslips to avoid validation errors. Group payslips by structure before creating pay runs for corrections/reverts, and set the payrun period from the minimum to maximum payslip dates. Fix condition in "Payslip period does not match payrun" to exclude correction payslips (they may span multiple months). task: 6089082 Forward-Port-Of: odoo/enterprise#115405
This update fixes an issue where copying a user also duplicated their assigned tasks, leading to shared task assignments. The change ensures that tasks are uniquely associated with each user, preventing conflicts and simplifying task management. This improves data consistency and reduces potential errors.
Original PR description
Duplicating a user also duplicates all their task assignments because task_ids on res.users is missing copy=False. The new user ends up sharing the same tasks in project_task_user_rel, so removing a task from either user affects both. Forward-Port-Of: odoo/enterprise#114270 Forward-Port-Of: odoo/enterprise#114028
This update adds logging of Amazon's unique request IDs for SP-API responses. Previously, this information wasn't captured, making it harder for support teams to troubleshoot issues with Amazon orders. This enhancement streamlines support investigations and improves order processing efficiency.
Original PR description
Each response from Amazon's SP-API includes a request identifier used by their support team for debugging. This identifier was not previously logged, making support investigations more difficult. Forward-Port-Of: odoo/enterprise#115929 Forward-Port-Of: odoo/enterprise#114483
This update resolves a crash that occurred when users attempted to fetch device information in the HR Attendance module. The issue stemmed from a missing server URL configuration, which has now been addressed by displaying a user-friendly error message prompting them to set the correct URL.
Original PR description
Version: - saas-19.3 Steps to reproduce: - Install the hr_attendance_zkteco module - Go to Settings → Device/Terminal - Click on “Fetch Terminal” Issue: - A traceback error occurs. Cause: - The server URL is not set in settings, so the server value is empty and causes an error. Fix: - Show a user error if the server URL is not configured, asking the user to set it before fetching the terminal. Task-6144254 Forward-Port-Of: odoo/enterprise#114561
This update ensures that 'Final Consumer' records are correctly created as individuals, not companies, within the Odoo system. The change was triggered by a recent update to how the 'is_company' field is calculated. The fix includes correcting test assertions to reflect this accurate creation process.
Original PR description
After changes on is_company field to be computed, Final Consumer was being created as a company. Although this is wrong, tests were not asserting correctly on how anonymous documents should be created. This commit fixes this by forcing the value to False and correcting the tests. task-6149751 Forward-Port-Of: odoo/enterprise#115560
This update resolves a minor issue in a test related to the HR payroll module's user interface. The change ensures the test accurately reflects updates made to the CSS styling, preventing potential errors in how the toggle field is displayed. This ensures consistent and reliable functionality for users.
Original PR description
Updates the `rule_selection_exclusive_toggle_boolean` test to account for the changes made in https://github.com/odoo/odoo/pull/262543. The test now correctly anticipates the widget sharing the same CSS rules as its base widget. task-3378044
A recent update to the Odoo Enterprise system introduced a new Dutch returns module (l10n_nl_returns) without the necessary translation files. This update corrects this issue, ensuring accurate and complete translations are available for users in the Netherlands. This prevents potential errors or confusion when using the module.
Original PR description
This [commit](a6a8d121bbf2044793df5211c5bdb18859a62152) introduced a new module in a stable version (19.0) without the required key in the `.weblate.json` file. This commit aims at fixing that to ensure translations are handled correctly. Forward-Port-Of: odoo/enterprise#115753
This update resolves a problem where payroll exports to the Mexican SAT were being rejected due to incorrect data formatting. Specifically, when a payslip only includes non-taxable payments, the system was including a 'TotalPercepciones' field that the SAT requires to be absent. This change ensures compliance with Mexican tax regulations.
Original PR description
When a payslip contains only OtrosPagos (no perceptions), the SAT rejects with NOM36 because TotalPercepciones must not exist per the nomina12 XSD. This is a valid scenario under LISR articles 93 and 94, where certain payments (e.g., viáticos, becas, fondo de ahorro patronal) do not constitute taxable salary income. Apply the same 'or None' pattern already used for TotalDeducciones, so format_float(None) returns None and the attribute is omitted from the XML. Forward-Port-Of: odoo/enterprise#115923
This update ensures that EC Sales Reports generated for Swedish companies are exported to KVR in whole numbers, as required by Swedish tax regulations. Previously, the reports included decimal values, which were incorrect for reporting purposes. This fix corrects the export process to guarantee accurate data transfer.
Original PR description
**PROBLEM** EC Sales Report in Sweden needs to be reported with integer values. **STEP TO REPRODUCE** 1. Install l10n_se 2. On the se company, create a invoice with lines with EU tax and confirm it. 3. Go to Accounting/Reporting/EC Sale List and export to KVR. 4. Notices the KVR uses numbers with decimals places. opw-6045289 Forward-Port-Of: odoo/enterprise#116056 Forward-Port-Of: odoo/enterprise#114292
This update resolves a technical issue preventing the IoT printer test button from functioning correctly. The fix corrects a coding error that was preventing the system from properly identifying the printer, ensuring the test print functionality now operates as intended.
Original PR description
In the refactoring in odoo/enterprise#113545, a mistake was made where the `printer.iot_device_id` was used instead of `printer.iot_device_id.id`, causing an error when calling `searchRead`. This commit fixes the issue by restoring `.id`. Forward-Port-Of: odoo/enterprise#115039
This update corrects a bug where closed Helpdesk tickets were sending out emails with the ticket's database ID instead of its reference number. Previously, the 'Ticket Closed' email template used the wrong identifier, leading to inconsistent references for customers. This change ensures all email communications accurately reflect the ticket reference.
Original PR description
Steps to reproduce: ------------------------ 1. Install the Helpdesk. 2. Go to Settings → Technical → Sequences and set the next number to 100. 3. Create a ticket and send a message using the…
Steps to reproduce: ------------------------ 1. Install the Helpdesk. 2. Go to Settings → Technical → Sequences and set the next number to 100. 3. Create a ticket and send a message using the "Helpdesk: Ticket Received" mail template; Observe that the correct reference (100) is used. (Open the full composer to use "Load template") 4. Now send a message using the "Helpdesk: Ticket Closed" mail template and Observe that it displays the database ID (e.g., 1) instead of the reference. Cause: ------ `new_ticket_request_email_template` uses the ticket reference(`object.ticket_ref`) correctly. https://github.com/odoo/enterprise/blob/d39e291ba89ad018ba6f5f9591d280a834822f27/helpdesk/data/mail_template_data.xml#L18-L19 However, the `solved_ticket_request_email_template` uses the database ID (`object.id`) instead of the actual ticket reference (`object.ticket_ref`), leading to inconsistent references in customer communications. related commit: 3ed5273 Solution: --------- Update `solved_ticket_request_email_template` to use `object.ticket_ref` instead of `object.id` opw-6087466 Forward-Port-Of: odoo/enterprise#115946 Forward-Port-Of: odoo/enterprise#113932
This update resolves an issue where the ECO list incorrectly showed related ECOs from child BoMs. The change ensures that the ECO smart button only displays ECOs directly linked to the current BoM, improving the user experience and data accuracy for BOM management.
Original PR description
Steps to reproduce the bug:
- Create a storable product “P1”:
- Create a BoM (id=1):
- Create an ECO → This creates an archived BoM (id=2)
- Access BoM (id=2)
- Create another ECO → This creates an archived BoM (id=3)
- Go back to the original BoM (id=1)
→ The ECO smart button count is 1 (correct)
Click on it
Problem:
It loads all ECOs linked to both the parent and child BoMs. It should only display the ECOs directly linked to the current (parent) BoM.
opw-4653598This update fixes an issue where the Shopee account authorization process was failing when a shop already existed. Now, the system correctly reuses authorization tokens to fetch access tokens for multiple shops associated with an account, streamlining the onboarding experience for users connecting to multiple Shopee shops.
Original PR description
When authorizing a Shopee shop, a user has the choice to either connect to a Shopee Shop, or connect to a Shopee Account and grant access to multiple shops of the account. In the later scenario, the authorization code returned by Shopee OAuth should be used once to fetch the access tokens, and the tokens should be copied to all shops authorized by the account. However, when the shop already existed, the access token was fetched again, raising an error because the authorization code had already been used. opw-6166585 Forward-Port-Of: odoo/enterprise#116000
This update fixes an issue where the Belgian payroll system incorrectly parsed birthdates due to a 'numéros bis' format in the NISS number. The change normalizes the month value by using a modulo 20 calculation, ensuring accurate date recognition and preventing errors in employee records.
Original PR description
The NISS month field can be increased by 20 or 40 for "numéros bis". This caused invalid date parsing. Use modulo 20 to normalize the month before constructing the birthday. task-6144297 Forward-Port-Of: odoo/enterprise#114485
This update resolves a visual design problem in the Documents and Spreadsheet modules, specifically related to copy-paste functionality. The issue was caused by a change in the Odoo system (m3) that removed certain styling rules. This commit manually re-added the necessary Bootstrap classes to restore the original design appearance.
Original PR description
…h BS Because of m3, some rules have been deleted. This commit restores them by manually adding Bootstrap classes. Steps to reproduce: Here is a way to trigger a traceback - Open the browser console - Type: "odoo.__WOWL_DEBUG__.root.notification.add(new Set())" Forward-Port-Of: odoo/enterprise#116118
A recent update allowing report searching on the homepage caused a technical error (traceback) for users on the Indian Company setup. This fix addresses a problem with how the system retrieves report information, ensuring a smooth search experience. The change improves stability and usability for all users.
Original PR description
Steps to reproduce: 1. Install l10n_in_reports and switch to Indian Company. 2. Go to homepage and try to type something and search on the search box. A traceback will appear. Cause: In recent updates, it is now possible to search report varients through the search menu, so while fetching varients while preparing search results, this leads us to `_is_available_for` method. The cause lies in how `.get()` is being used. `_get_external_ids` returns `id: []` if no external id is linked to it, and here we do `external_ids.get(report.id, [None])[0]` and this will always give us [] if no external id is there. hence trying to access the 0th element causes traceback. This commit fixes that by safely evaluating to `[None]`. Forward-Port-Of: odoo/enterprise#114342
This update fixes an issue where the softphone tour wasn't functioning properly after a new user opened the softphone. The team adjusted the demo data to simulate a missed call, which now correctly triggers the tour to display the keypad tab as intended. This ensures new users have a smooth onboarding experience with the softphone.
Original PR description
Commit [1] made the softphone to show recent tab when there are missed calls. Commit [2] changed the demo data to contain 1 missed call. As a result, now when you open the softphone for the first time, you will see recent tab instead of the keypad tab before. This breaks the country_selector_tour which assumes you will see keypad tab when open softphone. [1]: c995b7df3fc6ff541dc65d8b28661ab03f4a8c08 [2]: f16faa029220ca7152289180c4de78783bab03be Forward-Port-Of: odoo/enterprise#116180