Merge lp:~vauxoo/openerp-venezuela-localization/israel_vat-uniqueness-correction into lp:~openerp-venezuela/openerp-venezuela-localization/6.0-trunk

Proposed by Israel Fermin Montilla
Status: Merged
Merged at revision: 464
Proposed branch: lp:~vauxoo/openerp-venezuela-localization/israel_vat-uniqueness-correction
Merge into: lp:~openerp-venezuela/openerp-venezuela-localization/6.0-trunk
Diff against target: 39 lines (+15/-6)
1 file modified
l10n_ve_fiscal_requirements/partner.py (+15/-6)
To merge this branch: bzr merge lp:~vauxoo/openerp-venezuela-localization/israel_vat-uniqueness-correction
Reviewer Review Type Date Requested Status
Nhomar - Vauxoo Pending
Review via email: mp+80919@code.launchpad.net

Description of the change

Changed the unique(vat) validation from a sql constraint to an openerp constraint with a function

To post a comment you must log in.

Preview Diff

[H/L] Next/Prev Comment, [J/K] Next/Prev File, [N/P] Next/Prev Hunk
1=== modified file 'l10n_ve_fiscal_requirements/partner.py'
2--- l10n_ve_fiscal_requirements/partner.py 2011-10-31 16:21:58 +0000
3+++ l10n_ve_fiscal_requirements/partner.py 2011-11-01 15:38:28 +0000
4@@ -56,7 +56,7 @@
5
6
7 _constraints = [
8- (_check_addr_invoice, 'Error ! The partner already has an invoice address. ', [])
9+ (_check_addr_invoice, _('Error ! The partner already has an invoice address.'), [])
10 ]
11
12 res_partner_address()
13@@ -87,12 +87,21 @@
14 return True
15 return True
16
17+ def _check_vat_uniqueness(self, cr, uid, ids, context={}):
18+ partner_obj = self.pool.get('res.partner')
19+ current_partner = partner_obj.read(cr, uid, ids, ['vat', 'address'])[0]
20+
21+ if not 'VE' in [a.country_id.code for a in self.pool.get('res.partner.address').browse(cr, uid, current_partner['address'])]:
22+ return True
23+
24+ current_vat = current_partner['vat']
25+ duplicates = partner_obj.read(cr, uid, partner_obj.search(cr, uid, [('vat', '=', current_vat)]), ['vat'])
26+
27+ return not current_vat in [p['vat'] for p in duplicates if p['id'] != current_partner['id']]
28+
29 _constraints = [
30- (_check_partner_invoice_addr, 'Error ! The partner does not have an invoice address. ', [])
31- ]
32-
33- _sql_constraints = [
34- ("vat_unique", "unique(vat)", "Partner's VAT must be an unique value"),
35+ (_check_partner_invoice_addr, _('Error ! The partner does not have an invoice address.'), []),
36+ (_check_vat_uniqueness, _("Error ! Partner's VAT must be a unique value"), []),
37 ]
38
39 def vat_change_fiscal_requirements(self, cr, uid, ids, value, context=None):