diff options
| author | Mustufa Rangwala <mra@mra-laptop> | 2010-12-10 17:43:27 +0530 |
|---|---|---|
| committer | Mustufa Rangwala <mra@mra-laptop> | 2010-12-10 17:43:27 +0530 |
| commit | fa2a2db80ef9bbe3594f532829e7bb6d2b9c6998 (patch) | |
| tree | df94a480ba50be10af47a67fdf7eac361f50cf45 | |
| parent | 8886a1c9f116037f3e0c6847d2b90147ed786b39 (diff) | |
| parent | eb872df55dd026919412eafdbd70dcb9ed1eaf9c (diff) | |
[MERGE] Account: product - VAT definition - multicompany
bzr revid: mra@mra-laptop-20101210121327-190r00083k99d08n
| -rw-r--r-- | addons/account/invoice.py | 18 |
1 files changed, 13 insertions, 5 deletions
diff --git a/addons/account/invoice.py b/addons/account/invoice.py index 3f675f90a07..706b357465f 100644 --- a/addons/account/invoice.py +++ b/addons/account/invoice.py @@ -1312,6 +1312,7 @@ class account_invoice_line(osv.osv): if context is None: context = {} company_id = context.get('company_id',False) + tax_obj = self.pool.get('account.tax') if not partner_id: raise osv.except_osv(_('No Partner Defined !'),_("You must first select a partner !") ) if not product: @@ -1400,17 +1401,24 @@ class account_invoice_line(osv.osv): if a: result['account_id'] = a + tax_ids = tax_obj.search(cr, uid, [('company_id', '=', company_id)]) if type in ('out_invoice', 'out_refund'): - taxes = res.taxes_id and res.taxes_id or (a and self.pool.get('account.account').browse(cr, uid, a).tax_ids or False) - tax_id = fpos_obj.map_tax(cr, uid, fpos, taxes) + sale_taxes_def = map(lambda x: x.id, res.taxes_id) + sale_tax_ids = [tax for tax in tax_ids if tax in sale_taxes_def] + sale_taxes = tax_obj.browse(cr, uid, sale_tax_ids) + sale_taxes_all = sale_taxes and sale_taxes or (a and self.pool.get('account.account').browse(cr, uid, a).tax_ids or False) + tax_id = fpos_obj.map_tax(cr, uid, fpos, sale_taxes_all) else: - taxes = res.supplier_taxes_id and res.supplier_taxes_id or (a and self.pool.get('account.account').browse(cr, uid, a).tax_ids or False) - tax_id = fpos_obj.map_tax(cr, uid, fpos, taxes) + pur_taxes_def = map(lambda x: x.id, res.supplier_taxes_id) + pur_tax_ids = [tax for tax in tax_ids if tax in pur_taxes_def] + pur_taxes = tax_obj.browse(cr, uid, pur_tax_ids) + pur_taxes_all = pur_taxes and pur_taxes or (a and self.pool.get('account.account').browse(cr, uid, a).tax_ids or False) + tax_id = fpos_obj.map_tax(cr, uid, fpos, pur_taxes_all) + if type in ('in_invoice', 'in_refund'): result.update( {'price_unit': price_unit or res.standard_price,'invoice_line_tax_id': tax_id} ) else: result.update({'price_unit': res.list_price, 'invoice_line_tax_id': tax_id}) - # if not name: result['name'] = res.partner_ref |
