Monday, March 30, 2026
13 changes · 18.0
Enhancements to existing features
This update simplifies the process of creating sale order lines within the repair module. By separating the value generation logic into a new method, it now becomes easier for developers to customize and adapt this functionality for specific needs. This change enhances flexibility and maintainability of the repair module.
Original PR description
* This change moves the logic of generating sale.order.line values into a new method _prepare_repair_so_line_vals(), allowing easier extension and override in custom modules. 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 Forward-Port-Of: odoo/odoo#213506
Resolved issues and error corrections
This update ensures that payment references are automatically updated when an invoice name is changed, improving invoice tracking and reconciliation. Currently, only the invoice name was updated, but this fix synchronizes the payment reference and related account move lines for accurate payment processing. This resolves an issue where payment details weren't consistently reflecting name changes.
Original PR description
Issue: Updating the invoice name should update the payment reference if the invoice isn't already sent. Step to reproduce: - Create an invoice, - Post it, - Draft it, - Change name, - Post it again, Current behavior: only the invoice name change Expected behavior: - invoice name change - payment_reference update - linked account_move_line labeled payment_term are updated as payment_term _inverse_payment_reference trigger a recompute of the right account move line name. opw-5428471
This update resolves a test failure related to the calculation of AVS deductions in the Swiss payroll module. The issue stemmed from an incorrect date calculation within the test environment, specifically when simulating data from 2027. The fix uses a temporary date freeze to ensure consistent test results.
Original PR description
[FIX] l10n_ch_hr_payroll_elm_transmission: fix avs test for faketime build
Bug reproduction:
1 - v.17->run test_generic_avs_deductions test with faketime 2027-01-01 12:00 UTC->test fails
Bug cause:
1 - In the test, compute_sheet()->_get_payslip_lines->_compute_rule->_get_avs_rates is called
2 - There is a line like that if line.date_from <= target and (not line.date_to or target <= line.date_to)
3 - I looked to avs_line_ids = fields.One2many(default=_get_default_avs_line_ids)
4 - In _get_default_avs_line_ids -> 'date_from': fields.Date.today().replace(month=1, day=1) date_from is calculated like that -> when the year is 2027, the date_from is 2027-01-01 and it is bigger than the target in the test.
Bug solution:
1 - I used @freeze_time("2026-02-28") in my test to prevent this behavior.
Runbot Error Link: https://runbot.odoo.com/odoo/runbot.build.error/240992
task - 6018940
Forward-Port-Of: odoo/enterprise#109975This update clarifies the error message displayed when an upsell start date is set after the next invoice date. This change ensures users receive clearer guidance, preventing potential issues with subscription setup and improving the overall user experience. It's a simple fix to enhance usability.
Original PR description
Update the error message when an upsell start date is on or after the next invoice date, so it be more clear for the users. task-5893032 Forward-Port-Of: odoo/enterprise#106757
This update resolves an issue where PDF generation failed when users uploaded empty XML files. The fix skips PDF extraction when raw data is missing, preventing errors and ensuring consistent PDF creation. This improves the reliability of the documents account module.
Original PR description
Currently an error is generated and the file is not generated when the user uploads an empty XML file (e.g., ref file [1]). Error: `AttributeError: 'bool' object has no attribute 'decode'` This error occurs because the uploaded file contains no raw data. As a result, the system fails to retrieve the file content during PDF extraction from the XML at line [2]. This commit fixes the issue by skipping PDF extraction from the XML when the document has no raw data. The process now returns False early if the document contains no raw content. [1]: https://drive.google.com/file/d/1hRbgEsTL-iWhiAO245z_10HRH6nh3rUQ/view?usp=sharing [2]: https://github.com/odoo/enterprise/blob/00e2e658312eda2d3dae04eb966fd538972e5243/documents_account/models/documents_document.py#L52 sentry-7173452999
This update fixes a visual issue in the time off management Gantt chart. Previously, refused time off requests weren't clearly highlighted, making it difficult to see which requests were declined. This change ensures that refused time off is visually struck through, improving clarity and accuracy for managers.
Original PR description
Before this commit, the gantt view in Management > Time off menu does not strike the time off refused. The reason is because the wrong js_class is used inside that view. This commit updates the js_class to use inside that view to make sure the time off refused are striked. Issue similar to https://github.com/odoo/odoo/issues/248868
This update ensures that when an invoice's name is changed, the corresponding payment reference is automatically updated as well. Previously, only the invoice name was modified. This change improves payment tracking accuracy and consistency, particularly when invoices are edited after posting.
Original PR description
Issue: Updating the invoice name should update the payment reference if the invoice isn't already sent. Step to reproduce: - Create an invoice, - Post it, - Draft it, - Change name, - Post it again, Current behavior: only the invoice name change Expected behavior: - invoice name change - payment_reference update - linked account_move_line labeled payment_term are updated opw-5428471 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr
This update fixes a labeling issue with the 0% VAT rate used for sales outside the EU in Sweden. The name and associated grid were incorrectly identified, leading to potential reporting inaccuracies. This change ensures correct tax calculations and reporting for Swedish businesses.
Original PR description
Currently, the tax for "VAT Sale of service outside EU 0%" has the 0% EU RS name and is associated with the se_39 grid. Since it is for outside the EU, it's name should be 0% EX RS and the grid should be se_40 opw-5798152 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#251750
This update resolves a minor discrepancy in downpayment invoice amounts caused by currency rounding. Previously, calculations resulted in a slight difference (1 cent) between downpayments and the final invoice. Removing the rounding during downpayment creation ensures accurate amount calculations and prevents these discrepancies.
Original PR description
Issue: The currency rounding on line_vals in downpayment cause discrepancies in amount. Steps to reproduce: 1- Create a SO with a line having unit_price = 145.05. 2- Create two downpayment invoices of 30% and 70%. 3- Create a final invoice which results in 1 cent difference. Cause: This is due to the currency rounding after applying the ratio on price_unit because: order.currency_id.round(line_vals['price_unit'] * .3) + order.currency_id.round(line_vals['price_unit'] * .7) != order.currency_id.round(line_vals['price_unit']) In our case: currency_round(145.05 * .3) = 43.515 = 43.52 currency_round(145.05 * .7) = 101.535 = 101.54 Which the sum would be 145.06 != 145.05 commit adding round: #105177 Fix: Removing the currency rounding on downpayment would fix the issue. opw-5493781 opw-6005434
The URL used to send e-invoices to the Serbian government has been updated. This update ensures that our Odoo system continues to correctly file e-invoices, complying with Serbian regulations. This change was necessary due to a recent update from the Serbian government.
Original PR description
**PROBLEM** The url to send e-invoice to the serbian government has changed. opw-6055622 Forward-Port-Of: odoo/odoo#256095
This update ensures that refused time off requests are now visually marked on the calendar view within the Overview menu. Previously, these requests weren't highlighted, leading to potential confusion. This change brings consistency to the calendar display and improves the clarity of time off requests.
Original PR description
Before this commit, the calendar view in Overview menu does not strike the time off refused. The reason is because `is_strike` field is not fetched inside that view. This commit adds the field in the view to make sure the time off refused are striked as it is the case in the other menus. Closes #248868
This update resolves an issue where Odoo displayed a warning message to users when uploading files without a password. The change now ensures the system correctly checks for a password during saving, eliminating this confusing and unnecessary notification. This improves the user experience and prevents potential frustration.
Original PR description
Before the change, when the user uploads a file, Odoo automatically shown a warning message saying that the content of the file or the password are incorrect. Now the system does not show the warning when a password is not set and checks if the password is set when saving task-6036219 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr
This update resolves an issue where import XML definitions were not fully updated after a previous change. The commit removes outdated tag references (<report> and <act_window>) from the core import file, ensuring consistency and proper functionality of Odoo's import process. This maintains the integrity of how Odoo imports data.
Original PR description
`<report>` and `<act_window>` tags has been removed in https://github.com/odoo/odoo/pull/98138, but not in the import_xml.rng file. This commit removes the two tags from the file. Forward-Port-Of: odoo/odoo#220116