[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#62936 X-original-commit: 7e9d052beabe15d932e5d403f8ca2f4837c7d24f Signed-off-by: Nicolas Martinelli (nim) <nim@odoo.com>
This commit is contained in:
@@ -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
|
||||
|
||||
@@ -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)():
|
||||
|
||||
@@ -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)
|
||||
|
||||
Reference in New Issue
Block a user