Daily updates from Odoo
Thursday, August 14, 2025
15 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 Belgian salary package setup now keeps specialized tax-related fields hidden by default, making job position forms cleaner for everyday users. Job position lists are also easier to use because users can click directly into the related form view.
Original PR description
made intellectual property and withholding taxes exemption field hidden by default. made job position list clickable to directly access form view. task-4936345
Appraisal statuses now use the same colors across the progress bar, ribbon, and list view. This makes it easier for users to recognize whether an appraisal is to confirm, confirmed, or done at a glance.
Original PR description
Make colors consistent across appraisal's progress bar, ribbon, list view. Let the colors None/Green/Violet for To Confirm/Confirmed/Done. task-4730368
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
The referral app now uses updated wording when employees share a job link on Twitter/X. This keeps the shared message aligned with the platform's current branding and improves the candidate-facing sharing experience.
Original PR description
update message when sharing job link in twitter/x. task-4678199
Jordan payroll now supports more locally required salary calculations, including overtime, sick leave, unpaid leave, end-of-service payments, remaining leave compensation, provisions, and updated income tax exemptions. HR teams can also configure annual leave handling and capture employee or contract details needed for compliant payroll processing.
Original PR description
- Added a new option in settings to set the "Annual Leave" time-off type. - Added new fields in 'hr.employee' for: - Is Blind - Has Dependants - Eligible for EOS - Is Residant of Jordan - Remaining…
- Added a new option in settings to set the "Annual Leave" time-off type.
- Added new fields in 'hr.employee' for:
- Is Blind
- Has Dependants
- Eligible for EOS
- Is Residant of Jordan
- Remaining Annual Leave Balance (for calculation only)
- Added new fields in 'hr.contract' for:
- Is Commision based
- Number of Leave Days
- Removed 'l10n_jo_tax_exemption' field from 'hr.contract' as it was not needed anymore
- Added new Working Schedule for Jordan 'Jordan Working Schedule'
- Added new rule parameter 'Jordan Tax Exemption Amount'
- Added new Payslip Other Input types for Jordan
- Weekdays Overtime Hours
- Restdays Overtime Hours
- Updated Salary Rules
- [ADD] Out of Contract rule.
- [ADD] Sick Leave calculation
- [ADD] Unpaid leave calculation.
- [ADD] End of service calculation.
- [ADD] Remaining leaves compensation.
- [ADD] Provisions.
- [AMEND] Income Tax exemptions.
- [ADD] Over-time.
- [AMEND] Change the name of the rules related to social security to SSC-Company and SSC-Employee.
- [ADD] EOS Taxation, and exemptions.
task-4589634This update organizes web client translations under clearer namespaces across several Odoo Enterprise areas. It helps keep wording consistent and easier to maintain for multilingual users, with no expected change to everyday workflows.
Original PR description
Community: https://github.com/odoo/odoo/pull/220596
The employee form now presents personal documentation details more clearly by combining visa and work permit information, improving labels and tooltips, and adding passport expiration tracking. This helps HR teams review key employee document dates more easily and reduces confusion in the personal information section.
Original PR description
In this PR, we introduced minor enhancements to the personal section in the employee form view, mainly merging Visa & Work permit sections, inhancing the expires on label for visa and work permit, update and adding new tooltip, and adding a new field for the passport expiration date. Community PR: https://github.com/odoo/odoo/pull/216883 Related task: 4911224.