[IMP] Account: added a check that all the account move lines have an account that are in the same chart while validating a move

bzr revid: pap@tinyerp.co.in-20100830070628-lvc58pe8rojol5oi
This commit is contained in:
pap (openerp) 2010-08-30 12:36:28 +05:30
parent 993c8b04ce
commit a2b123d9c7
2 changed files with 21 additions and 3 deletions

View File

@ -538,7 +538,7 @@ class account_account(osv.osv):
def write(self, cr, uid, ids, vals, context=None):
if context is None:
context = {}
if 'company_id' in vals:
move_lines = self.pool.get('account.move.line').search(cr, uid, [('account_id', 'in', ids)])
if move_lines:
@ -1149,8 +1149,26 @@ class account_move(osv.osv):
else:
raise osv.except_osv(_('Integrity Error !'), _('You can not validate a non-balanced entry !\nMake sure you have configured Payment Term properly !\nIt should contain atleast one Payment Term Line with type "Balance" !'))
return True
def button_validate(self, cursor, user, ids, context=None):
def _get_chart_account(cursor, user, account):
if account.parent_id:
chart_account = _get_chart_account(cursor, user, account.parent_id)
else:
chart_account = account
return chart_account
for move in self.browse(cursor, user, ids):
lines = move.line_id
if lines:
ref_line = lines[0]
ref_chart_account = _get_chart_account(cursor, user, ref_line.account_id)
parent_left = ref_chart_account.parent_left
parent_right = ref_chart_account.parent_right
result = True
for line in lines[1:]:
if not(line.account_id.parent_left > parent_left and line.account_id.parent_left < parent_right):
raise osv.except_osv(_('Error !'), _('You cannot validate a move unless accounts in its entry lines are in same Chart Of Accounts !'))
return self.post(cursor, user, ids, context=context)
def button_cancel(self, cr, uid, ids, context={}):

View File

@ -24,7 +24,7 @@ from tools.translate import _
class account_chart(osv.osv_memory):
"""
For Chart of Accounrs
For Chart of Accounts
"""
_name = "account.chart"
_description = "Account chart"