Daily updates from Odoo
Monday, January 12, 2026
6 changes · master
Enhancements to existing features
This update modifies the Vietnamese chart of accounts to align with recent accounting regulations (Circular 99/2025). This change is necessary to ensure compliance with updated Vietnamese accounting standards, taking effect in January 2026. It impacts financial reporting for Vietnamese businesses using the Odoo Enterprise system.
Original PR description
Update the COA for the vietnamese localization, which is based on the circular 200/2014 by the new one based on the circular 99/2025. This new COA applies starting in Jan. 2026 task-5357470 Forward-Port-Of: odoo/enterprise#103823 Forward-Port-Of: odoo/enterprise#102843
This update enhances the skills evolution report by comparing each employee's last appraisal for every year, providing a more complete historical view. If a specific year lacks an appraisal, the report now defaults to the previous year's data, ensuring a more robust and accurate report. This change improves reporting accuracy and provides more comprehensive insights into employee skill development.
Original PR description
Repurposed the report, to compare the last appraisal per year for each employee, instead of only the last two appraisals. In case some year does not have an appraisal, fallback to the previous appraisal. Task-5106696
This update enhances the user experience for payrun management by organizing payslips and displaying total monetary amounts. It also introduces a system for flagging potential issues during payrun creation, providing clearer warnings and errors that escalate as needed.
Original PR description
### [IMP] hr_payroll: Payrun UX improvement - Order payslips by state then by employee name. - Show total amounts of monetary columns in the payslip list. ### [IMP] \*hr_payroll\*: unify payslip…
### [IMP] hr_payroll: Payrun UX improvement
- Order payslips by state then by employee name.
- Show total amounts of monetary columns in the payslip list.
### [IMP] \*hr_payroll\*: unify payslip issue computation using issue definitions
- Replace `_get_errors_by_slip` and `_get_warnings_by_slip` methods with a unified `_get_issue_definitions()`.
- Each issue is now defined as a generator function (`generate_issues`) that receives a payslip and an optional context, returning either a single issue or a list of issues.
- `context` (optional): Precomputed context data needed for evaluating the issue, e.g., related payslips for negative net reporting.
- `is_error` (optional callable): A function that receives the slip and context and returns True if the issue should be treated as an error (`danger`), False otherwise. This enables to show the issue as a warning or an error conditionally.
- Each issue dictionary can include the following keys:
- `message` (str): The descriptive message to display for the issue. (required)
- `action_text` (str, optional): Label for a link/action related to the issue.
- `action` (dict or recordset, optional): Target action to open or navigate to the related record(s).
Issues show starting from Payrun creation:
Errors by default show up as warnings from the start till a specific stage or a condition is met, they turn into blocking errors.
Task-5156866This update streamlines the calculation of SA salary allowances by introducing a dedicated category. Previously, allowances were summed individually, which was inefficient. This change ensures accurate and optimized allowance totals for Saudi Arabian employees.
Original PR description
purpose: optimizing and cleaning the way to get allowances in SA salary rules to get the total allowance instead of calling all allowances and taking their sum each time they are needed. current behavior: - add a salary rule category for SA allowances - replaced the occurrences where the all allowances are used with the category for SA allowances task-id: 5170229
This update allows procurement specialists to order replenishment stock from any partner, not just vendors listed in the pricelist. Previously, users had to manually add partners or create purchase orders. This change streamlines the replenishment process and offers greater purchasing flexibility.
Original PR description
Description of the issue/feature this PR addresses: When using the replenish wizard, and the route is buy, as a procurement specialist, I can only use vendors in the product pricelist. However, as a…
Description of the issue/feature this PR addresses: When using the replenish wizard, and the route is buy, as a procurement specialist, I can only use vendors in the product pricelist. However, as a procurement specialist, I should be able to order a replenishment from any partner (and if the PO is confirmed this partner will be added to vendor list automatically) . Current behavior before PR: To replenish a product from a partner that is not in vendor pricelist from the replenish wizard, currently I must either add him to the pricelist or make a purchase order. Desired behavior after PR is merged: 1 Allow replenishement from any partner in the replenishement wizard, by changing the supplier search box from vendor list only to vendor first, in blue, and then all partners in normal display. 2 Allow to create and edit partner from the supplier search box (no-quick create) 3 Make sure that the logic of selecting the right vendor pricelist based on quantity logic is unaltered. Community PR: https://github.com/odoo/odoo/pull/213488 task: [4314668](https://www.odoo.com/odoo/project/966/tasks/4314668) I confirm I have signed the CLA and read the PR guidelines at [www.odoo.com/submit-pr](http://www.odoo.com/submit-pr)
This update addresses persistent warning displays on pay runs, reducing user confusion and preventing 'warning fatigue'. It also restricts access to validate pay runs containing errors to authorized Officers and Managers, strengthening compliance and security.
Original PR description
Purpose ======= Users reported "infinite warnings" on Pay Runs: warnings persist visually even after a manager explicitly validates the run, leading to "warning fatigue" where users stop checking…
Purpose
=======
Users reported "infinite warnings" on Pay Runs: warnings persist visually even after a manager explicitly validates the run, leading to "warning fatigue" where users stop checking them entirely. Additionally, Payroll Assistants currently have the ability to validate Pay Runs containing errors or warnings, which poses a compliance risk. Validation of risky runs should be restricted to Officers and Managers.
Specification
=============
1. **Visuals (Status Bubble):** When a Pay Run reaches a final state ('Done', 'Paid', 'Cancelled'), the status bubble should no longer display "Warning" or "Error" colors/labels. It should revert to the standard "Done" or "Paid" state (green/purple) to indicate the process is complete.
2. **Access Control:** Restrict the `action_validate` method on `hr.payslip.run`. Users with only the "Payroll Assistant" role (who do not have the "Officer" group) must be prevented from validating runs that contain warnings or errors. Officers and Managers retain the ability to override these warnings.
Changes
=======
* **JS (`StatusBubble`):** Modified `get selection()` to ignore warning/error counters if the state is in `['02_close', '03_paid', '04_cancel']`.
* **XML (`StatusBubble` template):** Updated conditional classes (`bg-warning`, `bg-danger`, `fa-exclamation`) to suppress warning styles when in final states.
* **Python (`hr.payslip.run`):** Overridden `action_validate` to raise a `UserError` if the current user lacks the `hr_payroll.group_hr_payroll_officer` group AND the run contains warnings or errors.
task-5476175