Wednesday, May 17, 2023
38 changes · master
Enhancements to existing features
The Discuss sidebar no longer shows an unexpected grey background when the module opens. This creates a cleaner, less distracting interface while keeping highlighting only for the active sidebar item.
Original PR description
== ISSUE == When opening the Discuss module, there is a weird grey background on the sidebar. == After this commit == This commit removes that style on the element, to keep only a background on the active one. task-3326309 part of task-3326263 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr
When a new company is created, Odoo now automatically prepares a basic Point of Sale setup if POS is installed. This reduces manual setup by creating default shop, payment methods, and restaurant bar configuration when applicable.
Original PR description
A new POS config with the name Shop is created when a new company is created with a dedicated fiscal postion and if point_of_sale is installed. A Bank payement method is created for the POS, as well as a Customer Account payement method. If a there is a cash journal that is not already linked to a payement method it would create a cash payement method for the dedicated POS. If the module pos_restaurantis installed it would also create a POS config with the name Bar of type restaurant with the same specification as for the normal pos config Shop. Since the changes create default configs along with payement methods, there was some conflicts with the test instances. Therefore the payement methods where unlink in the set up of the test to resolve the conflicts. task-3244511 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr
This update streamlines how inventory transfers are created, edited, and validated, making new transfers ready for immediate processing while still allowing teams to switch to a planned workflow when needed. It also improves lot and serial number handling by letting users generate or import serials directly from detailed operations, reducing manual steps and errors across inventory and manufacturing processes.
Original PR description
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
Checkout now shows only shipping methods that customers can actually use for their order. This avoids confusion from displaying delivery options that would later be rejected, making the buying process smoother.
Original PR description
When the customer is ordering something, all the available shipping methods are displayed. If one of those is based on rule and that those rules are not respected, then a error message is displayed and the customer is not allowed to choose it. It is then unnecessary to display it. task-3062417 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
This update improves everyday project management workflows by adding clearer guidance, easier collaborator invitations, better deadline visibility, and smarter defaults for subtasks and invoicing setup. It also polishes customer-facing rating emails and cleans up shared project forms, helping teams work faster with fewer manual steps.
Original PR description
…ject The purpose of this PR is to improve the generic usage of the project app. So, in this PR done following changes: - In project.update right-side panel added helpers in Sales Section and Profitability Section - In the rating request email template made some grammatical changes and added best regards and company information - Hide transparent tags in form view of project sharing - In project.project form view invoicing notebook > employee/SOL mapping : - set the project's default Sol - selecting existing employees should not be possible - allow for on-the-fly employee creation - Added an Invite collaborator button to the list view of project.collaborator - Now the deadline is shown in red if it has passed and the task is still open - The milestone of the parent task should be set by default for its subtasks task-2947578
The credit note wizard now offers direct action buttons for creating a refund or modifying an invoice, instead of asking users to choose from radio options first. The old cancel option has been removed, making the process clearer and reducing extra steps for accounting users.
Original PR description
Description of the issue/feature this PR addresses: simplification of the credit note wizard Current behavior before PR: First users select reverse option (3 radio buttons): 1) refund 2) cancel 3) modify The reverse action is triggered when the users clicks on the "reverse" button Desired behavior after PR is merged: radio button are removed. There is now two buttons that trigger directly the reverse action with the desired option (refund or modify, cancel is removed) task id: 3244377 [mockup](https://app.excalidraw.com/l/65VNwvy7c4X/2812i7OVfBl) --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr
Clicking a user avatar in property fields now opens that user's chat, matching the behavior people expect from standard avatar widgets. Property tags also avoid automatically using white and have improved label alignment, making records clearer and easier to use.
Original PR description
Purpose ======= Like standard avatar widget, we want to open the chatter of a user when clicking on a many2many / many2one avatar property. Task-3208449
Odoo now uses EU VIES VAT validation when deciding whether certain fiscal positions should be applied automatically. This helps ensure cross-border EU tax rules are applied only when a customer’s VAT number is considered valid, while still allowing users to review or manually adjust the result.
Original PR description
The VIES database is a database of EU VAT numbers that can be accessed to confirm the validity of an EU VAT number for cross border transactions within the EU. At present the user can select an…
The VIES database is a database of EU VAT numbers that can be accessed to confirm the validity of an EU VAT number for cross border transactions within the EU. At present the user can select an option in the settings to check VAT numbers against this database. If the VAT number fails this validation, the result is a non-blocking banner message that informs the user that the VIES validation has failed, but has no further ramifications (the user can still use an unrecognised VAT number). This non-blocking functionality is still desirable, however we wish to determine the validity of certain fiscal positions based on whether the VIES VAT check is valid. If VAT is required on a fiscal position, there are new conditions for automatically applying the fiscal position. 1) Is VIES VAT check enabled on the company? If no, then use the normal behaviour. 2) Is the country of the company within Europe, or is the fiscal position one on which a Foreign VAT is defined and the country in which the fiscal position applies is in Europe? If no, then use the normal behaviour. 3) If the answer to the above two questions is yes, then whether the VAT is valid (and the fiscal position is automatically applied) is determined by the the "vies_valid" field on the partner. The boolean "vies_valid" field is added, and populated based on the existing onchange function for the banner, triggered when the VAT/Partner changes. It can be manually edited by the user and changes to this field are tracked in the chatter. It is added to the partner view as a checkbox visible next to the VAT. A computed field is a added such that the "Vies Valid" checkbox is displayed on the partner form conditionally based on whether company has the vies vat check option enabled in the settings. The existing VIES check failed banner and associated field is removed. A hook called _get_vat_required is placed in the method on fiscal position that retrieves the appropriate fiscal position for a given account move, and it is overridden by a function in base_vat, which specifies whether the partner/delivery address matches the 'vat_required' condition based upon the above listed conditions. task-id: `3218194`
This update improves how Odoo checks whether website and web page assets such as JavaScript and CSS are up to date. It reduces repeated file lookups and separates CSS and JavaScript checks, helping pages load faster when asset caches are cold while preparing for further caching improvements.
Original PR description
Note: This pr contains all changes of #116700 regarding assets unique computation except the assets cache. The _glob_static_file is already there to ensure a consistent generation as well as…
Note: This pr contains all changes of #116700 regarding assets unique computation except the assets cache.
The _glob_static_file is already there to ensure a consistent generation as well as preparing the api for the static cache.
During the assets generation/invalidation one of the most expensive task is to
- list all files needed for one assets
- get the timestamp of the file
This is mainly visible when the bundle already exists, but we want to ensure it is up to date.
In prevision of a memory glob, this commit changes the api of multiple call in order to propagate to information from get_path to the AssetBundle, making some optimization, ....
Note that this commit also removes call to `get_module_path` and `get_resource_path` to get a real speedup.
Some values to show speedup linked to all changes:
Assets pregeneration check (enterprise runbot)
Before all changes:
js: ~3s
css: ~1s
After all changes (including static file cache for memory glob):
js: ~0.6s
css: ~0.2s
After this pr (approximated value tested in a different environment):
js: ~1.5s
css: ~0.4s
# Justification of changes:
## split js and css unique
- this will mainly allow to avoid to regenerate css bundle when a js file is modified and vice versa
- this will allow to help to simplify the way the unique is computed, no need to generate WebAssets for all files, we can get
the one of the files of our filetypes in the asset bundle.
## passing debug to the AssetBundle
Before that, the responsibility of passing the debug was given to the `to_node`
This is mainly needed because now the modified time is part of the information given when generating the bundle.
This parameters allows to ignore timestamps given at init if we are in debug=assets. This information is stored on the AssetBundle and there is no need to
## _process_path extraction from _fill_asset_paths
It looks like the instantiation of the closure had a visible impact, a noticeable speedup was observer after extraction.
## is_wildcard_glob**:
```python
# long path: /home/xdo/osrc/master/odoo/addons/web_enterprise/static/js.some_file.js
In [33]: timeit.timeit("""WILDCARD_CHARACTERS.isdisjoint(part)""", """WILDCARD_CHARACTERS = {'*', "?", "[", "]"}; part= '/home/xdo/osrc/master/odoo/addons/web_enterprise/static/js.some_file.js'""")
Out[33]: 0.99594196700491
In [34]: timeit.timeit("""any(char in part for char in WILDCARD_CHARACTERS)""", """WILDCARD_CHARACTERS = ['*', "?", "[", "]"]; part= '/home/xdo/osrc/master/odoo/addons/web_enterprise/static/js.some_file.js'""")
Out[34]: 0.4327025180682
In [35]: timeit.timeit("""'*' in part or '[' in part or ']' in part or '?' in part""", """WILDCARD_CHARACTERS = ['*', "?", "[", "]"]; part= '/home/xdo/osrc/master/odoo/addons/web_enterprise/static/js.some_file.js'""")
Out[35]: 0.122356166015379
# short path: web
In [42]: timeit.timeit("""WILDCARD_CHARACTERS.isdisjoint(part)""", """WILDCARD_CHARACTERS = {'*', "?", "[", "]"}; part= 'web'""")
Out[42]: 0.106310188071802
In [40]: timeit.timeit("""any(char in part for char in WILDCARD_CHARACTERS)""", """WILDCARD_CHARACTERS = ['*', "?", "[", "]"]; part= 'web'""")
Out[40]: 0.41943872300907
In [41]: timeit.timeit("""'*' in part or '[' in part or ']' in part or '?' in part""", """WILDCARD_CHARACTERS = ['*', "?", "[", "]"]; part= 'web'""")
Out[41]: 0.08835467300377786
```
## os.path.join vs os.sep.join
```python
In [49]: timeit.timeit("""os.sep.join([addons_path, *path_parts])""", """import os; addons_path='/home/xdo/osrc/master/odoo/addons';path_parts='web_enterprise/static/js.some_file.js'.split('/')""")
Out[49]: 0.19142860104329884
In [50]: timeit.timeit("""os.path.join(addons_path, *path_parts)""", """import os; addons_path='/home/xdo/osrc/master/odoo/addons';path_parts='web_enterprise/static/js.some_file.js'.split('/')""")
Out[50]: 1.2845886170398444
```
# Security:
## Removal of some checks in get_paths
Checking that the normalized path is in a addons_path with addon and static should be enough.
This is actually more strict than before were only the xml file must be in a static file, the check is also more precise.
After that the fullpath is propagated and if not present, this must be an attachment or a non aggregable asset.
One file was moved from non static directory to static in another pr to make it work here.
After that the fullpath is propagated to _get_asset_paths and _get_asset_content:
```python
if full_path is not None:
files.append({
'atype': mimetype,
'url': path,
'filename': full_path,
'content': '',
'media': media,
'last_modified': last_modified,
})
```
full_path at this point can be False or have the value coming from get_path
FInally AssetBundle still uses file_open to fetch the content as before.Timesheet users will now see more relevant projects and tasks first when searching in selection dialogs. This helps them find the right work item faster by focusing the default results on records related to the user.
Original PR description
1) Add default field for project/task Before this commit searching on project and task display all records in search more dialog without distinction and because of that sometimes it is difficult for user to find a proper record. This commit add default filter on search more dialog to display user related record. task-3251672
This update improves the web interface tutorial and navigation experience by aligning colors, adding helpful guidance in the control panel, and clarifying the hamburger menu naming. These changes make the interface more consistent and easier for users to understand during onboarding.
Original PR description
This PR follows the tutorial of the R&D UX/UI Requires - https://github.com/odoo/enterprise/pull/38340 task-3234820 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr
The master branch release label has been updated to 16.4 alpha. This prepares the product codebase for the next development cycle and helps teams align testing, packaging, and release planning around the new version.
This update adds a test to ensure eSignature fields that depend on restricted access settings behave correctly. It helps reduce the risk of future changes accidentally breaking secure field handling in signing workflows.
The timesheet timer now guides users toward relevant projects and tasks when searching, making it easier to pick the right work item. Users can open existing project or task records for context, while quick creation and editing from the timer fields is restricted to prevent accidental or inappropriate entries.
Original PR description
1) Make task/project field no_create_edit and not no_open Before this commit project and task field is was possible to create and edit task/project it was not good cause user create any type of project and task from there even non allowed timesheet project and not opening project and task it not providing any info of name of record if lots of records have similar name. This commit make task/project no_create_edit and make not no_open. 2) Add default filter on timer fields Before this commit searching on project and task display all records in search more dialog without distinction and because of that sometimes it is difficult for user to find a proper record. This commit add default filter on search more dialog to display user related record. task-3251672
Warehouse transfers now start ready for immediate processing, while teams can still switch to the traditional planned workflow when needed. Serial and lot numbers can now be generated or imported from the detailed operations screen, reducing manual work and improving traceability.
Project update screens now include helpful guidance in the budget section of the right-side panel. This makes it easier for users to understand and work with project budget information during regular project follow-up.
Original PR description
The purpose of this PR is to improve the generic usage of the project app. So, in this PR done following changes: -In project.update right-side panel added helpers in : - Budget Section task-2947578
The Knowledge app now shows the external link button for many-to-one property fields with a transparent style. This makes the interface look cleaner and helps the button blend better with the surrounding field design.
Original PR description
Purpose ======= Make the many2one "external link" button transparent. Task-3208449
When a new company is created, Odoo now automatically prepares default Point of Sale setups when POS is installed. This saves setup time by creating standard shop or restaurant configurations and common payment methods such as bank, customer account, and available cash options.
Original PR description
A new POS config with the name `Shop` is created when a new company is created with a dedicated fiscal postion and if `point_of_sale` is installed. A `Bank` payement method is created for the POS, as well as a `Customer Account` payement method. If a there is a cash journal that is not already linked to a payement method it would create a cash payement method for the dedicated POS. If the module `pos_restaurant`is installed it would also create a POS config with the name `Bar` of type restaurant with the same specification as for the normal pos config `Shop`. Since the changes create default configs along with payement methods, there was some conflicts with the test instances. Therefore the payement methods where unlink in the set up of the test to resolve the conflicts. task-3244511
Resolved issues and error corrections
This fixes a follow-up issue with how channel avatars are handled in Odoo Discuss. Users should see more consistent channel images in conversations, reducing confusion when navigating messages.
Original PR description
follow up of https://github.com/odoo/odoo/pull/117357 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
Miscellaneous changes
**Current behavior before PR:** When user tried to share the survey and the access mode was public (Anyone with the link) , the 'Send by email' button was flickering and not working properly. **Desired behavior after PR is merged:** 'Send by Email' button does not flicker and works properly. Used autosave='False' from https://github.com/odoo/odoo/pull/117103 **Task**-3240813 Forward-Port-Of: odoo/odoo#119327 Forward-Port-Of: odoo/odoo#117993
Original PR description
**Current behavior before PR:** When user tried to share the survey and the access mode was public (Anyone with the link) , the 'Send by email' button was flickering and not working properly. **Desired behavior after PR is merged:** 'Send by Email' button does not flicker and works properly. Used autosave='False' from https://github.com/odoo/odoo/pull/117103 **Task**-3240813 Forward-Port-Of: odoo/odoo#119327 Forward-Port-Of: odoo/odoo#117993
This fixes the tax definition screen so the list view uses the proper amount of space after recent interface changes. Accounting users can now review and manage tax definitions without the list appearing cramped or partially unusable.
Original PR description
With the recent changes "Odoo Milk", the tax definition view was a bit broken, the list view was taking half the space she needed. task-id: 3326941 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr
This update fixes several visual issues in Odoo Discuss after the web client redesign. Users will see clearer sidebar hover feedback, a better dark mode background, a more consistent send button, and aligned header input sizes.
Original PR description
1. show hover effect in discuss sidebar With redesign of web client style, hover effect in discuss sidebar was not longer working. This comes from buttons hover effect no longer having precedence to…
1. show hover effect in discuss sidebar With redesign of web client style, hover effect in discuss sidebar was not longer working. This comes from buttons hover effect no longer having precedence to defined bg classnames, e.g. `bg-100`. This commit fixes the issue by explicitly defining a style for the background when hovering items in the discuss sidebar.  2. improved background color of discuss app in dark mode The background color was too dark. This commit fixes the issue by using `bg-view`, which is the preferred background to put content in both white and dark theme.  3. Send button visual matches composer rounded border Send button lacked its border. This commit fixes the issue by including Send button inside the element that does the pretty rounded border of composer. That way, the border of send button will not longer be affected by change of button style. Also make the send button active / inactive state more visible, by using button link (green when active, muted when inactive).  4. consistent size of input in discuss header Before this commit, input size of thread name was bigger than the description one. This happens because the input is sized according to the font size, and the thread name was bigger due to lead classname. This commit fixes the issue by reducing the padding of input of thread name input, so that both input have the exact same height. 
This update makes several small visual corrections in Odoo Discuss after the MILK redesign. It improves readability, spacing, button clarity, and status indicator placement so users have a cleaner and more consistent messaging experience.
This update adjusts affected tests and related credit note flows after a change removed an outdated cancellation option from the credit note wizard. It helps keep accounting, localization, subscription, commission, helpdesk, and tax reporting checks reliable without changing normal business workflows.
Original PR description
This PR fixes a bunch of tests broken by removal of option 'cancel' for 'refund_method' field on 'account_move_reversal' model (credit note wizard)
Steps to reproduce: In the kanban view of projects, modify the `is_favorite` field of a project and apply the "My Favorites" filter. Cause: No change is saved. Solution: Add autosave for the boolean favorite field. opw-3291991 Forward-Port-Of: odoo/odoo#120313
Original PR description
Steps to reproduce: In the kanban view of projects, modify the `is_favorite` field of a project and apply the "My Favorites" filter. Cause: No change is saved. Solution: Add autosave for the boolean favorite field. opw-3291991 Forward-Port-Of: odoo/odoo#120313
No description available.
Switzerland changes its rates at the beginning of next year, this change already has some implications on client's flow so we add them to the localization so they can coexist with old rates till the end of the year. Changes: - Added new taxes (2.5% -> 2.6%, 3.7% -> 3.8%, 7.7% -> 8.1%) - Added tax fiscal positions to match those taxes - Added tax groups - Adds migration script to l10n_ch to apply those changes Note newly created taxes will be inactive on new installations but active for
Original PR description
Switzerland changes its rates at the beginning of next year, this change already has some implications on client's flow so we add them to the localization so they can coexist with old rates till the end of the year. Changes: - Added new taxes (2.5% -> 2.6%, 3.7% -> 3.8%, 7.7% -> 8.1%) - Added tax fiscal positions to match those taxes - Added tax groups - Adds migration script to l10n_ch to apply those changes Note newly created taxes will be inactive on new installations but active for databases that retrieved them through module update. Task: 3162286 Add translation of taxes name and description in case of multilang localization. Forward-Port-Of: odoo/odoo#121469 Forward-Port-Of: odoo/odoo#113001
- Create a Deferred Revenue Model on a Current Liability account - Create a Sale Order yourself (User 1), with Salesperson User 2 - Create the invoice from it - Remove the salesperson from the invoice and add User 3 instead - Change the account to the Revenue Model's one - Post the invoice - Post the deferred revenue created => User 2 is follower of the entries generated The problem is that the context comes from the sales order, and contains a `default_user_id` in the context. The sol
Original PR description
- Create a Deferred Revenue Model on a Current Liability account - Create a Sale Order yourself (User 1), with Salesperson User 2 - Create the invoice from it - Remove the salesperson from the invoice and add User 3 instead - Change the account to the Revenue Model's one - Post the invoice - Post the deferred revenue created => User 2 is follower of the entries generated The problem is that the context comes from the sales order, and contains a `default_user_id` in the context. The solution provided is to remove it from the context given, as it serves no purpose (the invoices are already created). opw-3141495 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#121514 Forward-Port-Of: odoo/odoo#120419
- Add missing account tag on repartition line taxes to fix the report 104 amounts for per tax Description of the issue/feature this PR addresses: The Ecuadorian localization report 104, shows wrong amounts per tax. Current behavior before PR: The Ecuadorian localization report 104, shows wrong amounts per tax. Desired behavior after PR is merged: Show correctly base and net amounts per tax in Ecuadorian localization report 104. --- I confirm I have signed the CLA and read the PR
Original PR description
- Add missing account tag on repartition line taxes to fix the report 104 amounts for per tax Description of the issue/feature this PR addresses: The Ecuadorian localization report 104, shows wrong amounts per tax. Current behavior before PR: The Ecuadorian localization report 104, shows wrong amounts per tax. Desired behavior after PR is merged: Show correctly base and net amounts per tax in Ecuadorian localization report 104. --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#121326 Forward-Port-Of: odoo/odoo#121095
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#118626
Original PR description
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#118626
This pull request updates Odoo's release information for the SaaS 16.3 version. It helps align the product metadata with the current release so deployments and version references are consistent.
Steps to reproduce the bug: - Enable “subcontracting” in the mrp settings - Create a storable product “P1”: - Add a vendor: - supplier: “Azure interior” - currency: euro - price: 20 - Add a BoM: - Type: subcontracting - add any product as component - Save - Check that the currency of the company is in dollars - Click on Compute Price from BoM button in the product form Problem: The seller's price is not converted into dollars opw-33
Original PR description
Steps to reproduce the bug:
- Enable “subcontracting” in the mrp settings
- Create a storable product “P1”:
- Add a vendor:
- supplier: “Azure interior”
- currency: euro
- price: 20
- Add a BoM:
- Type: subcontracting
- add any product as component
- Save
- Check that the currency of the company is in dollars
- Click on Compute Price from BoM button in the product form
Problem:
The seller's price is not converted into dollars
opw-3321346
Forward-Port-Of: odoo/odoo#121281
Forward-Port-Of: odoo/odoo#121063Cast website_id so that if it contains more than 1 digit, we do not browse() a tuple with each digit. For example, if we pass pagenew() the website_id '123', this is the current behavior: - browse('1', '2', '3') After this fix: - browse(123) To reproduce the erroneous behavior: - Create at least 10 websites so that the id of this website is at least in the double digits. - Create a new page for the website with a double digit id. Issue was introduced in this commit: https://git
Original PR description
Cast website_id so that if it contains more than 1 digit, we do not browse() a tuple with each digit. For example, if we pass pagenew() the website_id '123', this is the current behavior:
- browse('1', '2', '3')
After this fix:
- browse(123)
To reproduce the erroneous behavior:
- Create at least 10 websites so that the id of this website is at least in the double digits.
- Create a new page for the website with a double digit id.
Issue was introduced in this commit: https://github.com/odoo/odoo/commit/d6014c60acc4231a5e56d492d2a39deaf789cbe8
opw-3290571
---
I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr
Forward-Port-Of: odoo/odoo#121486Description of the issue/feature this PR addresses: - Adding PND53 and PND3 tax tags to tax data - Additional Thai states - Translations for accounting terms 2879718 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#118319 Forward-Port-Of: odoo/odoo#113331
Original PR description
Description of the issue/feature this PR addresses: - Adding PND53 and PND3 tax tags to tax data - Additional Thai states - Translations for accounting terms 2879718 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#118319 Forward-Port-Of: odoo/odoo#113331
When unit prices have more than 2 digits, it is currently not reflected in the UBL formats. Consequently, the line amounts are not equal to the unit price * quantity (assume there is no discount, charges or allowance) and it raises validation errors: "Invoice line net amount MUST equal (Invoiced quantity * (Item net price/item price base quantity) + Sum of invoice line charge amount - sum of invoice line allowance amount". To fix this, we no longer round the unit prices. NB: the decimal ac
Original PR description
When unit prices have more than 2 digits, it is currently not reflected in the UBL formats. Consequently, the line amounts are not equal to the unit price * quantity (assume there is no discount, charges or allowance) and it raises validation errors: "Invoice line net amount MUST equal (Invoiced quantity * (Item net price/item price base quantity) + Sum of invoice line charge amount - sum of invoice line allowance amount". To fix this, we no longer round the unit prices. NB: the decimal accuracy should be set in the settings (otherwise, the default is 2 digits for unit prices). See https://docs.peppol.eu/poacc/billing/3.0/bis/#_rounding opw-3290035 Forward-Port-Of: odoo/odoo#121573 Forward-Port-Of: odoo/odoo#120821
This pull request marks the repository for the SaaS 16.3 release. It appears to be a release housekeeping change rather than a functional update, helping align versioning and deployment tracking for the business release cycle.
Steps to reproduce: - install sale_management, crm and partner_commission; - create a commission plan with two rules for the same category of product but one with a product and one without; - link this commission plan and a partner level to a partner in "Partner Assignment" tab; - create an order with the product specified in the rule. Issue: The commission plan applied is not the right one. Cause: To find the commission plan rule to apply, we order all possible rules with the follo
Original PR description
Steps to reproduce: - install sale_management, crm and partner_commission; - create a commission plan with two rules for the same category of product but one with a product and one without; - link…
Steps to reproduce: - install sale_management, crm and partner_commission; - create a commission plan with two rules for the same category of product but one with a product and one without; - link this commission plan and a partner level to a partner in "Partner Assignment" tab; - create an order with the product specified in the rule. Issue: The commission plan applied is not the right one. Cause: To find the commission plan rule to apply, we order all possible rules with the following order: `product_id`, `template_id`, `pricelist_id`. Then we take the first rule. The desired result is that if there is a `product_id` defined, it is at the top of the list. Unfortunately, to sort the `product_id`, we use the following order: `'priority desc, default_code, name, id'`. The null ids will not necessarily be in the last position and vice versa. Solution: Order the rules by sequence. This solution is intuitive. With all the rules that match, we take the one we have defined as the first. opw-3285638 Forward-Port-Of: odoo/enterprise#41108