Merge lp:~camptocamp/openobject-addons/6.1-fiscal-position-1028747 into lp:openobject-addons/6.1

Proposed by Guewen Baconnier @ Camptocamp
Status: Needs review
Proposed branch: lp:~camptocamp/openobject-addons/6.1-fiscal-position-1028747
Merge into: lp:openobject-addons/6.1
Diff against target: 51 lines (+16/-4)
1 file modified
account/partner.py (+16/-4)
To merge this branch: bzr merge lp:~camptocamp/openobject-addons/6.1-fiscal-position-1028747
Reviewer Review Type Date Requested Status
OpenERP Core Team Pending
Review via email: mp+116591@code.launchpad.net

Description of the change

Hello,

This is a fix for the issue lp:1028747

To post a comment you must log in.

Unmerged revisions

6915. By Guewen Baconnier @ Camptocamp <email address hidden>

[FIX] Fiscal positions with same source and destination taxes must be unique

Preview Diff

[H/L] Next/Prev Comment, [J/K] Next/Prev File, [N/P] Next/Prev Hunk
=== modified file 'account/partner.py'
--- account/partner.py 2011-08-24 21:19:43 +0000
+++ account/partner.py 2012-07-25 07:08:42 +0000
@@ -44,17 +44,17 @@
44 return []44 return []
45 if not fposition_id:45 if not fposition_id:
46 return map(lambda x: x.id, taxes)46 return map(lambda x: x.id, taxes)
47 result = []47 result = set()
48 for t in taxes:48 for t in taxes:
49 ok = False49 ok = False
50 for tax in fposition_id.tax_ids:50 for tax in fposition_id.tax_ids:
51 if tax.tax_src_id.id == t.id:51 if tax.tax_src_id.id == t.id:
52 if tax.tax_dest_id:52 if tax.tax_dest_id:
53 result.append(tax.tax_dest_id.id)53 result.add(tax.tax_dest_id.id)
54 ok=True54 ok=True
55 if not ok:55 if not ok:
56 result.append(t.id)56 result.add(t.id)
57 return result57 return list(result)
5858
59 def map_account(self, cr, uid, fposition_id, account_id, context=None):59 def map_account(self, cr, uid, fposition_id, account_id, context=None):
60 if not fposition_id:60 if not fposition_id:
@@ -77,6 +77,12 @@
77 'tax_dest_id': fields.many2one('account.tax', 'Replacement Tax')77 'tax_dest_id': fields.many2one('account.tax', 'Replacement Tax')
78 }78 }
7979
80 _sql_constraints = [
81 ('tax_src_dest_uniq',
82 'unique (position_id,tax_src_id,tax_dest_id)',
83 'A tax fiscal position could be defined only once time on same taxes.')
84 ]
85
80account_fiscal_position_tax()86account_fiscal_position_tax()
8187
82class account_fiscal_position_account(osv.osv):88class account_fiscal_position_account(osv.osv):
@@ -89,6 +95,12 @@
89 'account_dest_id': fields.many2one('account.account', 'Account Destination', domain=[('type','<>','view')], required=True)95 'account_dest_id': fields.many2one('account.account', 'Account Destination', domain=[('type','<>','view')], required=True)
90 }96 }
9197
98 _sql_constraints = [
99 ('account_src_dest_uniq',
100 'unique (position_id,account_src_id,account_dest_id)',
101 'An account fiscal position could be defined only once time on same accounts.')
102 ]
103
92account_fiscal_position_account()104account_fiscal_position_account()
93105
94class res_partner(osv.osv):106class res_partner(osv.osv):