From 15281f1416ae07e0a83be3d5301ca818b95e8806 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?St=C3=A9phane=20Bidoul?= <> Date: Thu, 19 May 2011 17:04:09 +0530 Subject: [PATCH 1/6] [FIX] account_move_line: uninitialized period_id lp bug: https://launchpad.net/bugs/783994 fixed bzr revid: ara@tinyerp.com-20110519113409-jzvcgxqfbcowoza1 --- addons/account/account_move_line.py | 1 + 1 file changed, 1 insertion(+) diff --git a/addons/account/account_move_line.py b/addons/account/account_move_line.py index 8a487fe696d..fc7bc50a791 100644 --- a/addons/account/account_move_line.py +++ b/addons/account/account_move_line.py @@ -1107,6 +1107,7 @@ class account_move_line(osv.osv): journal_obj = self.pool.get('account.journal') period_obj = self.pool.get('account.period') journal_id = False + period_id = False if 'date' in vals.keys(): if 'journal_id' in vals and 'journal_id' not in context: journal_id = vals['journal_id'] From 56d5a70b18defc56fe319b1e2185f082b1f7cd84 Mon Sep 17 00:00:00 2001 From: "ARA (OpenERP)" Date: Tue, 24 May 2011 17:29:51 +0530 Subject: [PATCH 2/6] [FIX] account: account_move_line: uninitialized period_id bzr revid: ara@tinyerp.com-20110524115951-06prqym1q7sdkg5e --- addons/account/account_move_line.py | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/addons/account/account_move_line.py b/addons/account/account_move_line.py index fc7bc50a791..ef0984624c8 100644 --- a/addons/account/account_move_line.py +++ b/addons/account/account_move_line.py @@ -1107,7 +1107,6 @@ class account_move_line(osv.osv): journal_obj = self.pool.get('account.journal') period_obj = self.pool.get('account.period') journal_id = False - period_id = False if 'date' in vals.keys(): if 'journal_id' in vals and 'journal_id' not in context: journal_id = vals['journal_id'] @@ -1223,7 +1222,6 @@ class account_move_line(osv.osv): company_id = self.pool.get('account.move').read(cr, uid, vals['move_id'], ['company_id']).get('company_id', False) if company_id: vals['company_id'] = company_id[0] - self._check_date(cr, uid, vals, context, check) if ('account_id' in vals) and not account_obj.read(cr, uid, vals['account_id'], ['active'])['active']: raise osv.except_osv(_('Bad account!'), _('You can not use an inactive account!')) if 'journal_id' in vals: @@ -1234,7 +1232,7 @@ class account_move_line(osv.osv): m = move_obj.browse(cr, uid, vals['move_id']) context['journal_id'] = m.journal_id.id context['period_id'] = m.period_id.id - + self._check_date(cr, uid, vals, context, check) self._update_journal_check(cr, uid, context['journal_id'], context['period_id'], context) move_id = vals.get('move_id', False) journal = journal_obj.browse(cr, uid, context['journal_id'], context=context) From 7a4f7e9f5cb4790bc9f8628d0578876c7390b671 Mon Sep 17 00:00:00 2001 From: "ARA (OpenERP)" Date: Tue, 24 May 2011 17:37:45 +0530 Subject: [PATCH 3/6] [FIX] account: account_move_line: uninitialized period_id bzr revid: ara@tinyerp.com-20110524120745-ue0ra2284mbdvonx --- addons/account/account_move_line.py | 1 + 1 file changed, 1 insertion(+) diff --git a/addons/account/account_move_line.py b/addons/account/account_move_line.py index ef0984624c8..1fa650582a6 100644 --- a/addons/account/account_move_line.py +++ b/addons/account/account_move_line.py @@ -1107,6 +1107,7 @@ class account_move_line(osv.osv): journal_obj = self.pool.get('account.journal') period_obj = self.pool.get('account.period') journal_id = False + period_id = False if 'date' in vals.keys(): if 'journal_id' in vals and 'journal_id' not in context: journal_id = vals['journal_id'] From e5fd3c18acae9d645d49527f098eb645b15d8890 Mon Sep 17 00:00:00 2001 From: "ARA (OpenERP)" Date: Wed, 6 Jul 2011 15:37:01 +0530 Subject: [PATCH 4/6] [FIX] account_move_line: uninitialized period_id bzr revid: ara@tinyerp.com-20110706100701-uhrlstsidienzx09 --- addons/account/account_move_line.py | 43 ++++++++--------------------- 1 file changed, 11 insertions(+), 32 deletions(-) diff --git a/addons/account/account_move_line.py b/addons/account/account_move_line.py index 3ad69abeb2d..955810aa0af 100644 --- a/addons/account/account_move_line.py +++ b/addons/account/account_move_line.py @@ -590,10 +590,21 @@ class account_move_line(osv.osv): return False return True + def _check_date(self, cr, uid, ids, context=None): + if context is None: + context = {} + lines = self.browse(cr, uid, ids, context=context) + for l in lines: + if l.journal_id.allow_date: + if not time.strptime(l.date[:10],'%Y-%m-%d') >= time.strptime(l.period_id.date_start, '%Y-%m-%d') or not time.strptime(l.date[:10], '%Y-%m-%d') <= time.strptime(l.period_id.date_stop, '%Y-%m-%d'): + return False + return True + _constraints = [ (_check_no_view, 'You can not create move line on view account.', ['account_id']), (_check_no_closed, 'You can not create move line on closed account.', ['account_id']), (_check_company_id, 'Company must be same for its related account and period.',['company_id'] ), + (_check_date, 'The date of your Journal Entry is not in the defined period!',['date'] ), ] #TODO: ONCHANGE_ACCOUNT_ID: set account_tax_id @@ -1100,36 +1111,6 @@ class account_move_line(osv.osv): move_obj.validate(cr, uid, move_ids, context=context) return result - def _check_date(self, cr, uid, vals, context=None, check=True): - if context is None: - context = {} - move_obj = self.pool.get('account.move') - journal_obj = self.pool.get('account.journal') - period_obj = self.pool.get('account.period') - journal_id = False - period_id = False - if 'date' in vals.keys(): - if 'journal_id' in vals and 'journal_id' not in context: - journal_id = vals['journal_id'] - if 'period_id' in vals and 'period_id' not in context: - period_id = vals['period_id'] - elif 'journal_id' not in context and 'move_id' in vals: - if vals.get('move_id', False): - m = move_obj.browse(cr, uid, vals['move_id']) - journal_id = m.journal_id.id - period_id = m.period_id.id - else: - journal_id = context.get('journal_id', False) - period_id = context.get('period_id', False) - if journal_id: - journal = journal_obj.browse(cr, uid, journal_id, context=context) - if journal.allow_date and period_id: - period = period_obj.browse(cr, uid, period_id, context=context) - if not time.strptime(vals['date'][:10],'%Y-%m-%d') >= time.strptime(period.date_start, '%Y-%m-%d') or not time.strptime(vals['date'][:10], '%Y-%m-%d') <= time.strptime(period.date_stop, '%Y-%m-%d'): - raise osv.except_osv(_('Error'),_('The date of your Journal Entry is not in the defined period!')) - else: - return True - def write(self, cr, uid, ids, vals, context=None, check=True, update_check=True): if context is None: context={} @@ -1140,7 +1121,6 @@ class account_move_line(osv.osv): ids = [ids] if vals.get('account_tax_id', False): raise osv.except_osv(_('Unable to change tax !'), _('You can not change the tax, you should remove and recreate lines !')) - self._check_date(cr, uid, vals, context, check) if ('account_id' in vals) and not account_obj.read(cr, uid, vals['account_id'], ['active'])['active']: raise osv.except_osv(_('Bad account!'), _('You can not use an inactive account!')) if update_check: @@ -1234,7 +1214,6 @@ class account_move_line(osv.osv): m = move_obj.browse(cr, uid, vals['move_id']) context['journal_id'] = m.journal_id.id context['period_id'] = m.period_id.id - self._check_date(cr, uid, vals, context, check) self._update_journal_check(cr, uid, context['journal_id'], context['period_id'], context) move_id = vals.get('move_id', False) journal = journal_obj.browse(cr, uid, context['journal_id'], context=context) From f0b04ccee2bd02365dc284b33ca00905c2bd1517 Mon Sep 17 00:00:00 2001 From: "ARA (OpenERP)" Date: Wed, 13 Jul 2011 12:43:57 +0530 Subject: [PATCH 5/6] [IMP] account: uninitialized period_id bzr revid: ara@tinyerp.com-20110713071357-r3rhikhaifrcggfa --- addons/account/account_move_line.py | 2 -- 1 file changed, 2 deletions(-) diff --git a/addons/account/account_move_line.py b/addons/account/account_move_line.py index 955810aa0af..173d8ed7bd3 100644 --- a/addons/account/account_move_line.py +++ b/addons/account/account_move_line.py @@ -591,8 +591,6 @@ class account_move_line(osv.osv): return True def _check_date(self, cr, uid, ids, context=None): - if context is None: - context = {} lines = self.browse(cr, uid, ids, context=context) for l in lines: if l.journal_id.allow_date: From 73c752579840552bad0755974eb776c21b48aa55 Mon Sep 17 00:00:00 2001 From: "ARA (OpenERP)" Date: Wed, 13 Jul 2011 14:22:39 +0530 Subject: [PATCH 6/6] [IMP] account: uninitialized period_id bzr revid: ara@tinyerp.com-20110713085239-2yb1ou83yg3m8ey7 --- addons/account/account_move_line.py | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/addons/account/account_move_line.py b/addons/account/account_move_line.py index 173d8ed7bd3..b428d6a705e 100644 --- a/addons/account/account_move_line.py +++ b/addons/account/account_move_line.py @@ -591,8 +591,7 @@ class account_move_line(osv.osv): return True def _check_date(self, cr, uid, ids, context=None): - lines = self.browse(cr, uid, ids, context=context) - for l in lines: + for l in self.browse(cr, uid, ids, context=context): if l.journal_id.allow_date: if not time.strptime(l.date[:10],'%Y-%m-%d') >= time.strptime(l.period_id.date_start, '%Y-%m-%d') or not time.strptime(l.date[:10], '%Y-%m-%d') <= time.strptime(l.period_id.date_stop, '%Y-%m-%d'): return False