Daily updates from Odoo
Friday, February 6, 2026
9 changes · saas-18.2
Resolved issues and error corrections
This update fixes an issue in the French P&L report where accounts 65 were incorrectly categorized. The accounts have been moved to the 'Other Expenses' line, ensuring accurate financial reporting and alignment with French accounting standards. This improves the clarity and reliability of the financial data.
Original PR description
On the french P&L, accounts 65 are refferenced in the line 'Other purchases and external charges' but this is not where those accounts need to be, they need to be part of the line 'Other Expenses' task-5446018 Forward-Port-Of: odoo/enterprise#106465 Forward-Port-Of: odoo/enterprise#103357
This update fixes a visual inconsistency in the Field Service Report generated from the Bubble document layout. Previously, table borders had conflicting styles, creating an uneven appearance. The fix ensures a consistent, professional look for these reports.
Original PR description
Steps to reproduce: -------------------------------- 1. Install `industry_fsm_sale` module 2. Go to Settings > Configure Document Layout 3. Select the Bubble document layout and save 4. Open any…
Steps to reproduce: -------------------------------- 1. Install `industry_fsm_sale` module 2. Go to Settings > Configure Document Layout 3. Select the Bubble document layout and save 4. Open any Field Service task 5. Use the Products smart button to add one or more products 6. Click the Settings icon > Print > Field Service Report Observation: -------------------------------- In Time & Material tables using the Bubble layout, table borders show a mix of rounded corners and sharp edges, resulting in inconsistent visuals Issue: -------------------------------- The table tags in the report were missing the `table-borderless` class. As a result, the layout-applied rounded borders conflicted with the default table borders Solution: -------------------------------- Add the `table-borderless` class to the affected table tags so the tables inherit consistent rounded borders from the document layout Before: <img width="787" height="317" alt="before_css" src="https://github.com/user-attachments/assets/dac136a8-022a-4c36-8cdb-1c0fbb048f3e" /> After: <img width="816" height="372" alt="after_css" src="https://github.com/user-attachments/assets/b5f96e75-2cd3-44cf-89e3-9a3b564c8369" /> opw-5401612
This update resolves a technical issue that prevented users from creating invoices with non-deductible tax values. The fix avoids a SQL error that occurred when attempting to calculate tax on unsaved invoice lines, ensuring accurate tax reporting.
Original PR description
**Steps to reproduce:** * Install **account_asset** and **l10n_be**. * Enable **developer mode**. * Using **Studio**, add the field **non_deductible_tax_value** to invoice lines. * Create a new invoice. * Select a partner and add a product with **21% VAT** applied. * Do not save the invoice before adding the line. **Observed behavior:** * A **SQL syntax error** occurs: `WHERE tdq.base_line_id IN ()`. * The error is triggered when accessing the non-deductible tax value on unsaved records. **Cause:** * `_compute_non_deductible_tax_value()` executes SQL query with `tuple(self.ids)`. * For unsaved records, `self.ids` is empty, creating invalid SQL `IN ()` syntax. * This path is only reached for **non-deductible taxes**. **Fix:** * Skip the SQL query when no record IDs are available. * Return a default value for unsaved records. opw-5896716 Forward-Port-Of: odoo/enterprise#106470
This update resolves an issue where closed tickets with high priority were incorrectly displayed in the helpdesk mail plugin. The fix filters out tickets in the 'folded' stage, ensuring users only see active, open tickets for each contact. This improves the plugin's accuracy and usability.
Original PR description
**Steps to reproduce:** - Install Mail_plugin - Setup the outlook mail plugin in Outlook - Once connected, click on a mail from a contact on the database - Click on the Odoo Inbox Addin. action - Under the contact 5 related tickets are showed - Create 5 tickets with priority and put them in folded stage (closed) - Create new normal tickets - User can't see new tickets in the plugin **Issue:** The search is done on priority and then id ordering, this means that tickets in folded stages (closed) which have a high priority are always showed first. Tickets in a folded stage are considered as closed, so they should not appear anymore in the contact data to avoid displaying them indefintely. **Fix:** Adapted search domain and removed fold attribute in the answer. opw-5075477 Forward-Port-Of: odoo/enterprise#100883
This update corrects a misleading error message displayed when validating Argentine electronic invoices (ARCA). The message has been changed to accurately reflect that an invoice date before the last validated invoice is the issue, not one after. This ensures proper invoice processing and avoids confusion for users.
Original PR description
WSFE error 10016-1 must be "The invoice date cannot be before the last invoice validated in AFIP." instead of "The invoice date cannot be after the last invoice validated in AFIP". Steps to reproduce: validate argentinean customer electronic invoice with invoice date before than the last invoice date validated in ARCA. Task Adhoc side: 44290 Task latam: 1376 Forward-Port-Of: odoo/enterprise#106305
This update resolves an issue with the calculation of coordination deductions in the Swiss payroll module (l10n_ch_hr_payroll_elm_transmission_5_3). The fix ensures accurate reporting of deductions related to coordination payments, improving compliance with Swiss tax regulations. This change impacts payroll processing for Swiss businesses using Odoo Enterprise.
Original PR description
Forward-Port-Of: odoo/enterprise#106615
This update resolves an issue where Modelo 390 reports were incorrectly generating empty BOE files. The fix ensures the reports accurately reflect data for the specified year by correctly identifying the report period. This guarantees accurate tax reporting for Spanish companies.
Original PR description
### Issue: When exporting Modelo 390 reports for a past year, the BOE file was empty — all values were 0 ### Cause: In `export_boe()`, the `report_lines` were get based on the `section_report`…
### Issue: When exporting Modelo 390 reports for a past year, the BOE file was empty — all values were 0 ### Cause: In `export_boe()`, the `report_lines` were get based on the `section_report` options However, `section_reports` do not store the date or return periodicity of the selected report As a result, using their options always fetched data for the current period instead of the specified year ### Note: `_generate_mod_390_page2()` also had issues: some lines were missing or incorrectly indexed The mod 360 format, it strict in the structure with specific index so it may produce invalid documents The latest documentation for mod 390: https://sede.agenciatributaria.gob.es/static_files/Sede/Disenyo_registro/DR_300_399/archivos_25/dr390e2025.xlsx ### Steps to reproduce: - Install `l10n_es_reports` and switch to ES Company - Create an Invoice and a Bill (Any product, Price: 100.00, Tax: 21%, Invoice Date: 01/01/2025) - Open Tax Return, switch to Mod 390, and set year to 2025 - You should see data in the 2 first sections - Use the gear icon, and download the BOE - Use the gear icon to download the BOE, fill the wizard (Natural Person – Name: Test, Principal activity: Test, Activity Code: 12345), and generate the file Before the fix: all values in the BOE were 0 instead of matching the report opw-5457374 Forward-Port-Of: odoo/enterprise#106542 Forward-Port-Of: odoo/enterprise#104928
This update fixes an issue where month names were incorrectly displaying based on the user's locale instead of the Odoo environment's language. This ensures that month names are consistently shown in the correct language for each user, improving accuracy and user experience. The change impacts several payroll and reporting modules.
Original PR description
Month name is using the locale language instead of the env language Get month name in the env language Community PR: odoo/odoo#246790 Task [link](https://www.odoo.com/odoo/project.task/5902364) task-5902364 Forward-Port-Of: odoo/enterprise#106175
This update improves the accuracy of the Kardex report for Peruvian exports by incorporating landed costs and price adjustments, which were previously missing. The changes also address mapping issues and ensure correct operation types are used, leading to more reliable inventory reporting.
Original PR description
Refactored the logic to generate the Kardex report based on `stock.valuation.layer`, for the following reasons: 1. **Landed costs**: These must be considered in the report. Odoo already creates…
Refactored the logic to generate the Kardex report based on `stock.valuation.layer`, for the following reasons: 1. **Landed costs**: These must be considered in the report. Odoo already creates valuation layers for landed costs, and the report must use the date when the landed cost was recorded, not the original stock move date. 2. **Price adjustments**: Product price adjustments generate valuation layers without stock moves. These layers are now included in the report. Additional fixes and improvements: - Correctly map columns 18 to 26 in Report 13.1: - 18–20: Incoming movements - 21–23: Outgoing movements - 24–26: Final balance - Ensure `cost_in` and `cost_out` values are always positive. The sign now depends on the movement quantity, not the unit cost. - Replace the product list with a dictionary to track accumulated quantities and values per product for accurate balance calculation. - Extend test coverage to include cases where the report includes opening balances due to past transactions. - **MRP movements**: MRP processes don’t generate pickings, but their stock moves are linked to operation types. The report now uses codes `19` for incoming and `27` for outgoing MRP-related movements. - **Reversal of pickings**: Since Odoo copies the original picking and skips reassignment logic, we now override the reversal wizard to set the correct PE operation type: - `25` for incoming reversals - `24` for outgoing reversals - Force operation type `99` for all `A1` lines, as required by the report. - Ensure report dates are processed in the user's timezone for consistency with the layer view in Odoo. Forward-Port-Of: odoo/enterprise#88592