From cd8daf87a49b326000fa4ee4a939af9edfe3bb94 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?C=C3=A9dric=20Krier?= Date: Thu, 17 Jul 2008 19:35:43 +0200 Subject: [PATCH] Use new raise_user_error function --- fiscalyear.py | 43 +++++++++++++++++++++++++++++------------ journal.py | 22 ++++++++++++++------- move.py | 53 ++++++++++++++++++++++++++++++++++----------------- period.py | 40 +++++++++++++++++++++++++------------- 4 files changed, 108 insertions(+), 50 deletions(-) diff --git a/fiscalyear.py b/fiscalyear.py index cf47305719..0b2b436c9c 100644 --- a/fiscalyear.py +++ b/fiscalyear.py @@ -1,8 +1,8 @@ #This file is part of Tryton. The COPYRIGHT file at the top level of this repository contains the full copyright notices and license terms. 'Fiscal Year' -from trytond.osv import fields, OSV, ExceptORM -from trytond.wizard import Wizard, WizardOSV, ExceptWizard +from trytond.osv import fields, OSV +from trytond.wizard import Wizard, WizardOSV import mx.DateTime import datetime from decimal import Decimal @@ -46,6 +46,11 @@ class FiscalYear(OSV): 'per fiscal year!', ['post_move_sequence']), ] self._order.insert(0, ('start_date', 'ASC')) + self._error_messages.update({ + 'change_post_move_sequence': 'You can not change ' \ + 'the post move sequence', + 'no_fiscalyear_date': 'No fiscal year defined for this date!', + }) def default_state(self, cursor, user, context=None): return 'open' @@ -92,8 +97,8 @@ class FiscalYear(OSV): if fiscalyear.post_move_sequence and \ fiscalyear.post_move_sequence.id != \ vals['post_move_sequence']: - raise ExceptORM('UserError', 'You can not change ' \ - 'the post move sequence') + self.raise_user_error(cursor, 'change_post_move_sequence', + context=context) return super(FiscalYear, self).write(cursor, user, ids, vals, context=context) @@ -151,7 +156,8 @@ class FiscalYear(OSV): ], order=[('start_date', 'DESC')], limit=1, context=context) if not ids: if exception: - raise ExceptORM('Error', 'No fiscal year defined for this date!') + self.raise_user_error(cursor, 'no_fiscalyear_date', + context=context) else: return False return ids[0] @@ -220,6 +226,17 @@ class CloseFiscalYear(Wizard): }, } + def __init__(self): + super(CloseFiscalYear, self).__init__() + self._error_messages.update({ + 'diff_fiscalyear': 'The fiscal years must be different!', + 'period_in_fiscalyear': 'The period must be ' \ + 'in the selected fiscal year!', + 'centralised_journal': 'The journal must be centralised!', + 'journal_default_debit_credit_account': 'The journal must have ' \ + 'default debit/credit accounts!', + }) + def _process_account(self, cursor, user, account, period, journal, name, fiscalyear_id, period_ids, context=None): ''' @@ -308,23 +325,25 @@ class CloseFiscalYear(Wizard): account_obj = self.pool.get('account.account') if data['form']['close_fiscalyear'] == data['form']['fiscalyear']: - raise ExceptWizard('UserError', - 'The fiscal years must be different!') + self.raise_user_error(cursor, 'diff_fiscalyear', + context=context) period = period_obj.browse(cursor, user, data['form']['period'], context=context) if period.fiscalyear.id != data['form']['fiscalyear']: - raise ExceptWizard('UserError', 'The period must be ' \ - 'in the selected fiscal year!') + self.raise_user_error(cursor, 'period_in_fiscalyear', + context=context) journal = journal_obj.browse(cursor, user, data['form']['journal'], context=context) if not journal.centralised: - raise ExceptWizard('UserError', 'The journal must be centralised!') + self.raise_user_error(cursor, 'centralised_journal', + context=context) if not journal.credit_account or not journal.debit_account: - raise ExceptWizard('UserError', 'The journal must have ' \ - 'default debit/credit accounts!') + self.raise_user_error(cursor, + 'journal_default_debit_credit_account', + context=context) ctx = context.copy() ctx['fiscalyear'] = data['form']['close_fiscalyear'] diff --git a/journal.py b/journal.py index 7d6728f59a..8f4f303b13 100644 --- a/journal.py +++ b/journal.py @@ -1,7 +1,7 @@ #This file is part of Tryton. The COPYRIGHT file at the top level of this repository contains the full copyright notices and license terms. "Journal" -from trytond.osv import fields, OSV, ExceptORM +from trytond.osv import fields, OSV from trytond.wizard import Wizard, WizardOSV STATES = { @@ -148,6 +148,14 @@ class Period(OSV): 'You can only open one journal per period!'), ] self._order.insert(0, ('name', 'ASC')) + self._error_messages.update({ + 'modify_del_journal_period': 'You can not modify/delete ' \ + 'a journal - period with moves!', + 'create_journal_period': 'You can not create ' \ + 'a journal - period on a closed period!', + 'open_journal_period': 'You can not open ' \ + 'a journal - period from a closed period!', + }) def default_active(self, cursor, user, context=None): return True @@ -169,8 +177,8 @@ class Period(OSV): ('period', '=', period.period.id), ], limit=1, context=context) if move_ids: - raise ExceptORM('Error', 'You can not modify/delete ' \ - 'a journal - period with moves!') + self.raise_user_error(cursor, 'modify_del_journal_period', + context=context) return def create(self, cursor, user, vals, context=None): @@ -179,8 +187,8 @@ class Period(OSV): period = period_obj.browse(cursor, user, vals['period'], context=context) if period.state == 'close': - raise ExceptORM('UserError', 'You can not create ' \ - 'a journal - period on a closed period!') + self.raise_user_error(cursor, 'create_journal_period', + context=context) return super(Period, self).create(cursor, user, vals, context=context) def write(self, cursor, user, ids, vals, context=None): @@ -191,8 +199,8 @@ class Period(OSV): for journal_period in self.browse(cursor, user, ids, context=context): if journal_period.period.state == 'close': - raise ExceptORM('UserError', 'You can not open ' \ - 'a journal - period from a closed period!') + self.raise_user_error(cursor, 'open_journal_period', + context=context) return super(Period, self).write(cursor, user, ids, vals, context=context) diff --git a/move.py b/move.py index b5d45c6d4b..968801e79e 100644 --- a/move.py +++ b/move.py @@ -1,7 +1,7 @@ #This file is part of Tryton. The COPYRIGHT file at the top level of this repository contains the full copyright notices and license terms. 'Move' -from trytond.osv import fields, OSV, ExceptORM +from trytond.osv import fields, OSV from trytond.wizard import Wizard, WizardOSV from trytond.report import Report from decimal import Decimal @@ -56,6 +56,13 @@ class Move(OSV): ] self._order.insert(0, ('date', 'DESC')) self._order.insert(1, ('reference', 'DESC')) + self._error_messages.update({ + 'del_posted_move': 'You can not delete posted move!', + 'post_empty_move': 'You can not post an empty move!', + 'post_unbalanced_move': 'You can not post a unbalanced move!', + 'modify_posted_move': 'You can not modify a posted move ' \ + 'in this journal!', + }) def _auto_init(self, cursor, module_name): super(Move, self)._auto_init(cursor, module_name) @@ -163,8 +170,8 @@ class Move(OSV): move_line_obj = self.pool.get('account.move.line') for move in self.browse(cursor, user, ids, context=context): if move.state == 'posted': - raise ExceptORM('UserError', - 'You can not delete posted move!') + self.raise_user_error(cursor, 'del_posted_move', + context=context) if move.lines: move_line_ids = [x.id for x in move.lines] move_line_obj.unlink(cursor, user, move_line_ids, @@ -235,16 +242,16 @@ class Move(OSV): for move in moves: amount = Decimal('0.0') if not move.lines: - raise ExceptORM('UserError', - 'You can not post an empty move!') + self.raise_user_error(cursor, 'post_empty_move', + context=context) company = None for line in move.lines: amount += line.debit - line.credit if not company: company = line.account.company if not currency_obj.is_zero(cursor, user, company.currency, amount): - raise ExceptORM('UserError', - 'You can not post a unbalanced move!') + self.raise_user_error(cursor, 'post_unbalanced_move', + context=context) for move in moves: reference = sequence_obj.get_id(cursor, user, move.period.post_move_sequence.id) @@ -258,8 +265,8 @@ class Move(OSV): def draft(self, cursor, user, ids, context=None): for move in self.browse(cursor, user, ids, context=context): if not move.journal.update_posted: - raise ExceptORM('UserError', - 'You can not modify a posted move in this journal!') + self.raise_user_error(cursor, 'modify_posted_move', + context=context) return self.write(cursor, user, ids, { 'state': 'draft', }, context=context) @@ -289,6 +296,9 @@ class Reconciliation(OSV): 'nor in the same account, nor in account to reconcile!', ['lines']), ] + self._error_messages.update({ + 'modify': 'You can not modify a reconciliation!', + }) def default_name(self, cursor, user, context=None): sequence_obj = self.pool.get('ir.sequence') @@ -304,7 +314,7 @@ class Reconciliation(OSV): return res def write(self, cursor, user, ids, vals, context=None): - raise ExceptORM('UserError', 'You can not modify a reconciliation!') + self.raise_user_error(cursor, 'modify', context=context) def check_lines(self, cursor, user, ids): currency_obj = self.pool.get('currency.currency') @@ -402,6 +412,13 @@ class Line(OSV): 'on_write', ] self._order[0] = ('id', 'DESC') + self._error_messages.update({ + 'add_modify_closed_journal_period': 'You can not ' \ + 'add/modify lines in a closed journal period!', + 'modify_posted_move': 'You can not modify line from a posted move!', + 'modify_reconciled': 'You can not modify reconciled line!', + 'no_journal': 'No journal defined!', + }) def default_date(self, cursor, user, context=None): ''' @@ -923,9 +940,8 @@ class Line(OSV): journal_period = journal_period_obj.browse(cursor, user, journal_period_ids[0], context=context) if journal_period.state == 'close': - raise ExceptORM('UserError', - 'You can not add/modify lines \n' \ - 'in a closed journal period!') + self.raise_user_error(cursor, + 'add_modify_closed_journal_period', context=context) else: journal = journal_obj.browse(cursor, user, journal_id, context=context) @@ -945,11 +961,11 @@ class Line(OSV): journal_period_done = [] for line in self.browse(cursor, user, ids, context=context): if line.move.state == 'posted': - raise ExceptORM('UserError', - 'You can not modify line from a posted move!') + self.raise_user_error(cursor, 'modify_posted_move', + context=context) if line.reconciliation: - raise ExceptORM('UserError', - 'You can not modify reconciled line!') + self.raise_user_error(cursor, 'modify_reconciled', + context=context) journal_period = (line.journal.id, line.period.id) if journal_period not in journal_period_done: self.check_journal_period_modify(cursor, user, line.period.id, @@ -992,7 +1008,8 @@ class Line(OSV): if not vals.get('move'): journal_id = vals.get('journal', context.get('journal')) if not journal_id: - raise ExceptORM('Error', 'No journal defined!') + self.raise_user_error(cursor, 'no_journal', + context=context) journal = journal_obj.browse(cursor, user, journal_id, context=context) if journal.centralised: diff --git a/period.py b/period.py index 881b23faa3..f15ff2c5e5 100644 --- a/period.py +++ b/period.py @@ -1,7 +1,7 @@ #This file is part of Tryton. The COPYRIGHT file at the top level of this repository contains the full copyright notices and license terms. 'Period' -from trytond.osv import fields, OSV, ExceptORM +from trytond.osv import fields, OSV from trytond.wizard import Wizard import datetime @@ -39,6 +39,20 @@ class Period(OSV): 'per fiscal year!', ['post_move_sequence']), ] self._order.insert(0, ('start_date', 'ASC')) + self._error_messages.update({ + 'no_period_date': 'No period defined for this date!', + 'modify_del_period_moves': 'You can not modify/delete ' \ + 'a period with moves!', + 'create_period_closed_fiscalyear': 'You can not create ' \ + 'a period on a closed fiscal year!', + 'open_period_closed_fiscalyear': 'You can not open ' \ + 'a period from a closed fiscal year!', + 'change_post_move_sequence': 'You can not change ' \ + 'the post move sequence ' \ + 'if there is already posted move in the period', + 'close_period_non_posted_move': 'You can not close ' \ + 'a period with non posted moves!', + }) def default_state(self, cursor, user, context=None): return 'open' @@ -86,7 +100,8 @@ class Period(OSV): ], order=[('start_date', 'DESC')], limit=1, context=context) if not ids: if exception: - raise ExceptORM('Error', 'No period defined for this date!') + self.raise_user_error(cursor, 'no_period_date', + context=context) else: return False return ids[0] @@ -97,8 +112,8 @@ class Period(OSV): ('period', 'in', ids), ], limit=1, context=context) if move_ids: - raise ExceptORM('UserError', 'You can not modify/delete ' \ - 'a period with moves!') + self.raise_user_error(cursor, 'modify_del_period_moves', + context=context) return def search(self, cursor, user, args, offset=0, limit=None, order=None, @@ -126,8 +141,8 @@ class Period(OSV): fiscalyear = fiscalyear_obj.browse(cursor, user, vals['fiscalyear'], context=context) if fiscalyear.state == 'close': - raise ExceptORM('UserError', 'You can not create ' \ - 'a period on a closed fiscal year!') + self.raise_user_error(cursor, + 'create_period_closed_fiscalyear', context=context) if not vals.get('post_move_sequence'): vals['post_move_sequence'] = fiscalyear.post_move_sequence.id return super(Period, self).create(cursor, user, vals, context=context) @@ -142,8 +157,8 @@ class Period(OSV): for period in self.browse(cursor, user, ids, context=context): if period.fiscalyear.state == 'close': - raise ExceptORM('UserError', 'You can not open ' \ - 'a period from a closed fiscal year!') + self.raise_user_error(cursor, + 'open_period_closed_fiscalyear', context=context) if vals.get('post_move_sequence'): for period in self.browse(cursor, user, ids, context=context): if period.post_move_sequence and \ @@ -153,9 +168,8 @@ class Period(OSV): ('period', '=', period.id), ('state', '=', 'posted'), ], context=context): - raise ExceptORM('UserError', 'You can not change ' \ - 'the post move sequence \n' \ - 'if there is already posted move in the period') + self.raise_user_error(cursor, + 'change_post_move_sequence', context=context) return super(Period, self).write(cursor, user, ids, vals, context=context) @@ -175,8 +189,8 @@ class Period(OSV): ('period', 'in', ids), ('state', '!=', 'posted'), ], context=context): - raise ExceptORM('UserError', 'You can not close ' \ - 'a period with non posted moves!') + self.raise_user_error(cursor, 'close_period_non_posted_move', + context=context) #First close the period to be sure #it will not have new journal.period created between. self.write(cursor, user, ids, {