Use default value when copying "updated" fields of stock move
Since 6c611c520744, the readonly of field is enforced so the copied value of boolean field must be the default value for readonly fields. Closes #15148
This commit is contained in:
@@ -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'
|
||||
|
||||
@@ -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):
|
||||
|
||||
@@ -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)
|
||||
|
||||
Reference in New Issue
Block a user