mirror of
https://github.com/OCA/stock-logistics-warehouse.git
synced 2025-01-21 14:27:28 +02:00
36 lines
1.4 KiB
Python
36 lines
1.4 KiB
Python
# Copyright 2022 ForgeFlow
|
|
# License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl).
|
|
from odoo import api, fields, models
|
|
|
|
|
|
class StockValuationLayer(models.Model):
|
|
_inherit = "stock.valuation.layer"
|
|
|
|
total_value_with_additional_costs = fields.Float(
|
|
string="Total value (with additional costs)",
|
|
compute="_compute_original_layer_values",
|
|
help="This is the sum of the total value's layer and total value of child layers",
|
|
store=True,
|
|
)
|
|
unit_price_with_extra_cost = fields.Float(
|
|
string="New unit price (with additional costs)",
|
|
compute="_compute_original_layer_values",
|
|
help="This is the unit cost after the additional costs are added",
|
|
store=True,
|
|
)
|
|
|
|
@api.depends("stock_valuation_layer_ids")
|
|
def _compute_original_layer_values(self):
|
|
for rec in self:
|
|
if len(rec.stock_valuation_layer_ids):
|
|
children_value = sum(rec.stock_valuation_layer_ids.mapped("value"))
|
|
total_value = rec.value + children_value
|
|
new_unit_price = (
|
|
(total_value / rec.quantity) if rec.quantity else rec.unit_cost
|
|
)
|
|
else:
|
|
total_value = rec.value
|
|
new_unit_price = rec.unit_cost
|
|
rec.total_value_with_additional_costs = total_value
|
|
rec.unit_price_with_extra_cost = new_unit_price
|