Daily updates from Odoo
Monday, August 25, 2025
23 changes
3 changes
Enhancements to existing features
This update makes the shared HTML building tools more flexible so they can be reused by the mass mailing app in a future refactoring. It moves useful design options into the common editor, improves configuration hooks, and fixes small reliability issues around editing behavior and placeholders.
Original PR description
This pull request makes small adjustments related to the `html_builder` in order to prepare for the `mass_mailing` refactoring. See each specific commit for a contextualized explanation. task-4247642 Co-authored-by: Damien Abeloos <abd@odoo.com> Co-authored-by: Thomas Josse <thjo@odoo.com>
UAE payroll calculations now include days when an employee is outside their contract period. This helps payroll teams produce more accurate salary computations and reduces manual adjustments for contract start or end gaps.
Original PR description
days to UAE payroll task-4700453 Forward-Port-Of: odoo/enterprise#84758
The Guatemalan EDI module now avoids heavy invoice-related recalculations during installation, reducing the risk of memory errors on large databases. It also no longer installs automatically with the base Guatemalan localization, giving businesses more control over when EDI is enabled.
Original PR description
This commit adds `_auto_init` to the `account.move` object in the Guatemalan EDI that prefills all computed stored fields in the move object with null values. This prevents computation on those fields when installing the module, and also prevents MemoryError on large databases. task-5031330 Forward-Port-Of: odoo/enterprise#92881
2 changes
Enhancements to existing features
This update improves electronic invoice validation for Australia/New Zealand, Malaysia, and Singapore so invoices are less likely to be rejected for missing tax or address details. It adds safer fallbacks and stricter checks where local PINT e-invoicing rules require specific tax, company ID, street, or postal code information.
Original PR description
Description of the issue/feature this PR addresses: - AU&NZ: Current behavior is that when VAT is not set on the partner, the tax category code defaults to zero. This becomes problematic with certain…
Description of the issue/feature this PR addresses: - AU&NZ: Current behavior is that when VAT is not set on the partner, the tax category code defaults to zero. This becomes problematic with certain rules (e.g. the tax totals of tax category code 'O' should have amount of zero, but current code can set this value to something other than zero). The change focuses on edge cases when VAT of partner is not set. Changes are not related to the Q2 2025 release changes. - MY: Added fallback for <cac:PartyTaxScheme> to always have <cbc:CompanyID>. Currently breaks if the partner does not have VAT set. Changes are not related to the Q2 2025 release changes. - JP: No changes are made. - SG: Invoice with taxes of certain tax category codes must have seller and buyer street address and post code. Added constraint to make sure they are set. New PINT SG rule adds one more tax category code (Standard Rate, SRRC). New code is added to `ubl_cii_tax_category_code` --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#222737
The Guatemalan electronic invoicing module now avoids heavy invoice data calculations during installation, reducing the risk of memory issues on large databases. It also no longer installs automatically with the base Guatemalan localization, giving businesses more control over when to enable it.
Original PR description
This commit adds `_auto_init` to the `account.move` object in the Guatemalan EDI that prefills all computed stored fields in the move object with null values. This prevents computation on those fields when installing the module, and also prevents MemoryError on large databases. task-5031330 Forward-Port-Of: odoo/enterprise#92881
16 changes
Enhancements to existing features
Marketing automation now includes a controlled option to bypass the blacklist for important transactional or incident-related emails and SMS messages. This helps ensure critical customer communications can still be delivered when needed, while limiting visibility of the option to ERP managers in debug mode.
Original PR description
Add an option to bypass the black list for example for transactional or incident emails/sms. This option is only displayed for erp manager and when debug mode is enabled. Task-3575361
This update adds missing account mappings for salary rules in the UAE and Egypt payroll accounting modules. It helps ensure payroll entries are posted to the correct accounts, improving accounting accuracy and reducing manual corrections.
Original PR description
xx: ae,eg In this commit we add the mapping for all the salary rules accounts Taks: 4930175
Installing the Guatemalan electronic invoicing module is now safer for companies with large databases. The update avoids heavy recalculations during setup that could previously cause installation failures, and the module will no longer be installed automatically with the base Guatemalan localization.
Original PR description
This commit adds `_auto_init` to the `account.move` object in the Guatemalan EDI that prefills all computed stored fields in the move object with null values. This prevents computation on those fields when installing the module, and also prevents MemoryError on large databases. task-5031330 Forward-Port-Of: odoo/enterprise#92881
Chilean delivery guides can now include editable cross-reference documents, such as purchase orders, directly on stock pickings. This reduces manual work and improves accuracy by copying references from sales orders and backorders while reusing the same reference display across invoices and delivery guides.
Original PR description
Currently Delivery Guides can reference a Purchase Order by using the client_order_ref field on the sale order linked to the picking. This works but has issues, it is hardcoded to only that one reference document, it isn't editable if needed, and has a hardcoded date of the picking. This PR takes advantage of the `l10n_cl.account.invoice.reference` model that exists in `l10n_cl_edi` for `account.move` and supports identical functionality on `stock.picking`. It will automatically copy the reference from the sale order to the picking if it is set and copy over to any related backorders. To remove duplication, l10n_cl_edi was modified to extract the report table to a reusable template that is accessible by both modules. task-4970185
Turkish payroll can now keep an employee's net wage constant and calculate the required gross salary each month. This helps businesses honor net salary agreements while accounting for changing payroll calculations and deductions.
Original PR description
This PR adds the feature of keeping the NET wage constant in payroll of employees with contracts in Turkey, while every month calculating the Gross Salary that will result in said net wage. task link: https://www.odoo.com/odoo/all-tasks/4619061
Mexican electronic invoicing now handles discount distribution across invoice lines more consistently, including complex refunds and point-of-sale invoices. This helps produce more accurate compliant invoice data and reduces errors in edge cases involving negative lines or discounts.
Original PR description
Forward-Port-Of: odoo/enterprise#92910 Forward-Port-Of: odoo/enterprise#92727
Planning schedules now better match employees with the shifts they are eligible to see. Employees are shown slots based on their assigned roles, and non-flexible employees only see slots that fit within their working hours, reducing scheduling confusion.
Original PR description
- Added role-based filtering: employees only see slots that match their roles or have no role assigned (unless they have no roles, in which case all are allowed). - Applied attendance filtering for non-flexible employees, restricting slots to their valid work intervals. related task - 4701095
Maintenance requests now show an explicit scheduled end time, making planned work easier to understand. Teams can also log or plan workcenter maintenance outside normal hours or after it has happened, while conflict checks are handled earlier to avoid unnecessary scheduling records.
Original PR description
With This Commit: ----------------------- 1. Replace duration with schedule_end - Replaced the `duration` field with an `scheduled end` on maintenance requests, in preparation for removing the…
With This Commit: ----------------------- 1. Replace duration with schedule_end - Replaced the `duration` field with an `scheduled end` on maintenance requests, in preparation for removing the problematic `date_delay` attribute in calendar views. - Improves time range visibility by making the end time explicit in the form view. 2. Allow past leave creation - Allowed creating leaves in the past for workcenters. - This matches real-world maintenance use cases where activities are logged after they happen or just started. 3. Reorder logic to prioritize scheduling on the exact desired date - The logic now first checks if the requested time slot is available for the maintenance request. - If the slot is already taken, it raises a UserError before creating any preventive maintenance leaves. - This ensures early validation and avoids unnecessary record creation, improving overall performance. 4. Allow creating maintenance during non-working hours (flexible schedule) - Users can now plan maintenance during nights, weekends, or other off-hours. - This ensures the "MO already scheduled for this time slot" error only shows when there's an actual conflict. - This removes unnecessary restrictions and supports more efficient maintenance planning. 5. Refine `Maintenance Requests Analysis` report - Removed low-impact measures to improve clarity and help users focus on key metrics like request count and duration. - Retained the duration measure to help users analyze time spent by assignee. Framework task: [4609678](https://www.odoo.com/odoo/all-tasks/4609678) task-4582789
The Field Service customer ratings action has been changed so it no longer depends on a live server connection. This improves reliability for users working in offline mode while keeping access to customer rating information.
Original PR description
Before this commit The "Customer Ratings" action in industry_fsm used a server action, incompatible with offline mode due to its dependency on a live backend connection. After this commit The server action is replaced with a standard window action, which is supported in offline mode. task-4920361
Belgian payroll now supports setting a minimum withholding tax amount as an additional payslip input. This helps ensure payroll calculations meet required withholding levels by automatically adjusting payslip lines when the calculated tax is below the specified minimum.
Original PR description
This commit adds a new other input type that can specify the minimum amount of withholding tax that should be applied. The withholding tax is adjusted on the payslip lines if it does not reach the specified minimum. task-4936543
HR users can now open the employee’s contract version directly from an offer before countersigning, making review easier. The signed contract button now consistently opens the correct version, including after the page is refreshed.
Original PR description
New: - A smartbutton for HR to view the employee version before countersigning. - The smart button exists within the offer form view when the offer is partially-signed, redirects to a view of the employee version based on the partially signed contract. Fixes: - When the contract is countersigned, clicking on the "signed contract" smart button now leads to the correct version view. - When the page is refreshed, the correct version is still loaded. Task-4873800
This update improves the Time Off request experience and keeps related payroll, planning, project, and localization workflows aligned. It mainly adjusts supporting checks to ensure existing business processes continue to behave consistently after the time off window changes.
Original PR description
related: https://github.com/odoo/odoo/pull/213604/
The employee form has been reorganized to make key HR and payroll information easier to find and understand. Wording and layout improvements reduce friction for HR teams, while the signatories area has been removed to simplify the page.
Original PR description
In this PR, we improved the existing employee form UX, by moving some parts, improving wording and UX, and removing the Signatories tab. Related task: 4879234 Community PR: https://github.com/odoo/odoo/pull/214962
Shopfloor cards now show which employees are assigned to each work order, making it easier to see which work is already taken and which remains available. Active work orders are more clearly highlighted, and the selected employee's assigned work orders are emphasized in the overview for faster access.
Original PR description
In shopfloor, to know which WOs are free to take, Assigned employees are now shown on the card (limited to 13 employees). With the recent shopfloor redesign, it became less easy to identify active WOs. Therefore, now any active WOs are highlighted for any user. **NEW:** In overview, for the employee currently selected, the WO quick access button is highlighted in WOs they're assigned to. Task: 4987845
VAT returns now separate the VAT total for the period from the balance shown on the closing entry, making amounts easier to understand. The update also improves return management with deadline filtering, archive controls, automatic paid status for zero or negative submitted balances, and more accurate payable amounts across periods.
Original PR description
* Show VAT Total for the period and show the vat balance on the closing entry if it is different from period vat total. * Add Deadline Filter on return search. * Allow Archive and Unarchive automatically generated returns. * Return is paid automatically if submitted and balance is negative or equal to zero. task-4981853
UAE payroll calculations now include days when an employee is outside their contract period. This helps payroll teams produce more accurate salary results by reflecting non-contract days in the relevant salary rules.
Original PR description
days to UAE payroll task-4700453 Forward-Port-Of: odoo/enterprise#92807 Forward-Port-Of: odoo/enterprise#84758
2 changes
Enhancements to existing features
Xendit payment forms now report token creation errors immediately, such as when entered details are invalid. This prevents failed or incorrect payment data from continuing through the checkout process, giving customers faster feedback and reducing avoidable payment issues.
Original PR description
Previously, if error was found during token creation (i.e. invalid input) , it's not immediately reported but instead invalid data will be used for further process. Now, any errors caught early will be reported immediately back. --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr
The Italian VAT XML export now correctly adapts between monthly and quarterly submissions, including separate quarterly sections where required. The exported file name is also corrected, and the VAT threshold handling is updated to match the latest expected amount.
Original PR description
Description of the issue this commit addresses: The XML export should contain three "Modulo" sections when the report is submitted quarterly but currently only ever sends one big chunk of data. Also the name of the exported file is wrong. --- Desired behavior after this commit merged: The exported file adapts to whether it is submitted monthly or quarterly and the name of the file issue is addressed. --- Community PR: https://github.com/odoo/odoo/pull/216887 task-4826511 Forward-Port-Of: odoo/enterprise#86642