From dddc108b11d62ce6ff1d54401bdd20286f890ebe Mon Sep 17 00:00:00 2001 From: Fabien Pinckaers Date: Sun, 6 Jan 2013 00:29:19 +0100 Subject: [PATCH] [FIX] UoM change on invoice line bzr revid: fp@openerp.com-20130105232919-4yrejqrupmev3psg --- addons/account/account_invoice.py | 9 ++++----- 1 file changed, 4 insertions(+), 5 deletions(-) diff --git a/addons/account/account_invoice.py b/addons/account/account_invoice.py index c9cf90789cb..250a0446534 100644 --- a/addons/account/account_invoice.py +++ b/addons/account/account_invoice.py @@ -1484,11 +1484,10 @@ class account_invoice_line(osv.osv): new_price = res_final['value']['price_unit'] * currency.rate res_final['value']['price_unit'] = new_price - if result['uos_id'] != res.uom_id.id: - selected_uom = self.pool.get('product.uom_id').browse(cr, uid, result['uos_id'], context=context) - if res.uom_id.category_id.id == selected_uom.category_id.id: - new_price = res_final['value']['price_unit'] * uom_id.factor_inv - res_final['value']['price_unit'] = new_price + if result['uos_id'] and result['uos_id'] != res.uom_id.id: + selected_uom = self.pool.get('product.uom').browse(cr, uid, result['uos_id'], context=context) + new_price = self.pool.get('product.uom')._compute_price(cr, uid, res.uom_id.id, res_final['value']['price_unit'], result['uos_id']) + res_final['value']['price_unit'] = new_price return res_final def uos_id_change(self, cr, uid, ids, product, uom, qty=0, name='', type='out_invoice', partner_id=False, fposition_id=False, price_unit=False, currency_id=False, context=None, company_id=None):