diff --git a/addons/account/account_installer.xml b/addons/account/account_installer.xml index 5b57ab130fd..cd6a60b158b 100644 --- a/addons/account/account_installer.xml +++ b/addons/account/account_installer.xml @@ -88,6 +88,8 @@ + + diff --git a/addons/account/invoice.py b/addons/account/invoice.py index d3615e651d0..b9620e4e123 100644 --- a/addons/account/invoice.py +++ b/addons/account/invoice.py @@ -1038,22 +1038,11 @@ class account_invoice(osv.osv): for line in lines: del line['id'] del line['invoice_id'] - if 'account_id' in line: - line['account_id'] = line.get('account_id', False) and line['account_id'][0] - if 'product_id' in line: - line['product_id'] = line.get('product_id', False) and line['product_id'][0] - if 'uos_id' in line: - line['uos_id'] = line.get('uos_id', False) and line['uos_id'][0] + for field in ('company_id', 'partner_id', 'account_id', 'product_id', + 'uos_id', 'account_analytic_id', 'tax_code_id', 'base_code_id'): + line[field] = line.get(field, False) and line[field][0] if 'invoice_line_tax_id' in line: line['invoice_line_tax_id'] = [(6,0, line.get('invoice_line_tax_id', [])) ] - if 'account_analytic_id' in line: - line['account_analytic_id'] = line.get('account_analytic_id', False) and line['account_analytic_id'][0] - if 'tax_code_id' in line : - if isinstance(line['tax_code_id'],tuple) and len(line['tax_code_id']) >0 : - line['tax_code_id'] = line['tax_code_id'][0] - if 'base_code_id' in line : - if isinstance(line['base_code_id'],tuple) and len(line['base_code_id']) >0 : - line['base_code_id'] = line['base_code_id'][0] return map(lambda x: (0,0,x), lines) def refund(self, cr, uid, ids, date=None, period_id=None, description=None):