[FIX] account_move_line: uninitialized period_id
bzr revid: ara@tinyerp.com-20110706100701-uhrlstsidienzx09
This commit is contained in:
parent
12d7cee094
commit
e5fd3c18ac
|
@ -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)
|
||||
|
|
Loading…
Reference in New Issue