From 6c612ff19374e52e5c5aa5f657fec3ed9716708c Mon Sep 17 00:00:00 2001 From: Dmitrijs Ledkovs Date: Fri, 11 Nov 2011 13:27:53 +0000 Subject: [PATCH] [IMP] account: on product change suggest unit_price without VAT included lp bug: https://launchpad.net/bugs/889106 fixed bzr revid: dmitrijs.ledkovs@credativ.co.uk-20111111132753-kmmvp19b3kjw4lhk --- addons/account/account_invoice.py | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/addons/account/account_invoice.py b/addons/account/account_invoice.py index e100e174498..e445e3f7bc8 100644 --- a/addons/account/account_invoice.py +++ b/addons/account/account_invoice.py @@ -1353,6 +1353,17 @@ class account_invoice_line(osv.osv): taxes = res.supplier_taxes_id and res.supplier_taxes_id or (a and self.pool.get('account.account').browse(cr, uid, a, context=context).tax_ids or False) tax_id = fpos_obj.map_tax(cr, uid, fpos, taxes) + if type in ('in_invoice','in_refund') and tax_id and price_unit: + tax_pool = self.pool.get('account.tax') + tax_browse = tax_pool.browse(cr, uid, tax_id) + if not isinstance(tax_browse, list): + tax_browse = [tax_browse] + taxes = tax_pool.compute_inv(cr, uid, tax_browse, price_unit, 1) + tax_amount = reduce(lambda total, tax_dict: total + tax_dict.get('amount', 0.0), taxes, 0.0) + price_unit = price_unit - tax_amount + if qty != 0: + price_unit = price_unit / float(qty) + if type in ('in_invoice', 'in_refund'): result.update( {'price_unit': price_unit or res.standard_price,'invoice_line_tax_id': tax_id} ) else: