From 8997f607bd92b3776fb2eeda8f93b8913b888c1e Mon Sep 17 00:00:00 2001 From: "qdp-launchpad@tinyerp.com" <> Date: Fri, 3 Sep 2010 19:06:04 +0200 Subject: [PATCH] [IMP] account: made required the field sequence_id on account.journal (in the object)! + also some small usability changes bzr revid: qdp-launchpad@tinyerp.com-20100903170604-74e6p93c102zuqpa --- addons/account/account.py | 46 +++++++++++++-------------------- addons/account/account_view.xml | 2 +- 2 files changed, 19 insertions(+), 29 deletions(-) diff --git a/addons/account/account.py b/addons/account/account.py index 9caefac168e..6f55aed1f36 100644 --- a/addons/account/account.py +++ b/addons/account/account.py @@ -599,8 +599,8 @@ class account_journal(osv.osv): _name = "account.journal" _description = "Journal" _columns = { - 'name': fields.char('Journal Name', size=64, required=True, translate=True,help="Name of the journal"), - 'code': fields.char('Code', size=16,required=True,help="Code of the journal"), + 'name': fields.char('Journal Name', size=64, required=True, translate=True), + 'code': fields.char('Code', size=16, required=True, help="The code will be used to generate the numbers of the journal entries of this journal."), 'type': fields.selection([('sale', 'Sale'),('sale_refund','Sale Refund'), ('purchase', 'Purchase'), ('purchase_refund','Purchase Refund'),('expense', 'Expense'), ('cash', 'Cash'), ('bank', 'Bank and Cheques'), ('general', 'General'), ('situation', 'Situation')], 'Type', size=32, required=True, help="Select 'Sale' for Sale journal to be used at the time of making invoice."\ " Select 'Purchase' for Purchase Journal to be used at the time of approving purchase order."\ @@ -616,7 +616,7 @@ class account_journal(osv.osv): 'centralisation': fields.boolean('Centralised counterpart', help="Check this box to determine that each entry of this journal won't create a new counterpart but will share the same counterpart. This is used in fiscal year closing."), 'update_posted': fields.boolean('Allow Cancelling Entries', help="Check this box if you want to allow the cancellation the entries related to this journal or of the invoice related to this journal"), 'group_invoice_lines': fields.boolean('Group Invoice Lines', help="If this box is checked, the system will try to group the accounting lines when generating them from invoices."), - 'sequence_id': fields.many2one('ir.sequence', 'Entry Sequence', help="The sequence gives the display order for a list of journals", required=False), + 'sequence_id': fields.many2one('ir.sequence', 'Entry Sequence', help="This field contains the informatin related to the numbering of the journal entries of this journal.", required=True), 'user_id': fields.many2one('res.users', 'User', help="The user responsible for this journal"), 'groups_id': fields.many2many('res.groups', 'account_journal_group_rel', 'journal_id', 'group_id', 'Groups'), 'currency': fields.many2one('res.currency', 'Currency', help='The currency used to enter statement'), @@ -640,7 +640,7 @@ class account_journal(osv.osv): raise osv.except_osv(_('Warning !'), _('You cannot modify company of this journal as its related record exist in Entry Lines')) return super(account_journal, self).write(cr, uid, ids, vals, context=context) - def create_sequence(self, cr, uid, ids, context={}): + def create_sequence(self, cr, uid, vals, context={}): """ Create new entry sequence for every new Joural @param cr: cursor to database @@ -663,39 +663,29 @@ class account_journal(osv.osv): date_pool = self.pool.get('ir.model.data') result = True + name = vals['name'] + code = vals['code'].lower() - journal = self.browse(cr, uid, ids[0], context) - code = journal.code.lower() types = { - 'name':journal.name, - 'code':code + 'name': name, + 'code': code } type_id = seq_typ_pool.create(cr, uid, types) seq = { - 'name':journal.name, - 'code':code, - 'active':True, - 'prefix':journal.code + "/%(year)s/", - 'padding':4, - 'number_increment':1 + 'name': name, + 'code': code, + 'active': True, + 'prefix': code + "/%(year)s/", + 'padding': 4, + 'number_increment': 1 } - seq_id = seq_pool.create(cr, uid, seq) - - res = {} - if not journal.sequence_id: - res.update({ - 'sequence_id':seq_id - }) - - result = self.write(cr, uid, [journal.id], res) - - return result + return seq_pool.create(cr, uid, seq) def create(self, cr, uid, vals, context={}): - journal_id = super(account_journal, self).create(cr, uid, vals, context) - self.create_sequence(cr, uid, [journal_id], context) - return journal_id + if not 'sequence_id' in vals or not vals['sequence_id']: + vals.update({'sequence_id' : self.create_sequence(cr, uid, vals, context)}) + return super(account_journal, self).create(cr, uid, vals, context) def name_search(self, cr, user, name, args=None, operator='ilike', context=None, limit=100): if not args: diff --git a/addons/account/account_view.xml b/addons/account/account_view.xml index 004172d1dae..bf1aadd48be 100644 --- a/addons/account/account_view.xml +++ b/addons/account/account_view.xml @@ -408,7 +408,7 @@ - +