From cf6d7479d57f9483809779dd363b7f201bd3368c Mon Sep 17 00:00:00 2001 From: Josse Colpaert Date: Tue, 5 May 2015 18:20:35 +0200 Subject: [PATCH] [IMP] Stock valuation: Avoid consumables with real-time valuation When the product is a consumable, avoid to use real-time valuation, by adapting the onchange in the views and making the valuation field invisible when the product is a consumable / service. --- addons/product/product.py | 6 ++++++ addons/product/product_view.xml | 2 +- addons/stock_account/product.py | 12 ++++++++++++ addons/stock_account/product_view.xml | 4 ++-- 4 files changed, 21 insertions(+), 3 deletions(-) diff --git a/addons/product/product.py b/addons/product/product.py index c599ce77b7d..c96926dd35d 100644 --- a/addons/product/product.py +++ b/addons/product/product.py @@ -651,6 +651,9 @@ class product_template(osv.osv): res = False return res + def onchange_type(self, cr, uid, ids, type): + return {} + def onchange_uom(self, cursor, user, ids, uom_id, uom_po_id): if uom_id: return {'value': {'uom_po_id': uom_id}} @@ -1021,6 +1024,9 @@ class product_product(osv.osv): self.pool.get('product.template').unlink(cr, uid, unlink_product_tmpl_ids, context=context) return res + def onchange_type(self, cr, uid, ids, type): + return {} + def onchange_uom(self, cursor, user, ids, uom_id, uom_po_id): if uom_id and uom_po_id: uom_obj=self.pool.get('product.uom') diff --git a/addons/product/product_view.xml b/addons/product/product_view.xml index 59ba1df1193..429ac0ce4f9 100644 --- a/addons/product/product_view.xml +++ b/addons/product/product_view.xml @@ -72,7 +72,7 @@ - + diff --git a/addons/stock_account/product.py b/addons/stock_account/product.py index 391a5e811b5..5ff124384b1 100644 --- a/addons/stock_account/product.py +++ b/addons/stock_account/product.py @@ -58,6 +58,11 @@ class product_template(osv.osv): 'valuation': 'manual_periodic', } + def onchange_type(self, cr, uid, ids, type): + res = super(product_template, self).onchange_type(cr, uid, ids, type) + if type in ('consu', 'service'): + res = {'value': {'valuation': 'manual_periodic'}} + return res def get_product_accounts(self, cr, uid, product_id, context=None): """ To get the stock input account, stock output account and stock journal related to product. @@ -151,7 +156,14 @@ class product_template(osv.osv): return True +class product_product(osv.osv): + _inherit = 'product.product' + def onchange_type(self, cr, uid, ids, type): + res = super(product_product, self).onchange_type(cr, uid, ids, type) + if type in ('consu', 'service'): + res = {'value': {'valuation': 'manual_periodic'}} + return res class product_category(osv.osv): diff --git a/addons/stock_account/product_view.xml b/addons/stock_account/product_view.xml index 97eb7a05722..4369af76690 100644 --- a/addons/stock_account/product_view.xml +++ b/addons/stock_account/product_view.xml @@ -37,9 +37,9 @@ - + - +