From b0c06e21e37f52f7b10a6db1e67dca02d7741feb Mon Sep 17 00:00:00 2001 From: Nicolas Martinelli Date: Thu, 3 Sep 2015 15:06:13 +0200 Subject: [PATCH] [IMP] purchase: double validation minimum amount --- addons/purchase/company.py | 2 ++ addons/purchase/company_view.xml | 1 + addons/purchase/purchase.py | 10 ++++++---- addons/purchase/purchase_view.xml | 5 +---- 4 files changed, 10 insertions(+), 8 deletions(-) diff --git a/addons/purchase/company.py b/addons/purchase/company.py index eea108573b9..46827a93708 100644 --- a/addons/purchase/company.py +++ b/addons/purchase/company.py @@ -17,3 +17,5 @@ class company(models.Model): ('two_step', 'Get 2 levels of approvals to confirm a purchase order') ], string="Levels of Approvals", default='one_step',\ help="Provide a double validation mechanism for purchases") + po_double_validation_amount = fields.Monetary(string='Double validation amount', default=5000,\ + help="Minimum amount for which a double validation is required") diff --git a/addons/purchase/company_view.xml b/addons/purchase/company_view.xml index 5a8a112ba28..e57d15acb84 100644 --- a/addons/purchase/company_view.xml +++ b/addons/purchase/company_view.xml @@ -11,6 +11,7 @@ + diff --git a/addons/purchase/purchase.py b/addons/purchase/purchase.py index 14fd845f054..2985406e5c2 100644 --- a/addons/purchase/purchase.py +++ b/addons/purchase/purchase.py @@ -280,12 +280,14 @@ class PurchaseOrder(models.Model): line.product_id.write(vals) # Deal with double validation process - if self.user_has_groups('purchase.group_purchase_manager'): + if self.po_double_validation == 'one_step'\ + or (self.po_double_validation == 'two_step'\ + and self.amount_total < self.env.user.company_id.currency_id.compute(self.company_id.po_double_validation_amount, self.currency_id))\ + or self.user_has_groups('purchase.group_purchase_manager'): return self.button_approve() - elif self.po_double_validation == 'two_step': - self.write({'state': 'to approve'}) else: - return self.button_approve() + self.write({'state': 'to approve'}) + return {} @api.multi def button_cancel(self): diff --git a/addons/purchase/purchase_view.xml b/addons/purchase/purchase_view.xml index cf72b1e2c60..a24ad02cbc5 100644 --- a/addons/purchase/purchase_view.xml +++ b/addons/purchase/purchase_view.xml @@ -151,10 +151,7 @@