Thursday, August 28, 2025
13 changes · master
Resolved issues and error corrections
This fix prevents tax return report settings from being reused incorrectly across different report variants. It also adds a check to avoid duplicate linked return types, helping ensure users see the right reporting options and reducing filing mistakes.
Original PR description
With this pr: https://github.com/odoo/enterprise/pull/92823, we added a way to use previous options as return_periodicity options This added several issues. First is that we did not check the uniqueness of the linked return type Secondly, we copied those options even for different variants that are wrong
Payroll users can now pay an individual payslip even when batch payroll accounting entries are enabled. This removes an unnecessary blocker and clarifies the setting description so teams better understand when batch entries apply.
Original PR description
Previously, the Pay button was hidden when batch payroll move lines were enabled, preventing payment for single payslips. Since a single payslip creates only one accounting entry, payment should be allowed. This update includes: - Ensuring the Pay button is visible for single payslips, even when batch move lines are enabled. - Removing the redundant condition from the button visibility rule. - Updating the tooltip for batch payroll move lines to improve clarity. Task - 4674557
Fixes an issue that could prevent users from creating payslips for employees in the Mexican payroll module when a contract start date was missing. The system now uses a reliable fallback date, restoring the expected payroll flow and reducing disruptions for HR teams.
Original PR description
Currently, an error occurs when creating a payslip for an employee. Steps to Reproduce: - Install the `l10n_mx_hr_payroll` module with demo data.. - Switch to the `Mexico` company. - Go to…
Currently, an error occurs when creating a payslip for an employee. Steps to Reproduce: - Install the `l10n_mx_hr_payroll` module with demo data.. - Switch to the `Mexico` company. - Go to `Employees` and create an employee. - Click the `Payslips` button under the employee form. `TypeError: '>' not supported between instances of 'bool' and 'datetime.date'` This error occurs after [this commit](https://github.com/odoo/enterprise/commit/780a242b20932f808639f2719a9337d63ca6b13e#diff-e7b04636c3505b4f658eef73da77ef7dbd064ce663fdcfb76ed81e47246acc9d), which replaces the use of the date_start and date_end fields with contract_date_start and contract_date_end, since date_start and date_end are deprecated. When accessing the version, the _compute_dates method runs and sets date_start[1] to the version’s date if the version does not have a contract_start_date. Before this commit, it always retrieved the version’s date_start, which was handled safely. However, after this commit, it retrieves contract_start_date instead of date_start, which is not a required field and can be empty. As a result, when user tries to create a payslip, it raises the error [2]. This commit ensures that if the version does not have a contract_start_date, then while computing the payslip amount it uses the version’s date_version, which is a required field, thereby maintaining the same flow as in previous versions. [1]- https://github.com/odoo/odoo/blob/2054a54a66d6291ab37fa79f749a805138ada1c0/addons/hr/models/hr_version.py#L517-L521 [2]- https://github.com/odoo/enterprise/blob/f1c2326137fd3a94d37e2bbf09b175a9c742f46b/l10n_mx_hr_payroll/models/hr_payslip_worked_days.py#L21 sentry-6818787136 Forward-Port-Of: odoo/enterprise#92732
Audit reports now include PDF files that users embed from the Documents app into knowledge articles. This prevents missing attachments in printed reports and makes generated audit outputs more complete and reliable.
Original PR description
When the user uses the `/file` command in an article and loads a PDF from the Document app, the editor inserts a `/web/content/<int:id>` URL. These URLs were previously not handled by the PDF rendering engine used in audit report, causing attached PDFs to be omitted from generated reports. This commit updates the method responsible for loading attached PDF files to support `/web/content/<int:id>` URLs. As a result, embedded files are now correctly included in the final printed output. Task-4989809
The Belgian payroll SD Worx export wizard has been updated to work with the newer employee version model. This prevents an error when users generate the SD Worx work entries export file, helping payroll reporting continue smoothly.
Original PR description
#### Steps to Reproduce Payroll -> Reporting -> Export Work Entries to SDWorx -> Generate Export File #### Issue In saas-18.4, contracts have been merged into employee versions (`hr.version`) and the contract states (open/close) were removed ([REF] hr_contract: Merge contracts into versioned employee model). The method `_get_versions_with_contract_overlap_with_period` no longer supports the `states` keyword. Passing it caused a traceback when generating the SD Worx export. #### Fix This commit removes the argument to ensure compatibility with the new versioned model. task-5022173 Forward-Port-Of: odoo/enterprise#92610
Intrastat reporting now identifies business customers using VAT numbers instead of only whether a contact is marked as a company. This prevents freelancers or self-employed customers with VAT numbers from being incorrectly treated as consumers, improving reporting accuracy.
Original PR description
The way we checked b2b customer was wrong, we checked on the partner if it was a company or an individual. But, freelancers are individual with a vat number, so the new way of checking is based on the VAT. task-5005852
Belgian point-of-sale users now receive clearer messages when the fiscal blackbox cable is faulty or the device does not send a valid response. This helps staff identify connection issues faster and reduces confusion during checkout.
Original PR description
This PR adds some explicit messages to invalid responsed from the Blackbox. We will now log and inform the user when the cable is malfunctioning or the blackbox isn't responding with a valid message Forward-Port-Of: odoo/enterprise#90944 Forward-Port-Of: odoo/enterprise#90436
Users can now preview each linked YouTube document and see the correct video instead of always seeing the most recently added one. This improves reliability when managing external links in Documents and avoids confusion when reviewing shared content.
Original PR description
**Steps to reproduce:** 1. Go to Documents > Click ⬇ beside Upload > Add a Link 2. Add two different YouTube video URLs with above steps 3. Preview the first link, then the second **Issue:** Previewing individual YouTube links always displays the preview of the *last* added video, regardless of which one was clicked. **Cause:** When a document has no `attachment_id`, the preview fallback logic defaults incorrectly, causing all documents to share the same preview source. **Solution:** Updated `getRecordAttachment` to prioritize `attachment_id` but gracefully fallback to `rec.resId` and `rec.data.name` when missing. This ensures document preview works even when the record has no linked attachment. opw-4906808 Forward-Port-Of: odoo/enterprise#92543 Forward-Port-Of: odoo/enterprise#90388
The Luxembourg annual VAT declaration now includes 0% custom tax rates in XML exports, preventing rejection by ECDF when those rates are required. It also allows average employee figures to be reported with decimals, improving accuracy for annual reporting.
Original PR description
**PROBLEM** 1. In Annexes D and E you can declare custom tax rate. If the custom rate is 0%, this percentage will not be exported into the xml. When submitting the xml to the ECDF, the submission…
**PROBLEM** 1. In Annexes D and E you can declare custom tax rate. If the custom rate is 0%, this percentage will not be exported into the xml. When submitting the xml to the ECDF, the submission will be rejected because the xml doesn't state how much % is the custom tax rate. 2. In Section V, code 110, 108 and 109 should be decimal since they are averages. **STEP TO REPRODUCE** 1. install the l10n_lu module and select the demo lu company. 2. In accouting app, goes to the annual tax report (Accounting/Reporting/Tax Report, select Annual VAT Declaration). 3. Goes to Appendix D or E, and fill code 128, 136, 144, and 162, and leave the custom rate(%) above each of them at 0%. 4. Export to xml (using the little cog thingy). 5. Notice the code 396, 394 149, and 153 doesn't appear in the xml. **CAUSE** 1. Field containing zero are filtered out the xml by default, which is the case of the custom rate (%) fields. 2. Average number of employee during the year is declared in the report data file to be of the integer type. **FIX** 1. Adding custom rate fields to the mandatory fields. 2. Changing type of average employee fields to float. opw-4978365 Forward-Port-Of: odoo/enterprise#91938
This fixes a problem where customers could be unable to add rental or subscription products to their cart after certain product page design changes were made in the website editor. The checkout button now correctly finds the product details it needs even when the page layout has been customized.
Original PR description
## Version saas-18.4+ ## Steps to reproduce - Open the shop; - Select any product; - Open the Editor: - Select the product's main image; - Change the image width to either `100 percent` or `None`,…
## Version
saas-18.4+
## Steps to reproduce
- Open the shop;
- Select any product;
- Open the Editor:
- Select the product's main image;
- Change the image width to either `100 percent` or `None`, then save;
- Click on `Add to cart`.
## Issue
Commit eac892a4ad7373d18f954afbbcd2f1213ac5f281 introduced a UI update that reorganizes the layout of the product configurator, placing the `Add to cart` button next to the form rather than below it.
Although the button remains inside the form in the original template, using the Editor to adjust the layout can result in the button being saved outside the `<form>` element in the final DOM.
This breaks the logic that relies on `closest('form')` to locate the surrounding form, since the button is no longer a descendant of the form element.
## Solution
Find the first product form relative to the button, since it may be a sibling rather than an ancestor in the DOM.
opw-4942986
See also:
- https://github.com/odoo/odoo/pull/218902
Forward-Port-Of: odoo/enterprise#90631Fixed an issue where tax return XML generation could skip company data when a child company appeared before its parent alphabetically. The report now keeps the intended active company during generation, helping ensure complete and accurate tax return exports.
Original PR description
Error: When generating a tax return, there is a circumstance that will cause certain companies to be omitted from the xml computation. This happens when a child company is earlier alphabetically than the parent company. The company ids are ordered alphabetically for display purposes on the tax return view, however when writing this value into the `allowed_company_ids` context value, the first id in the list will override the current company environment variable during xml generation. To fix this the active company is passed into the context to ensure that it is not overwritten. OPW-4964467 Forward-Port-Of: odoo/enterprise#91667
Customers browsing rental products without signing in can now use the date picker normally. This prevents an error that blocked date changes and improves the shopping experience for rental products.
Original PR description
Required to access planning slots when not logged in. How to reproduce: On the e-commerce, try accessing a product configured with plan services while logged out. What happens: Error response from `renting_product_availabilities` call. The datetime picker is not editable anymore (the date is locked). What should happen after fix: On the same product page, the datetime picker is accessible and the user can change dates without any problem. Bug introduced in https://github.com/odoo/enterprise/pull/88174
Fixes an error that occurred when refunding Mexican Point of Sale orders containing a global discount line. This helps staff process customer refunds reliably without being blocked by a system error.
Original PR description
**Steps to reproduce:** ``` - Install PoS mexican localization - Activate PoS setting Global Discounts - Navigate to PoS and create an order with a discount line - Go to back end and try to refund this order - Notice an error pops-up ``` **Cause:** Bad fw-port In the original commit `json.lines` is an array and accessing index "2" of the array was not a problem (https://github.com/odoo/enterprise/pull/84331/files#diff-63a117ed6751a8aae4fcb11d867177f5d0feb78cc1e2f3461f425babc10b5016R15) From 18.0 we are accessing the record `currentOrder` itself and `currentOrder.lines` is an PosOrderline object which doesn't have a property named "2". **Fix:** Remove index access `[2]` opw-4899501 Forward-Port-Of: odoo/enterprise#93251 Forward-Port-Of: odoo/enterprise#90410