diff options
| author | Adrien Widart <awt@odoo.com> | 2021-05-12 14:41:40 +0000 |
|---|---|---|
| committer | Adrien Widart <awt@odoo.com> | 2021-05-18 07:18:55 +0000 |
| commit | 2eee690d307e5a55dd2fc6ac05124ddd9c496da5 (patch) | |
| tree | 651ced801846d99dc590c483fbb8c9d85eec553c /addons | |
| parent | 13ff118da832a339d9cb43d74bf0b5dd0cf3c036 (diff) | |
[FIX] mrp: use MO's UoM on unbuild order creation
On unbuild order creation, when the user selects a manufacturing order,
the UoM of the quantity will be defined with the product's UoM instead
of MO's UoM.
To reproduce the error:
(Use demo data)
1. In Settings > General Settings, enable "Units of Measure"
2. Create two products P_finished and P_compo
- Both are storable
- Qty on Hand of P_compo = 12
3. Create a Bill of Material
- Product: P_finished
- Component: 1 x P_compo
4. Create a Manufacturing Order MO
- Product: P_finished
- Quantity To Produce: 1 Dozen(s)
5. Check Availability, Produce, Mark as Done
6. Create an Unbuild Order:
- Manufacturing Order: MO
Error: The unit of measure of the quantity is incorrect, this is
Unit(s), it should be Dozen(s)
The method `onchange_mo_id` defines the product, therefore the method
`onchange_product_id` is also called and here is the issue:
`onchange_product_id` will override the UoM using the product's UoM.
OPW-2467017
closes odoo/odoo#70904
X-original-commit: b80321acd5553466862b5c2c56cff014765ecf99
Signed-off-by: William Henrotin <Whenrow@users.noreply.github.com>
Signed-off-by: Adrien Widart <adwid@users.noreply.github.com>
Diffstat (limited to 'addons')
| -rw-r--r-- | addons/mrp/models/mrp_unbuild.py | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/addons/mrp/models/mrp_unbuild.py b/addons/mrp/models/mrp_unbuild.py index 95f13ac7fa3..77537b55d0e 100644 --- a/addons/mrp/models/mrp_unbuild.py +++ b/addons/mrp/models/mrp_unbuild.py @@ -116,7 +116,7 @@ class MrpUnbuild(models.Model): def _onchange_product_id(self): if self.product_id: self.bom_id = self.env['mrp.bom']._bom_find(product=self.product_id, company_id=self.company_id.id) - self.product_uom_id = self.product_id.uom_id.id + self.product_uom_id = self.mo_id.product_id == self.product_id and self.mo_id.product_uom_id.id or self.product_id.uom_id.id @api.constrains('product_qty') def _check_qty(self): |
