Tuesday, March 11, 2025
10 changes
8 changes
Enhancements to existing features
This update adds support for Belgium's CCT90 non-recurring results-based bonus scheme in payroll. It helps employers calculate and process these bonuses more accurately within Belgian payroll workflows.
Original PR description
task-4609727
This update adjusts how dropdown state is handled in the Gantt view, helping the interface behave more consistently. It is a small usability improvement for teams using planning or scheduling views.
Changes to a Mexico electronic invoicing setting are now recorded in the activity log. This helps businesses notice accidental changes to a setting that can affect the fiscal structure of generated CFDI documents.
Original PR description
Because the field l10n_mx_edi_cfdi_to_public affects the structure of the cfdi generated and this has a fiscal impact the field was made tracked so that if anyone by error enables or disables this field a log note is generated informing this event
Belgian CP200 payroll now supports recording salary advances separately and automatically recovering them on the regular monthly payslip. This makes payroll clearer for HR teams and reduces confusion by renaming the deduction to “Salary Advance Recovery.”
Original PR description
This commit improves how salary advances are managed. Now, there is a new structure type within the CP200 structure that allows to create a payslip with a salary advance amount as an other input. When generating the CP200 monthly payslip, the total salary advance already granted is added as an editable other input 'Salary Advance Recovery', which is deducted from the total net. This commit also renamed the existing 'Salary Advance' input type and rule (which represented a recovery) to 'Salary Advance Recovery' to avoid confusion with the initial salary advance. task-3614756
Employees can now mark bank accounts as trusted from their employee record without requiring the account to follow IBAN formatting. This makes payroll bank account handling consistent across screens and better supports countries where non-IBAN accounts are common, such as the US.
Original PR description
When trusting a bank account from the employee's form view, a check was performed to verify that the bank account has a valid IBAN. This check is not performed on the bank account form view as a bank account (e.g. in the US) does not necessarily follow the IBAN format. This commits remove the IBAN validity check on the employee form view for consistency with the bank account view. task-4613593
Updated WhatsApp-related tests to match the latest message payload format, helping ensure the system continues to validate messaging behavior correctly. This is an internal quality improvement with no expected change for day-to-day users.
Original PR description
PR community: https://github.com/odoo/odoo/pull/180745 PR upgrade: https://github.com/odoo/upgrade/pull/6722
This update streamlines how Kenya OSCU e-invoicing information is handled for products that have only one variant. It reduces duplicated setup work and helps keep product reporting data more consistent.
Original PR description
Related to: - https://github.com/odoo/odoo/pull/189001
Recruiters can now send interview scheduling emails that create meetings linked directly to the candidate application. This makes application records easier to track and avoids incorrect reuse of shared calendar invitations across candidates.
Original PR description
Goal --- When a "Schedule interview" mail template is sent from an application, if the recipient uses the link the schedule a meeting, the meeting should be linked on the smart button on the…
Goal
---
When a "Schedule interview" mail template is sent from an application,
if the recipient uses the link the schedule a meeting, the meeting
should be linked on the smart button on the application form.
Note
---
Previously we had a demo "Schedule Intreview" mail template, from which
a recipient could schedule an interview -- but the `appointment.invite`
was the same for all recipients and the meeting would not be linked back
to the application.
Changes
---
* Edit appointment booking route to take an applicant_code in the url
* The applicant_code makes it possible to match calendar event with
applicants at creation time
(not just an applicant_id to avoid "attackers" guessing ids)
* the mail template now creates an invite link for the recruiter's
`anytime` appointment type and the current applicant.
* Remove applicant_id from appointment invites
* instead we append the applicant_code to the url when copying the link
to share
* all other buttons in this view also append the applicant_code
* Note: this is needed because the field relation made it impossible to
use the same invite for several applicants
Beneficial "Side Effects"
---
* This makes it so we don't have to regenerate an invite for every
applicant when sending a link for a specific appointment type
* Fix the following bug:
* when admin has no `anytime` appointment type -- go to the
calendar view from the applicant form button.
* *Share Calendar* -- the invite's applicant is the current one
* repeat for another applicant -- no new invite is generated and the
applicant stays the same.
task-42519112 changes
Enhancements to existing features
Opening the Replenishment view is now much faster in databases with many automatically triggered replenishment rules. The change avoids unnecessary calculations when there are no relevant manual replenishment records to clean up, reducing wait times significantly.
Original PR description
Issue --> When the Replenishment view is opened, the method `_unlink_processed_orderpoints` is called to remove previously automatically created orderpoints that have since been refilled. In this…
Issue -->
When the Replenishment view is opened, the method `_unlink_processed_orderpoints` is called to remove previously automatically created orderpoints that have since been refilled. In this method, the search domain contains `qty_to_order` which causes computations to fulfil the search query. The search_query also contains `("trigger", "=", "manual")`. Even if the recordset for this leaf is 0, the `qty_to_order` computations still occur, only to return 0 records in the search.
Solution -->
Move the `qty_to_order <= 0` check after the search produces a recordset for `("trigger", "=", "manual")`. This avoids unnecessary computations.
Benchmarks -->
For this benchmark, we'll assume the worst case, where every orderpoint on the database has trigger set to `auto`. The number of seconds represents the time taken to open the Replenishment view.
| # of auto trigger orderpoints | Before | After |
|--------|--------|--------|
| 12.2k | 155.58 s | 4.49 s |
| 6k | 59.87 s | 3.78 s |
opw-4606704HR teams can now import time off allocations that use accrual plans more reliably. When an accrual plan is provided, the allocation type is set automatically, and allocation duration values are compatible with export and import workflows.
Original PR description
Problem ---------- It is impossible to import batch of data with allocation_type set to 'accrual' and an allocation duration Objective ---------- - DO NOT make it possible by removing the readonly attribute on the allocation_type field - Allow the user to set directly an accrual plan and the allocation_type will be set automatically accordingly - Same fot the allocation duration make it importable Solution ---------- - Accrual plan : create an inverse, if accrual plan exists set allocation type to accrual else regular - Allocation duration, make an inverse to make it compatible export/import. It will parse the float value from the string. task-4521658