Raise a warning when the warehouse of a purchase differs from its purchase request

issue6132
review29861002
This commit is contained in:
Nicolas Évrard
2017-12-10 14:55:58 +01:00
parent c71761fd2c
commit 333c02891e
2 changed files with 27 additions and 0 deletions
+2
View File
@@ -1,3 +1,5 @@
* Warns when the warehouse of a purchase differs from its purchase requests
Version 4.6.0 - 2017-10-30
* Bug fixes (see mercurial logs for details)
* Remove required on request origin
+25
View File
@@ -32,6 +32,10 @@ class Purchase:
'delete_purchase_request': ('You can not delete the purchase'
' "%(purchase)s" because it is linked to at least one'
' purchase request.'),
'warehouse_request_purchase_mismatch': ('The warehouse'
' "%(purchase_warehouse)s" of purchase "%(purchase)s"'
' is different of the warehouse "%(request_warehouse)s"'
' of the linked purchase request.'),
})
@classmethod
@@ -50,6 +54,27 @@ class Purchase:
'purchase': purchase.rec_name,
})
@classmethod
@ModelView.button
@Workflow.transition('confirmed')
def confirm(cls, purchases):
for purchase in purchases:
purchase.check_request_warehouse()
super(Purchase, cls).confirm(purchases)
def check_request_warehouse(self):
for line in self.lines:
for request in line.self_requests:
if request.warehouse != self.warehouse:
w_name = 'check_request_warehouse_%s_%s_%s' % (
self.id, self.warehouse.id, request.warehouse.id)
self.raise_user_warning(
w_name, 'warehouse_request_self_mismatch', {
'purchase': self.rec_name,
'purchase_warehouse': self.warehouse.rec_name,
'request_warehouse': request.warehouse.rec_name,
})
@classmethod
@ModelView.button
@Workflow.transition('cancel')