Thursday, August 14, 2025
12 changes · saas-18.4
Enhancements to existing features
Draft invoices no longer show outstanding credit or debit messages when the related payment widget is already hidden. This keeps the invoice screen consistent and reduces confusion for users reviewing invoices that are not yet posted.
Original PR description
Before this commit: --- Draft invoices can be reconciled with payments via the Bank Reconciliation screen, but the Outstanding Payments widget is hidden to avoid confusion. However, outstanding credits/debits messages were still displayed on draft invoices, leading to inconsistency. In this commit: --- Updated the form to hide outstanding credits/debits messages when the invoice is in draft, making the behavior consistent. Before: --- <img width="1258" height="298" alt="image" src="https://github.com/user-attachments/assets/376b3799-e721-4bd6-bf9c-cb56ca02bb5f" /> After: --- <img width="1258" height="257" alt="image" src="https://github.com/user-attachments/assets/374e33d5-c406-44c1-9309-40c124b45451" /> task-4987833 Forward-Port-Of: odoo/odoo#221680
Employee profile images now keep the same size while creating and after saving an employee record. This avoids a visual jump between the placeholder avatar and the default saved image, making the HR form feel more polished and consistent.
Original PR description
Problem: the employee image avatar placeholder when creating a new employee is larger than the default image when saving the record. This commit adds a max width for the employee avatar image so that the default image is the same size as the placeholder before saving the record. task-4879346 Description of the issue/feature this PR addresses: Current behavior before PR: Desired behavior after PR is merged: --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr
This update adds Mexican 16% withholding tax options with new split distributions, along with the related accounts and fiscal positions needed to apply them correctly. It also improves rounding precision for existing 10.67% taxes, helping accounting calculations better match required tax handling.
Original PR description
Add few 16% taxes with special distribution (1/3 - 2/3 and 1/4 - 3/4). Also add few accounts and a new fiscal position for each new tax. Also adjust the rounding precision of 10.67% taxes. Linked:https://github.com/odoo/enterprise/pull/83582 task-4571928 Forward-Port-Of: odoo/odoo#222930 Forward-Port-Of: odoo/odoo#206406
The eInvoicing format dropdown now uses clearer, country-aware labels when configuring customer invoicing settings. This makes it easier for users to choose the right format without needing to understand technical names, reducing confusion across several localizations.
Original PR description
Renamed the selection labels for invoice_edi_format field to make them easier to understand based on the user's country context when choosing format inside customer's account tab. This improves the usability of the dropdown when selecting an eInvoicing format, especially for users in localizations where the technical name was unclear or confusing. 4889699 shzi Forward-Port-Of: odoo/odoo#220397
This update makes duplicating Italian electronic invoicing document types more user-friendly. Instead of immediately triggering an error because the copied record has the same code, the form view now helps users adjust the duplicate properly.
Original PR description
In https://github.com/odoo/odoo/commit/3e557745f16c33ab3c1b5984d6297913a8849024, we added a contraint to avoid same code. The "issue" with that is that the Duplicate option instantly raises the constraint. It's not really user-friendly. --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#222611 Forward-Port-Of: odoo/odoo#218933
This update adds standardized helper methods for finding employee contract versions and selecting the right contract for a date range. It helps HR-related features use contract data more consistently, reducing duplicate logic and the risk of inconsistent results.
Original PR description
Problem ---------- Normalize the way to retrieve contracts of employees Objective ---------- Create 2 helper functions : `_get_contract_versions` To retrieve for each employee, a list of versions recordset, one for each contract, ordered by date_version. Make the function flexible by adding date_range to filter the search. And additional domain option. `_get_contracts` It uses the previous function. To retrieve for each employee a single version recordset as contracts Add the option to retrive the first before date_start or latest version within the daterange task-4984245
This update adds new Mexican 16% withholding tax configurations with supported split distributions, along with the related accounts and fiscal positions. It also improves rounding precision for existing 10.67% taxes, helping invoices and payments align more accurately with local tax requirements.
Original PR description
Add few 16% taxes with special distribution (1/3 - 2/3 and 1/4 - 3/4). Also add few accounts and a new fiscal position for each new tax. Also adjust the rounding precision of 10.67% taxes. Linked:https://github.com/odoo/odoo/pull/206406 task-4571928 Forward-Port-Of: odoo/enterprise#92347 Forward-Port-Of: odoo/enterprise#83582
Creating a payroll pay run is now quicker because users choose only the start date with a simple date picker instead of a date range popup. The end date is still calculated automatically and remains editable when manual adjustments are needed.
Original PR description
To ensure a smoother UX, the `daterange` widget has been replaced, as `date_end` is already calculated based on the selected `date_start`. Previous behavior: When creating a pay run and selecting `date_start`, a date range popup was displayed. This required two clicks, even though `date_end` was already auto-filled. New behavior: A simple date picker is used for `date_start`. The `date_end` remains editable so it can still be updated manually if needed. Task: 5005903
Network IoT devices will now have records even when another IoT Box has already detected them. This makes it easier to troubleshoot device ownership and understand which IoT Box is linked to each device.
Original PR description
We used not to create records for network IoT devices if they were already detected by another IoT Box on the database. This is making the debugging more complex, and doesn't make sense anymore as we show the IoT Box owning the device in many2x fields.
Belgian payroll users can now access employee-related payroll actions directly from employee records. This makes it quicker to change working schedules and index contracts without navigating elsewhere.
Original PR description
Added the working schedule change server action to form view of employee, and added index contracts server action to list and form view of employee. Task ID: 4900046
Mexican electronic invoicing now warns users before sending an invoice when the customer is missing required country or ZIP information and the invoice is not marked as CFDI to Public. This helps prevent sending issues and prompts users to correct or intentionally override the default behavior.
Original PR description
Adding a warning and a check to account.move.send constraints for trying to send an invoice for a customer that doesn't have either country or ZIP specified, when 'CFDI to Public' is set to False (requires user action to override default behavior). task-4963869 Forward-Port-Of: odoo/enterprise#91655
The UAE payroll end-of-service report now calculates worked years based on the full period an employee has been with the company, rather than only counting actual worked days. This helps produce more complete and consistent service duration figures for end-of-service calculations and reporting.
Original PR description
- update the calculation for the worked years in the end of service report to return the whole duration worked with the comapny not just the actual worked days. Task: 4703337 Forward-Port-Of: odoo/enterprise#92234 Forward-Port-Of: odoo/enterprise#84223