[REF] stock_account: _get_in_svl_vals for stock.move

Part-of: odoo/odoo#99411
This commit is contained in:
svs-odoo
2022-09-12 13:49:15 +02:00
committed by Arnold Moyaux
parent acc1c48921
commit 8bce06f9b6
+19 -15
View File
@@ -159,21 +159,7 @@ class StockMove(models.Model):
:param forced_quantity: under some circunstances, the quantity to value is different than
the initial demand of the move (Default value = None)
"""
svl_vals_list = []
for move in self:
move = move.with_company(move.company_id)
valued_move_lines = move._get_in_move_lines()
valued_quantity = 0
for valued_move_line in valued_move_lines:
valued_quantity += valued_move_line.product_uom_id._compute_quantity(valued_move_line.qty_done, move.product_id.uom_id)
unit_cost = abs(move._get_price_unit()) # May be negative (i.e. decrease an out move).
if move.product_id.cost_method == 'standard':
unit_cost = move.product_id.standard_price
svl_vals = move.product_id._prepare_in_svl_vals(forced_quantity or valued_quantity, unit_cost)
svl_vals.update(move._prepare_common_svl_vals())
if forced_quantity:
svl_vals['description'] = 'Correction of %s (modification of past move)' % move.picking_id.name or move.name
svl_vals_list.append(svl_vals)
svl_vals_list = self._get_in_svl_vals(forced_quantity)
return self.env['stock.valuation.layer'].sudo().create(svl_vals_list)
def _create_out_svl(self, forced_quantity=None):
@@ -366,6 +352,24 @@ class StockMove(models.Model):
journal_id = accounts_data['stock_journal'].id
return journal_id, acc_src, acc_dest, acc_valuation
def _get_in_svl_vals(self, forced_quantity):
svl_vals_list = []
for move in self:
move = move.with_company(move.company_id)
valued_move_lines = move._get_in_move_lines()
valued_quantity = 0
for valued_move_line in valued_move_lines:
valued_quantity += valued_move_line.product_uom_id._compute_quantity(valued_move_line.qty_done, move.product_id.uom_id)
unit_cost = abs(move._get_price_unit()) # May be negative (i.e. decrease an out move).
if move.product_id.cost_method == 'standard':
unit_cost = move.product_id.standard_price
svl_vals = move.product_id._prepare_in_svl_vals(forced_quantity or valued_quantity, unit_cost)
svl_vals.update(move._prepare_common_svl_vals())
if forced_quantity:
svl_vals['description'] = 'Correction of %s (modification of past move)' % move.picking_id.name or move.name
svl_vals_list.append(svl_vals)
return svl_vals_list
def _get_src_account(self, accounts_data):
return self.location_id.valuation_out_account_id.id or accounts_data['stock_input'].id