Call workflow of purchase when deleting moves

Improve workflow test on write of move
This commit is contained in:
Cédric Krier committed 2009-03-31 14:22:45 +02:00
1 parent bee52e5587
commit c321f6439d
1 file changed
+29 -5
+29 -5
View File
@@ -1667,19 +1667,43 @@ class Move(ModelSQL, ModelView):
res = super(Move, self).write(cursor, user, ids, vals,
context=context)
if 'state' in vals and vals['state'] in ('cancel',):
purchase_ids = []
if isinstance(ids, (int, long)):
ids = [ids]
purchase_ids = set()
purchase_line_ids = purchase_line_obj.search(cursor, user, [
('moves', 'in', ids),
], context=context)
if purchase_line_ids:
for purchase_line in purchase_line_obj.browse(cursor, user,
purchase_line_ids, context=context):
if purchase_line.purchase.id not in purchase_ids:
purchase_ids.append(purchase_line.purchase.id)
purchase_obj.workflow_trigger_validate(cursor, user, purchase_ids,
'packing_update', context=context)
purchase_ids.add(purchase_line.purchase.id)
if purchase_ids:
purchase_obj.workflow_trigger_validate(cursor, user,
list(purchase_ids), 'packing_update', context=context)
return res
def delete(self, cursor, user, ids, context=None):
purchase_obj = self.pool.get('purchase.purchase')
purchase_line_obj = self.pool.get('purchase.line')
if isinstance(ids, (int, long)):
ids = [ids]
purchase_ids = set()
purchase_line_ids = purchase_line_obj.search(cursor, user, [
('moves', 'in', ids),
], context=context)
res = super(Move, self).delete(cursor, user, ids, context=context)
if purchase_line_ids:
for purchase_line in purchase_line_obj.browse(cursor, user,
purchase_line_ids, context=context):
purchase_ids.add(purchase_line.purchase.id)
if purchase_ids:
purchase_obj.workflow_trigger_validate(cursor, user,
list(purchase_ids), 'packing_update', context=context)
return res
Move()