Daily updates from Odoo
Thursday, August 14, 2025
9 changes · master
Enhancements to existing features
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 invoices with incomplete customer data unless the user deliberately confirms the exception.
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
Brazilian tax localization now supports setting the appropriate CNAE service activity code per invoice line through product NCM setup. This helps companies comply with city-specific tax rules in Avalara calculations and adds a way to maintain CNAE codes when local requirements change.
Original PR description
Some cities require specific CNAE codes to be set on services to determine taxes, benefits, and taxpayer classification. Avalara does not maintain a central table to automatically apply the right…
Some cities require specific CNAE codes to be set on services to determine taxes, benefits, and taxpayer classification. Avalara does not maintain a central table to automatically apply the right CNAE code per city per service as such we must have a way of representing this on the line level. Rather than adding another field on `account.move.line` we can take use of `l10n_br.ncm.code` and add a link to `l10n_br.cnae.code` within the model. This allows products to have specific NCM codes by city and put the right CNAE code on each line. In addition, if new CNAE codes are created or needed by certain states or cities that we don't currently have, a new menu item and view was created to allow for creation or editing of the codes. As such a uniqueness constraint was also added. _Note, these older `l10n_br_*` modules follow an old style of test cases that doesn't really test input and output correctly for the avalara requests, as such, the first commit in this PR makes the new testing style available for all `l10n_br_*` modules by moving it to `l10n_br_avatax`._ _A future PR will rework test cases to this new style._ task-4950444
Belgian payroll users can now manage group insurance export records through regular list and form screens instead of a temporary wizard. This makes past exports easier to review and gives users direct access to eligible employees for the selected period.
Original PR description
In this PR we: - Converted the Group Insurance Export from a wizard-based flow into standard list and form views. - The export records are now displayed in a list view, and creating a new record opens a form view. - A smart button has been added in the form view to access eligible employees for the selected period. Related task: 5010866.
The UAE payroll end of service report now calculates worked years based on the employee’s full time with the company, rather than only days actually worked. This gives businesses a more complete and accurate tenure figure for end of service 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#92311 Forward-Port-Of: odoo/enterprise#84223
The front desk visitor flow now shows available hosts as employee cards grouped by team, instead of requiring users to type into a dropdown. This makes host selection more visual and faster while ensuring visitors can only choose from the hosts configured for that front desk.
Original PR description
Before: - The host selection in the frontdesk interface was a text-based dropdown. - Users had to type at least one character to search for a host. After: - Replaced the host selection dropdown with the attendance-style view. - Displayed employee groups on the left and employee cards on the right, similar to the attendance dashboard. - Only employees listed in the "Hosts" field of the frontdesk configuration are shown. Task-4815540
Odoo Studio now uses a faster and more reliable way to compare and simplify view changes. This reduces misplaced elements and makes edited views cleaner and easier to maintain, especially when customizing forms and reports.
Belgian payroll dashboards now flag employees whose hourly wage is 17 or higher. This helps payroll teams spot employees who may need attention before payroll processing, reducing the risk of missed wage-related checks.
Original PR description
Added a payroll dashboard warning for employees having hourly wage >= 17 Task-4936657
Network IoT devices will now be recorded even when another IoT Box has already detected them. This makes troubleshooting easier and gives users a clearer view of which IoT Box owns or manages 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. Forward-Port-Of: odoo/enterprise#92360
Belgian payroll users can now launch working schedule changes directly from an employee form. They can also index employee contracts from both employee list and form views, making common payroll updates easier to access.
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 Forward-Port-Of: odoo/enterprise#91830