Cancel the shipments before deleting it

issue6832
review42711002
This commit is contained in:
Nicolas Évrard committed 2017-10-09 16:49:57 +02:00
1 parent b50f79cade
commit bdd050b04f
1 file changed
+16
+16
View File
@@ -272,6 +272,8 @@ class ShipmentDrop(Workflow, ModelSQL, ModelView):
cls._error_messages.update({
'reset_move': ('You cannot reset to draft move "%s" which was '
'generated by a sale or a purchase.'),
'delete_cancel': ('Drop Shipment "%(shipment)s" must be '
'cancelled before deletion.'),
})
@staticmethod
@@ -386,6 +388,20 @@ class ShipmentDrop(Workflow, ModelSQL, ModelView):
default['moves'] = None
return super(ShipmentDrop, cls).copy(shipments, default=default)
@classmethod
def delete(cls, shipments):
pool = Pool()
Move = pool.get('stock.move')
cls.cancel(shipments)
for shipment in shipments:
if shipment.state != 'cancel':
cls.raise_user_error('delete_cancel', {
'shipment': shipment.rec_name,
})
Move.delete([m for s in shipments for m in s.supplier_moves])
super(ShipmentDrop, cls).delete(shipments)
@classmethod
@ModelView.button
@Workflow.transition('cancel')