91a9aaa45a1e455331fe53a27e30295a58e72d1d
Steps to reproduce: Decimal Accuracy - Product Price = 2 - create a product `alc 50%` with BOM (10 unites = 1 unit Water [cost=0.14]; 1 unit Alc [cost=0.08]) - Set `quantity on hands` = 10,000 - Trigger `Compute Price from BoM` -> In Reporting > Inventory Valuation; click on the layer; in Other Info: You will see "Product value manually modified (from 0.0 to 0.022000000000000002)" => It can cause computing mistakes as we changed the costs Cause: The value is calculated as the difference between the New Price (cost) and and the current Product Standard Price (cost). But, on one hand the Product Standard Price is rounded to the number of digits defined in the Decimal Accuracy for the Product Price. On the other hand, the New Price is used as is with no rounding. If we add an extra step and modify the cost of the Water to 0.45 and trigger again the `Compute Price from BoM` we will have: "Product value manually modified (from 0.02 to 0.053000000000000005)" Solution: Use for the New Price the same rounding precision as we use for the Standard Price. Example: Product Price/unit -------------------------- Water 0.14 Alc. 100% 0.08 BoM: Alc. 50% Product Quantity Needed -------------------------- Water 0.1 Alc. 100% 0.1 Cost/unit of Alc. 50%: 0.022 => 0.02 (standard_price is rounded) Set Quantity on Hand: 10,000 Stock Valuation: 200 = 10,000 * 0.02 => The standard_price is rounded to the second digit when intialized Product Price/unit -------------------------- Water 0.45 Alc. 100% 0.08 BoM: Alc. 50% Product Quantity Needed -------------------------- Water 0.1 Alc. 100% 0.1 Cost/unit of Alc. 50%: 0.053 Set Quantity on Hand: 10,000 Stock Valuation WITHOUT FIX: 530 = 200 (first layer) + 330 (second layer) = 0.02 * 10,000 + (0.053-0.02) * 10,000 Stock Valuation WITH FIX: 500 = 200 (first layer) + 300 (second layer) = 0.02 * 10,000 + (0.05-0.02) * 10,000 => Without fix, the value is computed with the rounded standard_price and the not rounded new_price. => With fix, the new_price is rounded the same way as the standard_price opw-2724975 closes odoo/odoo#88616 X-original-commit: 2d6f4213af7464c5fe737e2e9265454cf9711020 Signed-off-by: William Henrotin (whe) <whe@odoo.com> Signed-off-by: yosa-odoo <yosa@odoo.com>
…
…
Odoo
Odoo is a suite of web based open source business apps.
The main Odoo Apps include an Open Source CRM, Website Builder, eCommerce, Warehouse Management, Project Management, Billing & Accounting, Point of Sale, Human Resources, Marketing, Manufacturing, ...
Odoo Apps can be used as stand-alone applications, but they also integrate seamlessly so you get a full-featured Open Source ERP when you install several Apps.
Getting started with Odoo
For a standard installation please follow the Setup instructions from the documentation.
To learn the software, we recommend the Odoo eLearning, or Scale-up, the business game. Developers can start with the developer tutorials
Languages
Python
49.6%
JavaScript
47.8%
SCSS
2%
CSS
0.3%
HTML
0.2%