Saturday, August 30, 2025
18 changes · master
New functionality added to Odoo
The ESG app now includes IPCC greenhouse gas data and updated warming potential values, giving businesses a broader and more reliable basis for carbon reporting. Users can import supported emissions databases more smoothly and are guided directly to emission factors after a successful import.
Original PR description
task-4812645
Enhancements to existing features
Norwegian tax reporting now includes a guided step that explains how users should submit their tax return, making the closing process clearer. The company data setup also captures the Register of Legal Entities information needed for Norwegian compliance.
Original PR description
- Add instructions wizard for users on how to submit the tax return. - Add Field: Register of Legal Entities (Brønnøysund Register Center) to company data wizard. task-4893971
Resolved issues and error corrections
Resending documents for multiple payslips no longer fails when the system prepares the related email templates. This helps payroll teams process batches reliably without needing to resend each payslip one by one.
Original PR description
since https://github.com/odoo/enterprise/commit/a2829976f5ec0c8c31fc63d931ce2bae44429560, if the action is called on multiple records, the ensure_one of _get_email_template of documents_l10n_ch_hr_payroll module will make it crash. This commit calls the get_template method on each payslip instead. Task-5051591
Features or functions removed from Odoo
The Payroll Master Report has been removed because its previous Excel export purpose is now covered by the payslip lines report. This simplifies the payroll menu and avoids maintaining a duplicate reporting option.
Original PR description
It had a previous need but not any longer referenced to the task PURPOSE: "We previously needed the master report to be able to extract details from the payslip lines as columns in Excel format, with the ability to specify which lines to be selected on the Excel export, but since we now have the payslip lines report, we can drop the Master Report." So dropped the whole model and all related: views, menu item, security, access, calls from manifest/__init__ files. task-5039576
Code cleanup and technical improvements
The AI and live chat apps now identify AI agents directly instead of relying on their linked contact records, simplifying internal handling and reducing unnecessary checks. This also improves access handling for AI agents and fixes cases where removed website snippets or archived agents could leave live chat configuration inconsistent.
Original PR description
In the AI app, there are multiple functions that receive the partner_id of the ai.agent as a parameter. This complicates the code and results in unnecessary checks on the partner_id to make sure it is connected to an AI Agent. This commit replaces the usages of partner_id of ai.agent (unless actually needed) with the id of the agent. To do so: 1. ai_agent_id is stored on discuss.channel model. 2. All rpc calls to AI Controllers are changed to pass ai_agent_id instead of partner_id. 3. All functions inside AI app are changed to use ai_agent_id instead of partner_id. However, there are some functions that actually require partner_id. These functions are left without modification. Community PR: https://github.com/odoo/odoo/pull/223008 task-4991208
Belgian payroll holiday attestations have been redesigned to include clearer employee details, occupation periods, and more accurate remuneration calculations. Payroll teams also get a simpler workflow and a new setting to define the legal time off type used in these attestations.
Original PR description
task-5011670
AI-powered prompts and automation can now include relevant web information when generating responses, improving the usefulness of AI outputs. The update also fixes several reliability issues around prompt editing, relational fields, document sorting, and language consistency so users encounter fewer errors and interruptions.
Original PR description
Purpose: ------- Allows to use web grounding when using the `_request_llm` method in the llm api service. Updated ai_fields so that it uses the `_request_llm` method now that web grounding is supported. Also fixing an JSON serialization error occurring when adding relational fields with ir.attachment as comodel. Now, newIds will always be converted to their string representation.
Payments now carry a unique end-to-end reference as soon as they are created, and incoming bank transactions can use it for reconciliation. This should reduce manual matching work and improve accuracy for SEPA, ISO 20022, and online payment flows.
Original PR description
*: accountant, iso20022, online_payment Before, an end_to_end_id was generated when creating a batch payment for every payment. This information was never used when receiving transactions later. Now, this ID is generated after each payment creation, and is used to match with bank transaction lines. task-4210735
Employee contract offers are easier to access and update, with offer details now changing automatically based on the selected contract template. Several payroll and employee menus were simplified, attachment information is clearer, and a Belgian salary package installation issue was corrected.
Original PR description
- removed generate offer button and made the smart button for offers always visiable to generate offers if there are none - added a computed fileld for attachment running amount to show it in attachments smart button instead of their count - changed the place of the contract template menu item to be in configration under job positions - removed salary attachment menu item in hr_payroll - removed bank account menu item in Employee - made offer values change automatically according to the contract template - fixed a bug preventing from installing l10n_be_hr_contract_salary because of wrong assignment of canteen costs task id: https://www.odoo.com/odoo/project/1251/tasks/4988659
The Belgian SD Worx payroll export now checks data before starting the export instead of interrupting the export with user error messages. This makes the process clearer and helps users resolve issues earlier, reducing failed exports.
Original PR description
Removed User errors from the export process, and extracted the data check into a step prior to the exporting in hr.work.entry.export.mixin Task: 4968319
Payroll configurations for the UAE, Egypt, Jordan, Saudi Arabia, and Turkey now include an expense salary rule in regular pay structures. For supported accounting localizations, the related debit account mapping is also added so payroll expenses can be posted more consistently.
Original PR description
*: AE/EG/JO/SA/TR - add the expense salary rule to each loca regular pay structure Task: 4822631
Salary rule forms were made clearer and easier to use, with improved labels, helpful guidance, and fewer confusing display options. This reduces setup mistakes for payroll teams and preserves important guidance that users might otherwise delete.
Original PR description
- solved a bug with the color not changing in display tab - removed preview section in display tab - added placeholder and tooltips for fields in accounting tab - renamed some fields in accounting tab for better readablity - moved the python default comment to be an info panel so it doesn't get removed by the user task-id: 5043889
When an email creates a project task, any internal users included as recipients are now automatically added as assignees. This helps tasks reach the right employees without manual follow-up, improving routing and accountability.
Original PR description
From this commit, when we send mail to project email address to create a task if the same task has other recipients who are internal users will be set as assignees of such created task. Changes related to commuinity PR. task-4510316
Website previews will temporarily stop generating footers because a supporting configuration option was removed. This prevents preview issues while the team prepares a longer-term replacement for footer customization.
Original PR description
Since `website.snippet_options` has been removed, we need an alternative to add a new option for the footer. In the meantime (for previews of 19.0) we temporarily fix this issue by disabling footer generation.
Invoices created after customers pay subscriptions through the portal now correctly generate the required signed electronic documents. This restores compliance-related invoice processing for affected localizations, including Mexican electronic invoicing, and prevents missing government signatures after online payments.
Original PR description
## Steps to reproduce: - Make sure the Mexican localization is installed and properly set up for signing invoices - Make sure the payment providers are set up (it can be demo, the customer uses…
## Steps to reproduce: - Make sure the Mexican localization is installed and properly set up for signing invoices - Make sure the payment providers are set up (it can be demo, the customer uses Stripe but it can be reproduced with any - Make sure the online payment setting is active - Go to subscription module - Do a new order - In other info, add the online payment checkmark - Confirm the order - Generate the payment link or go into the preview - Make the payment ## Issue: The invoice is generated, but is not signed by the government (no edi is generated), as it used to. ## Cause: The flow works in 17.0 but for the wrong reason. Before this [commit](https://github.com/odoo/enterprise/pull/70562), two mails were sent. And during the chain of triggers of the second email, edi document was generated with `orders._send_success_mail(tx.invoice_ids, tx)`. https://github.com/odoo/enterprise/pull/70562/files#diff-8778c8dce7ca1c24de19f26f11ac0c5410c6c2a4d121c3815682a2323cbb09c2L177 After the removal of the method, it should still work since we still have `payment.transaction._send_invoice` which calls `_generate_and_send_invoices` and should trigger the sub calls necessary for generating the edi stuff. But in `_create_or_link_to_invoice`, we check that the transaction has no invoice_ids linked (make sense with the name of the method). However, at this stage, we already created the invoice in https://github.com/odoo/enterprise/blob/2f3698b250092ad376344e959d46bdc0eebf1a81/sale_subscription/controllers/portal.py#L419-L424 And unfortunately, it will be effectively possible to "let the post process of transaction create" the invoices only in Master (the code is not ready yet). For now it would be too risky for a stable version to make such change. ## Solution: We ensure EDI documents are generated whenever a `subscription_action` is set. To achieve this, modify the `_post_subscription_action` hook to call `_subscription_post_success_payment` for any `subscription_action`, including `assign_token`. From `_subscription_post_success_payment`, we can call `_generate_and_send_invoices` on any invoice that has an EDI associated with it, which sends & signs the required EDI documents. opw-4648189 Forward-Port-Of: odoo/enterprise#93231 Forward-Port-Of: odoo/enterprise#84815
Stopping a timesheet timer now matches entries using the user's local date instead of UTC. This prevents time from being added to the previous or next day's timesheet for users in different time zones.
Original PR description
Before this commit, if you were to log time on a timesheet using the timer start and stop buttons, you could potentially log time for the previous day's or the upcoming day's timesheet entry. This is because we were searching for previously-created timesheet entries based on the UTC Date of the timer's "stop" time. This fix uses the client's local time to get the Date of the timer stop. With this, we'll only find timesheet entries with the `date` field matching the client's local Date. opw-4967487 Forward-Port-Of: odoo/enterprise#93356 Forward-Port-Of: odoo/enterprise#92569
The Hong Kong payroll IR56B report now works more reliably by restoring XML generation and allowing the populate action to be run more than once. This helps payroll teams complete required tax reporting without errors caused by disabled or outdated report fields.
Original PR description
Fixes a few issues with the IR56B report: - Fix the populate button so that it can be pressed multiple times without errors. - Add back the generate XML button in the view. - Fixes an issue in the IRD report model where a renamed field wasn't updated. This re-adds the existing functionality that was wrongly disabled; other improvements are planned for the next version. task-5027501
This fixes Swiss payroll sheet calculation so it no longer unnecessarily recalculates wage-related values after occupation periods are recomputed. As a result, manual adjustments entered by payroll teams are preserved instead of being overwritten.
Original PR description
Following changes in 18.4, compute sheet introduces a recomputation of occupation period which introduces a recomputation of wages, this recomputation is not necessary as it overrides all introduced manual change. Forward-Port-Of: odoo/enterprise#93367