[MERGE] bug-783994-ara
bzr revid: qdp-launchpad@openerp.com-20110915140541-y04g618dru0xmdsc
This commit is contained in:
commit
cde2ec003f
|
@ -588,10 +588,18 @@ class account_move_line(osv.osv):
|
||||||
return False
|
return False
|
||||||
return True
|
return True
|
||||||
|
|
||||||
|
def _check_date(self, cr, uid, ids, context=None):
|
||||||
|
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
|
||||||
|
return True
|
||||||
|
|
||||||
_constraints = [
|
_constraints = [
|
||||||
(_check_no_view, 'You can not create move line on view account.', ['account_id']),
|
(_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_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_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
|
#TODO: ONCHANGE_ACCOUNT_ID: set account_tax_id
|
||||||
|
@ -1098,35 +1106,6 @@ class account_move_line(osv.osv):
|
||||||
move_obj.validate(cr, uid, move_ids, context=context)
|
move_obj.validate(cr, uid, move_ids, context=context)
|
||||||
return result
|
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
|
|
||||||
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):
|
def write(self, cr, uid, ids, vals, context=None, check=True, update_check=True):
|
||||||
if context is None:
|
if context is None:
|
||||||
context={}
|
context={}
|
||||||
|
@ -1137,7 +1116,6 @@ class account_move_line(osv.osv):
|
||||||
ids = [ids]
|
ids = [ids]
|
||||||
if vals.get('account_tax_id', False):
|
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 !'))
|
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']:
|
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!'))
|
raise osv.except_osv(_('Bad account!'), _('You can not use an inactive account!'))
|
||||||
if update_check:
|
if update_check:
|
||||||
|
@ -1221,7 +1199,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)
|
company_id = self.pool.get('account.move').read(cr, uid, vals['move_id'], ['company_id']).get('company_id', False)
|
||||||
if company_id:
|
if company_id:
|
||||||
vals['company_id'] = company_id[0]
|
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']:
|
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!'))
|
raise osv.except_osv(_('Bad account!'), _('You can not use an inactive account!'))
|
||||||
if 'journal_id' in vals:
|
if 'journal_id' in vals:
|
||||||
|
@ -1232,7 +1209,6 @@ class account_move_line(osv.osv):
|
||||||
m = move_obj.browse(cr, uid, vals['move_id'])
|
m = move_obj.browse(cr, uid, vals['move_id'])
|
||||||
context['journal_id'] = m.journal_id.id
|
context['journal_id'] = m.journal_id.id
|
||||||
context['period_id'] = m.period_id.id
|
context['period_id'] = m.period_id.id
|
||||||
|
|
||||||
self._update_journal_check(cr, uid, context['journal_id'], context['period_id'], context)
|
self._update_journal_check(cr, uid, context['journal_id'], context['period_id'], context)
|
||||||
move_id = vals.get('move_id', False)
|
move_id = vals.get('move_id', False)
|
||||||
journal = journal_obj.browse(cr, uid, context['journal_id'], context=context)
|
journal = journal_obj.browse(cr, uid, context['journal_id'], context=context)
|
||||||
|
|
Loading…
Reference in New Issue