diff --git a/modules/production/stock.py b/modules/production/stock.py index 5700f1bfe8..5d45926ae5 100644 --- a/modules/production/stock.py +++ b/modules/production/stock.py @@ -157,6 +157,10 @@ class Move(metaclass=PoolMeta): ('production_output' + nested, operator, operand, *extra), ] + @classmethod + def default_production_cost_price_updated(cls): + return False + def set_effective_date(self): if not self.effective_date and self.production_input: self.effective_date = self.production_input.effective_start_date @@ -175,6 +179,14 @@ class Move(metaclass=PoolMeta): def _rec_name_origin(self): return super()._rec_name_origin() or self.production + @classmethod + def copy(cls, moves, default=None): + default = default.copy() if default is not None else {} + default.setdefault( + 'production_cost_price_updated', + cls.default_production_cost_price_updated()) + return super().copy(moves, default=default) + class ProductQuantitiesByWarehouseMove(metaclass=PoolMeta): __name__ = 'stock.product_quantities_warehouse.move' diff --git a/modules/stock/move.py b/modules/stock/move.py index b5e3ea7473..f38ffd6708 100644 --- a/modules/stock/move.py +++ b/modules/stock/move.py @@ -1035,6 +1035,8 @@ class Move(Workflow, ModelSQL, ModelView): default.setdefault('internal_quantity', 0) default.setdefault('cost_price') default.setdefault('outcome_moves', None) + default.setdefault( + 'unit_price_updated', cls.default_unit_price_updated()) return super().copy(moves, default=default) def compute_fields(self, field_names=None): diff --git a/modules/stock_conversion/stock.py b/modules/stock_conversion/stock.py index 9f3ca560e1..71510ff0bd 100644 --- a/modules/stock_conversion/stock.py +++ b/modules/stock_conversion/stock.py @@ -601,6 +601,10 @@ class Move(metaclass=PoolMeta): super().__setup__() cls._allow_modify_closed_period.add('conversion_cost_price_updated') + @classmethod + def default_conversion_cost_price_updated(cls): + return False + @classmethod def _get_origin(cls): return [*super()._get_origin(), 'stock.conversion'] @@ -616,3 +620,11 @@ class Move(metaclass=PoolMeta): if m.state == 'done' and isinstance(m.origin, Conversion)], {'conversion_cost_price_updated': True}) + + @classmethod + def copy(cls, moves, default=None): + default = default.copy() if default is not None else {} + default.setdefault( + 'conversion_cost_price_updated', + cls.default_conversion_cost_price_updated()) + return super().copy(moves, default=default)