Use a sequence of records, values in write
issue3499 review1641003
This commit is contained in:
1 parent
9da5c5b86b
commit
0ba33d88a2
4 files changed
+52
-44
No files matched your search
+3
-2
@@ -244,8 +244,9 @@ class Location(ModelSQL, ModelView):
|
||||
return locations
|
||||
|
||||
@classmethod
|
||||
def write(cls, locations, vals):
|
||||
super(Location, cls).write(locations, vals)
|
||||
def write(cls, *args):
|
||||
super(Location, cls).write(*args)
|
||||
locations = sum(args[::2], [])
|
||||
cls._set_warehouse_parent(locations)
|
||||
|
||||
ids = [l.id for l in locations]
|
||||
|
||||
@@ -660,31 +660,36 @@ class Move(Workflow, ModelSQL, ModelView):
|
||||
return moves
|
||||
|
||||
@classmethod
|
||||
def write(cls, moves, vals):
|
||||
vals_set = set(vals)
|
||||
if cls._deny_modify_assigned & vals_set:
|
||||
def write(cls, *args):
|
||||
actions = iter(args)
|
||||
for moves, values in zip(actions, actions):
|
||||
vals_set = set(values)
|
||||
if cls._deny_modify_assigned & vals_set:
|
||||
for move in moves:
|
||||
if move.state == 'assigned':
|
||||
cls.raise_user_error('modify_assigned', move.rec_name)
|
||||
if cls._deny_modify_done_cancel & vals_set:
|
||||
for move in moves:
|
||||
if move.state in ('done', 'cancel'):
|
||||
cls.raise_user_error('modify_done_cancel',
|
||||
(move.rec_name,))
|
||||
|
||||
if any(f not in cls._allow_modify_closed_period for f in values):
|
||||
cls.check_period_closed(moves)
|
||||
|
||||
super(Move, cls).write(*args)
|
||||
|
||||
actions = iter(args)
|
||||
for moves, values in zip(actions, actions):
|
||||
for move in moves:
|
||||
if move.state == 'assigned':
|
||||
cls.raise_user_error('modify_assigned', (move.rec_name,))
|
||||
if cls._deny_modify_done_cancel & vals_set:
|
||||
for move in moves:
|
||||
if move.state in ('done', 'cancel'):
|
||||
cls.raise_user_error('modify_done_cancel',
|
||||
(move.rec_name,))
|
||||
|
||||
if any(f not in cls._allow_modify_closed_period for f in vals):
|
||||
cls.check_period_closed(moves)
|
||||
|
||||
super(Move, cls).write(moves, vals)
|
||||
|
||||
for move in moves:
|
||||
internal_quantity = cls._get_internal_quantity(move.quantity,
|
||||
move.uom, move.product)
|
||||
if (internal_quantity != move.internal_quantity
|
||||
and internal_quantity != vals.get('internal_quantity')):
|
||||
cls.write([move], {
|
||||
'internal_quantity': internal_quantity,
|
||||
})
|
||||
internal_quantity = cls._get_internal_quantity(move.quantity,
|
||||
move.uom, move.product)
|
||||
if (internal_quantity != move.internal_quantity
|
||||
and internal_quantity
|
||||
!= values.get('internal_quantity')):
|
||||
cls.write([move], {
|
||||
'internal_quantity': internal_quantity,
|
||||
})
|
||||
|
||||
@classmethod
|
||||
def delete(cls, moves):
|
||||
|
||||
+8
-6
@@ -65,13 +65,15 @@ class Template:
|
||||
cls.raise_user_error(error)
|
||||
|
||||
@classmethod
|
||||
def write(cls, templates, values):
|
||||
def write(cls, *args):
|
||||
if Transaction().user != 0:
|
||||
for field, error in cls._modify_no_move:
|
||||
if values.get(field):
|
||||
cls.check_no_move(templates, error)
|
||||
break
|
||||
super(Template, cls).write(templates, values)
|
||||
actions = iter(args)
|
||||
for templates, values in zip(actions, actions):
|
||||
for field, error in cls._modify_no_move:
|
||||
if values.get(field):
|
||||
cls.check_no_move(templates, error)
|
||||
break
|
||||
super(Template, cls).write(*args)
|
||||
|
||||
|
||||
class Product(object, StockMixin):
|
||||
|
||||
+12
-12
@@ -375,9 +375,9 @@ class ShipmentIn(Workflow, ModelSQL, ModelView):
|
||||
return shipments
|
||||
|
||||
@classmethod
|
||||
def write(cls, shipments, values):
|
||||
super(ShipmentIn, cls).write(shipments, values)
|
||||
cls._set_move_planned_date(shipments)
|
||||
def write(cls, *args):
|
||||
super(ShipmentIn, cls).write(*args)
|
||||
cls._set_move_planned_date(sum(args[::2], []))
|
||||
|
||||
@classmethod
|
||||
def copy(cls, shipments, default=None):
|
||||
@@ -672,9 +672,9 @@ class ShipmentInReturn(Workflow, ModelSQL, ModelView):
|
||||
return shipments
|
||||
|
||||
@classmethod
|
||||
def write(cls, shipments, values):
|
||||
super(ShipmentInReturn, cls).write(shipments, values)
|
||||
cls._set_move_planned_date(shipments)
|
||||
def write(cls, *args):
|
||||
super(ShipmentInReturn, cls).write(*args)
|
||||
cls._set_move_planned_date(sum(args[::2], []))
|
||||
|
||||
@classmethod
|
||||
def delete(cls, shipments):
|
||||
@@ -1223,9 +1223,9 @@ class ShipmentOut(Workflow, ModelSQL, ModelView):
|
||||
return shipments
|
||||
|
||||
@classmethod
|
||||
def write(cls, shipments, values):
|
||||
super(ShipmentOut, cls).write(shipments, values)
|
||||
cls._set_move_planned_date(shipments)
|
||||
def write(cls, *args):
|
||||
super(ShipmentOut, cls).write(*args)
|
||||
cls._set_move_planned_date(sum(args[::2], []))
|
||||
|
||||
@classmethod
|
||||
def copy(cls, shipments, default=None):
|
||||
@@ -1581,9 +1581,9 @@ class ShipmentOutReturn(Workflow, ModelSQL, ModelView):
|
||||
return shipments
|
||||
|
||||
@classmethod
|
||||
def write(cls, shipments, values):
|
||||
super(ShipmentOutReturn, cls).write(shipments, values)
|
||||
cls._set_move_planned_date(shipments)
|
||||
def write(cls, *args):
|
||||
super(ShipmentOutReturn, cls).write(*args)
|
||||
cls._set_move_planned_date(sum(args[::2], []))
|
||||
|
||||
@classmethod
|
||||
def copy(cls, shipments, default=None):
|
||||
|
||||
Reference in new issue
Block a user