Merge lp:~vauxoo/openobject-addons/6.0-bug-896462-moylop260 into lp:openobject-addons/6.0

Proposed by Moisés López - http://www.vauxoo.com
Status: Needs review
Proposed branch: lp:~vauxoo/openobject-addons/6.0-bug-896462-moylop260
Merge into: lp:openobject-addons/6.0
Diff against target: 39 lines (+21/-4)
1 file modified
account/invoice.py (+21/-4)
To merge this branch: bzr merge lp:~vauxoo/openobject-addons/6.0-bug-896462-moylop260
Reviewer Review Type Date Requested Status
OpenERP Core Team Pending
Review via email: mp+83463@code.launchpad.net
To post a comment you must log in.

Unmerged revisions

4935. By Moisés López - http://www.vauxoo.com

[FIX] [account] Remove Hard-Code in refund invoice function

4934. By Launchpad Translations on behalf of openerp

Launchpad automatic translations update.

Preview Diff

[H/L] Next/Prev Comment, [J/K] Next/Prev File, [N/P] Next/Prev Hunk
1=== modified file 'account/invoice.py'
2--- account/invoice.py 2011-11-24 08:32:27 +0000
3+++ account/invoice.py 2011-11-26 00:49:24 +0000
4@@ -1065,14 +1065,31 @@
5 return self.name_get(cr, user, ids, context)
6
7 def _refund_cleanup_lines(self, cr, uid, lines):
8+ #TODO: Make a generic function transform read to values of create in tools
9+ invoice_line_obj = self.pool.get('account.invoice.line')
10+ columns = invoice_line_obj._columns
11+ fieldnames_relation = {
12+ 'many2one': [],
13+ 'many2many': [],
14+ 'one2many': [],
15+ }
16+ for column in columns:
17+ if columns[column]._type == 'many2many':
18+ fieldnames_relation['many2many'].append( column )
19+ elif columns[column]._type == 'one2many':
20+ fieldnames_relation['one2many'].append( column )
21+ elif columns[column]._type == 'many2one':
22+ fieldnames_relation['many2one'].append( column )
23 for line in lines:
24 del line['id']
25 del line['invoice_id']
26- for field in ('company_id', 'partner_id', 'account_id', 'product_id',
27- 'uos_id', 'account_analytic_id', 'tax_code_id', 'base_code_id'):
28+ for field in fieldnames_relation['many2one']:
29 line[field] = line.get(field, False) and line[field][0]
30- if 'invoice_line_tax_id' in line:
31- line['invoice_line_tax_id'] = [(6,0, line.get('invoice_line_tax_id', [])) ]
32+ for field in fieldnames_relation['many2many']:
33+ line[field] = [(6,0, line.get(field, [])) ]
34+ for field in fieldnames_relation['one2many']:
35+ #TDOO: Test with one2mnay fields
36+ line[field] = line.get(field, False)
37 return map(lambda x: (0,0,x), lines)
38
39 def refund(self, cr, uid, ids, date=None, period_id=None, description=None, journal_id=None):