[FIX] taxes on invoices

bzr revid: fp@tinyerp.com-20120930105006-wz86m86zkz3w92kw
This commit is contained in:
Fabien Pinckaers 2012-09-30 12:50:06 +02:00
commit 209e6df658
1 changed files with 12 additions and 11 deletions

View File

@ -1561,18 +1561,19 @@ class account_invoice_line(osv.osv):
def onchange_account_id(self, cr, uid, ids, product_id, partner_id, inv_type, fposition_id, account_id): def onchange_account_id(self, cr, uid, ids, product_id, partner_id, inv_type, fposition_id, account_id):
if not account_id: if not account_id:
return {} return {}
account = self.pool.get('account.account').browse(cr, uid, account_id) unique_tax_ids = []
taxes = account.tax_ids
fpos = fposition_id and self.pool.get('account.fiscal.position').browse(cr, uid, fposition_id) or False fpos = fposition_id and self.pool.get('account.fiscal.position').browse(cr, uid, fposition_id) or False
tax_ids = self.pool.get('account.fiscal.position').map_tax(cr, uid, fpos, taxes) if not product_id:
account = self.pool.get('account.account').browse(cr, uid, account_id)
product_change_result = self.product_id_change(cr, uid, ids, product_id, False, type=inv_type, taxes = account.tax_ids
partner_id=partner_id, fposition_id=fposition_id, unique_tax_ids = self.pool.get('account.fiscal.position').map_tax(cr, uid, fpos, taxes)
company_id=account.company_id.id) else:
unique_tax_ids = set(tax_ids) product_change_result = self.product_id_change(cr, uid, ids, product_id, False, type=inv_type,
if product_change_result and 'value' in product_change_result and 'invoice_line_tax_id' in product_change_result['value']: partner_id=partner_id, fposition_id=fposition_id,
unique_tax_ids |= set(product_change_result['value']['invoice_line_tax_id']) company_id=account.company_id.id)
return {'value':{'invoice_line_tax_id': list(unique_tax_ids)}} if product_change_result and 'value' in product_change_result and 'invoice_line_tax_id' in product_change_result['value']:
unique_tax_ids = product_change_result['value']['invoice_line_tax_id']
return {'value':{'invoice_line_tax_id': unique_tax_ids}}
account_invoice_line() account_invoice_line()