[FIX] Account_tax_include : improvements when invoice lines are created prior to invoice
bzr revid: jvo@tinyerp.com-20091221133457-c1n141k0w5yzhdow
This commit is contained in:
@@ -49,7 +49,7 @@ class account_invoice_line(osv.osv):
|
||||
tax_obj = self.pool.get('account.tax')
|
||||
cur_obj = self.pool.get('res.currency')
|
||||
for line in self.browse(cr, uid, ids):
|
||||
cur = line.invoice_id.currency_id
|
||||
cur = line.invoice_id and line.invoice_id.currency_id or False
|
||||
res_init = super(account_invoice_line, self)._amount_line(cr, uid, [line.id], name, args, context)
|
||||
res[line.id] = {
|
||||
'price_subtotal': 0.0,
|
||||
@@ -67,13 +67,13 @@ class account_invoice_line(osv.osv):
|
||||
product_taxes = filter(lambda x: x.price_include, line.product_id.supplier_taxes_id)
|
||||
|
||||
if ((set(product_taxes) == set(line.invoice_line_tax_id)) or not product_taxes) and (line.invoice_id.price_type == 'tax_included'):
|
||||
res[line.id]['price_subtotal_incl'] = cur_obj.round(cr, uid, cur, res_init[line.id])
|
||||
res[line.id]['price_subtotal_incl'] = cur and cur_obj.round(cr, uid, cur, res_init[line.id]) or res_init[line.id]
|
||||
else:
|
||||
res[line.id]['price_subtotal'] = cur_obj.round(cr, uid, cur, res_init[line.id])
|
||||
res[line.id]['price_subtotal'] = cur and cur_obj.round(cr, uid, cur, res_init[line.id]) or res_init[line.id]
|
||||
for tax in tax_obj.compute_inv(cr, uid, product_taxes, res_init[line.id]/line.quantity, line.quantity):
|
||||
res[line.id]['price_subtotal'] = res[line.id]['price_subtotal'] - round(tax['amount'], int(config['price_accuracy']))
|
||||
else:
|
||||
res[line.id]['price_subtotal'] = cur_obj.round(cr, uid, cur, res_init[line.id])
|
||||
res[line.id]['price_subtotal'] = cur and cur_obj.round(cr, uid, cur, res_init[line.id]) or res_init[line.id]
|
||||
|
||||
if res[line.id]['price_subtotal']:
|
||||
res[line.id]['price_subtotal_incl'] = res[line.id]['price_subtotal']
|
||||
|
||||
Reference in New Issue
Block a user