[IMP] merge: good price on encoding supplier invoices with taxes

bzr revid: fp@tinyerp.com-20111111195417-fqu7vq56g5az4h6y
This commit is contained in:
Fabien Pinckaers 2011-11-11 20:54:17 +01:00
commit 99d187f748
1 changed files with 11 additions and 0 deletions

View File

@ -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: