summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorNicolas Martinelli <nim@odoo.com>2020-11-30 14:35:56 +0000
committerNicolas Martinelli <nim@odoo.com>2020-12-07 06:33:50 +0000
commit7e9d052beabe15d932e5d403f8ca2f4837c7d24f (patch)
treebafe2314e8ce216cd3b2c59465c8ab1b5906989f
parent383b12977062cacc6ff0f553d7012029268be1ec (diff)
[FIX] stock_account, stock_landed_costs: do not create SVL for consumable
The creation of a Stock Valuation Layer is useless in case of a Consumable product. At best it is useless, at worst it causes inconsistencies when the user switch from a Consumable to a Storable type. closes odoo/odoo#62679 Signed-off-by: Nicolas Martinelli (nim) <nim@odoo.com>
-rw-r--r--addons/sale_stock_margin/tests/test_sale_stock_margin.py1
-rw-r--r--addons/stock_account/models/stock_move.py2
-rw-r--r--addons/stock_landed_costs/tests/test_stock_landed_costs.py2
3 files changed, 4 insertions, 1 deletions
diff --git a/addons/sale_stock_margin/tests/test_sale_stock_margin.py b/addons/sale_stock_margin/tests/test_sale_stock_margin.py
index 5de45112b1b..09647269020 100644
--- a/addons/sale_stock_margin/tests/test_sale_stock_margin.py
+++ b/addons/sale_stock_margin/tests/test_sale_stock_margin.py
@@ -30,6 +30,7 @@ class TestSaleStockMargin(TestStockValuationCommon):
def _create_product(self):
product_template = self.env['product.template'].create({
'name': 'Super product',
+ 'type': 'product',
})
product_template.categ_id.property_cost_method = 'fifo'
return product_template.product_variant_ids
diff --git a/addons/stock_account/models/stock_move.py b/addons/stock_account/models/stock_move.py
index 2c90c4af584..033aa1149ac 100644
--- a/addons/stock_account/models/stock_move.py
+++ b/addons/stock_account/models/stock_move.py
@@ -234,7 +234,7 @@ class StockMove(models.Model):
# Init a dict that will group the moves by valuation type, according to `move._is_valued_type`.
valued_moves = {valued_type: self.env['stock.move'] for valued_type in self._get_valued_types()}
for move in self:
- if float_is_zero(move.quantity_done, precision_rounding=move.product_uom.rounding):
+ if float_is_zero(move.quantity_done, precision_rounding=move.product_uom.rounding) or move.product_id.type == 'consu':
continue
for valued_type in self._get_valued_types():
if getattr(move, '_is_%s' % valued_type)():
diff --git a/addons/stock_landed_costs/tests/test_stock_landed_costs.py b/addons/stock_landed_costs/tests/test_stock_landed_costs.py
index 89847cedc56..9e86cdf6c0e 100644
--- a/addons/stock_landed_costs/tests/test_stock_landed_costs.py
+++ b/addons/stock_landed_costs/tests/test_stock_landed_costs.py
@@ -20,6 +20,7 @@ class TestStockLandedCosts(TestStockLandedCostsCommon):
'weight': 10,
'volume': 1,
'categ_id': self.stock_account_product_categ.id,
+ 'type': 'product',
})
product_landed_cost_2 = self.env['product.product'].create({
@@ -27,6 +28,7 @@ class TestStockLandedCosts(TestStockLandedCostsCommon):
'weight': 20,
'volume': 1.5,
'categ_id': self.stock_account_product_categ.id,
+ 'type': 'product',
})
self.assertEqual(product_landed_cost_1.value_svl, 0)