From b1ae71ce0f96a94068f57063f3b05526b62b5bcb Mon Sep 17 00:00:00 2001 From: "Jay (Open ERP)" Date: Fri, 20 Mar 2009 20:25:48 +0530 Subject: [PATCH] [FIX] 337263 : Account_tax_include corrected for company currency and its conversion(ref:CDA,SSI,JVO) bzr revid: jvo@tinyerp.com-20090320145548-69bga5xssyu8qja0 --- addons/account_tax_include/invoice_tax_incl.py | 16 +++++++++++----- 1 file changed, 11 insertions(+), 5 deletions(-) diff --git a/addons/account_tax_include/invoice_tax_incl.py b/addons/account_tax_include/invoice_tax_incl.py index 568948e..e42800d 100644 --- a/addons/account_tax_include/invoice_tax_incl.py +++ b/addons/account_tax_include/invoice_tax_incl.py @@ -159,7 +159,8 @@ class account_invoice_tax(osv.osv): tax_obj = self.pool.get('account.tax') cur_obj = self.pool.get('res.currency') cur = inv.currency_id - + company_currency = inv.company_id.currency_id.id + for line in inv.invoice_line: data = self.pool.get('account.invoice.line')._amount_line2(cr, uid, [line.id], [], [], context)[line.id] for tax in data['data']: @@ -174,14 +175,14 @@ class account_invoice_tax(osv.osv): if inv.type in ('out_invoice','in_invoice'): val['base_code_id'] = tax['base_code_id'] val['tax_code_id'] = tax['tax_code_id'] - val['base_amount'] = val['base'] * tax['base_sign'] - val['tax_amount'] = val['amount'] * tax['tax_sign'] + val['base_amount'] = cur_obj.compute(cr, uid, inv.currency_id.id, company_currency, val['base'] * tax['base_sign'], context={'date': inv.date_invoice or time.strftime('%Y-%m-%d')}, round=False) + val['tax_amount'] = cur_obj.compute(cr, uid, inv.currency_id.id, company_currency, val['amount'] * tax['tax_sign'], context={'date': inv.date_invoice or time.strftime('%Y-%m-%d')}, round=False) val['account_id'] = tax['account_collected_id'] or line.account_id.id else: val['base_code_id'] = tax['ref_base_code_id'] val['tax_code_id'] = tax['ref_tax_code_id'] - val['base_amount'] = val['base'] * tax['ref_base_sign'] - val['tax_amount'] = val['amount'] * tax['ref_tax_sign'] + val['base_amount'] = cur_obj.compute(cr, uid, inv.currency_id.id, company_currency, val['base'] * tax['ref_base_sign'], context={'date': inv.date_invoice or time.strftime('%Y-%m-%d')}, round=False) + val['tax_amount'] = cur_obj.compute(cr, uid, inv.currency_id.id, company_currency, val['amount'] * tax['ref_tax_sign'], context={'date': inv.date_invoice or time.strftime('%Y-%m-%d')}, round=False) val['account_id'] = tax['account_paid_id'] or line.account_id.id key = (val['tax_code_id'], val['base_code_id'], val['account_id']) @@ -193,6 +194,11 @@ class account_invoice_tax(osv.osv): tax_grouped[key]['base_amount'] += val['base_amount'] tax_grouped[key]['tax_amount'] += val['tax_amount'] + for t in tax_grouped.values(): + t['amount'] = cur_obj.round(cr, uid, cur, t['amount']) + t['base_amount'] = cur_obj.round(cr, uid, cur, t['base_amount']) + t['tax_amount'] = cur_obj.round(cr, uid, cur, t['tax_amount']) + return tax_grouped account_invoice_tax() -- 1.7.10.4