From abbdae757f60d6fdc3b87cb8e9fb1a02104bd656 Mon Sep 17 00:00:00 2001 From: Adrien Peiffer Date: Fri, 22 Aug 2014 09:20:30 +0200 Subject: [PATCH] [IMP] Use sql constraint to Prevent to add both same journals on a period --- .../model/account_journal_period.py | 19 ++++++------------- .../test_account_journal_period_close.py | 3 ++- 2 files changed, 8 insertions(+), 14 deletions(-) diff --git a/account_journal_period_close/model/account_journal_period.py b/account_journal_period_close/model/account_journal_period.py index 23a4b779f..d77988e83 100644 --- a/account_journal_period_close/model/account_journal_period.py +++ b/account_journal_period_close/model/account_journal_period.py @@ -41,6 +41,11 @@ class AccountJournalPeriod(orm.Model): store=True, readonly=True) } + _sql_constraints = [ + ('journal_period_uniq', 'unique(period_id, journal_id)', + 'You can not add both same journal in a period.'), + ] + def _check(self, cr, uid, ids, context=None): return True @@ -71,19 +76,7 @@ class AccountJournalPeriod(orm.Model): period = self.pool.get('account.period')\ .browse(cr, uid, values['period_id'], context=context) values.update({'name': (journal.code or journal.name)+':' + - (period.name or '')}), - if values.get('period_id') and values.get('journal_id'): - journal_period_duplicate_ids = self\ - .search(cr, uid, [('period_id', '=', - values.get('period_id')), - ('journal_id', '=', - values.get('journal_id'))], - context=context) - if (journal_period_duplicate_ids): - raise orm.except_orm(_('error'), - _('You can not add 2 times' - ' the same journal in' - ' same period.')) + (period.name or '')}) return super(AccountJournalPeriod, self).create(cr, uid, values, diff --git a/account_journal_period_close/tests/test_account_journal_period_close.py b/account_journal_period_close/tests/test_account_journal_period_close.py index 2c736be9c..0e3a6dd05 100644 --- a/account_journal_period_close/tests/test_account_journal_period_close.py +++ b/account_journal_period_close/tests/test_account_journal_period_close.py @@ -30,6 +30,7 @@ import openerp.tests.common as common from openerp.osv import orm from datetime import datetime +from psycopg2 import IntegrityError DB = common.DB ADMIN_USER_ID = common.ADMIN_USER_ID @@ -202,6 +203,6 @@ class TestAccountConstraintChronology(common.TransactionCase): create_journal_period(self, period_id, journal_id, context) # I check if the exception is correctly raised at adding both same # journal on a period - self.assertRaises(orm.except_orm, + self.assertRaises(IntegrityError, create_journal_period, self, period_id, journal_id, context)