Monday, March 25, 2024
7 changes · 17.0
Resolved issues and error corrections
This fix corrects the identification number used when submitting Dutch tax reports to the tax authorities (Belastingdienst) through the SBR system. Previously, the wrong number was being used, which could cause submission failures or misidentification. The fix introduces a new field to properly capture and use the correct omzetbelastingnummer (VAT identification number) for accurate tax report submissions.
Original PR description
The wrong number was used for identifying the user to the Belastingdienst through SBR when submitting their Tax Report. This new field has to be added through a new module but will be correctly merged in master. opw-3786956 Forward-Port-Of: odoo/enterprise#58872 Forward-Port-Of: odoo/enterprise#58485
This update fixes a memory issue that was preventing large Winbooks file imports from completing on standard servers. By optimizing how data is processed during import, the memory requirement has been cut in half—from 3.1GB down to 1.6GB—making it possible to import large files on typical 2GB worker systems. The update also provides a clearer error message when files are imported incorrectly.
Original PR description
Importing large winbooks zip files can sometimes lead to a MemoryError. For instance, importing 360 000 account.moves in one go requires 3.1Gb of allocated memory, too much for a 2gb worker. This…
Importing large winbooks zip files can sometimes lead to a MemoryError. For instance, importing 360 000 account.moves in one go requires 3.1Gb of allocated memory, too much for a 2gb worker. This commit uses the fact that the get_dbfrecords function returns an iterator. The result_iterator yields all the items that pass the BOOKYEAR and DOCNUMBER condition. Also, yielding a frozendict allows to remove duplicate at the time of building the grouped defaultdict instead of when consuming the dbfrecords iterator. That's because frozendict are hashable. By removing the intermediate recs and result local variables in `_import_move`, the memory peak drops to 1.6Gb, allowing to import the winbooks export on a 2gb worker. Add a more user-friendly error when there is no sub_zips in the main zip container. This can happen if the customer extracts the winbooks archive and tries to import the sub_zip directly. #### Benchmark Customer v17 database importing a 102Mb zip winbooks export containing 357825 moves. ##### Memray stats before PR, peak at 3.1Gb  ##### Memray stats after PR, peak at 1.6Gb  Forward-Port-Of: odoo/enterprise#56059
This fix prevents users from modifying the rounding setting while a point of sale session is open. Previously, changing this setting during an active session could cause accounting discrepancies and result in unbalanced financial records. This change ensures data integrity by locking the rounding configuration until the session is closed.
Original PR description
Prior to this commit, the rounding setting could be modified while a session was open. This could potentially cause accounting discrepancies and lead to unbalanced account moves. opw-3677480 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#157690 Forward-Port-Of: odoo/odoo#157447
This fix prevents the critical admin user account from being accidentally deleted, which was causing thousands of support tickets. The admin user is referenced throughout the system in group configurations, and deleting it breaks application installations and causes errors. Users can still archive the account if needed for billing purposes, but deletion is now blocked to maintain system stability.
Original PR description
Purpose ======= Tremendous amount of support tickets (ex: 3800405) are opened because the user_admin has been removed and is referenced everywhere, leading to tracebacks or the impossibility to…
Purpose
=======
Tremendous amount of support tickets (ex: 3800405) are opened because the user_admin has been removed and is referenced everywhere, leading to tracebacks or the impossibility to install a new application as res.group configurations all relies on this, like:
<record id="group_helpdesk_manager" model="res.groups">
<field name="name">Administrator</field>
<field name="category_id" ref="base.module_category_services_helpdesk"/>
<field name="implied_ids" eval="[(4, ref('group_helpdesk_user'))]"/>
<field name="users" eval="[(4, ref('base.user_root')), (4, ref('base.user_admin'))]"/>
</record>
We could adapt all the occurences (severeal hundreds) to ensure robustness but this won't prevent developer from introducing new use cases + the user can be archived instead if we want to remove him from the pricing.
TaskID: 3802440
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#158620
Forward-Port-Of: odoo/odoo#158068This fix prevents users from accidentally deleting the default website menu, which was causing critical issues when installing new modules or creating new websites. The default menu is essential infrastructure that new features like shop and event pages depend on, so protecting it ensures the system remains functional.
Original PR description
Purpose ======= Lots of tickets (e.g. 3775298) are created because the default menu as been deleted, leading to the impossibility to install a new module, as the parent_id for new menus like /shop or /event are directly referencing the website.main_menu record, or to the impossibility to create a new website. TaskID: 3802440 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#158595 Forward-Port-Of: odoo/odoo#158070
This fix prevents users from accidentally removing master account tags, which are critical data used to define your chart of accounts. By protecting these essential tags from deletion, the system ensures your accounting structure remains intact and prevents operational issues that could arise from missing account definitions.
Original PR description
This data is used in the chart of account definition and could put the end user into a bad situation. Related ticket: 3790614 Forward-Port-Of: odoo/odoo#158367 Forward-Port-Of: odoo/odoo#157571
This fix prevents unexpected errors in the web editor that could cause the editor to crash and delete all content before saving. The issue occurred when resetting editor content, which could trigger a chain of errors leading to data loss. The fix ensures the editor handles edge cases gracefully without crashing.
Original PR description
A traceback was spotted when `unserializeNode` was called as a result of a call to `resetContent`. That traceback could lead to other tracebacks (including one when trying to read a history step's ID in `_historyMakeSnapshot`). A traceback at that moment could remove all the content of the editor before saving. This commit ensures the argument passed to `unserializeNode` is defined, that `unserializeNode` returns `undefined` if it couldn't return anything valid, and that when such is the case the caller handles that undefined return value properly. task-3677431 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#158009