diff --git a/addons/account/account.py b/addons/account/account.py
index cbab98b01ea..6512a9c1c1a 100644
--- a/addons/account/account.py
+++ b/addons/account/account.py
@@ -648,7 +648,7 @@ class account_move(osv.osv):
data_move = self.pool.get('account.move').browse(cursor,user,ids)
for move in data_move:
if move.state=='draft':
- name = '*' + move.name
+ name = '*' + str(move.id)
else:
name = move.name
res.append((move.id, name))
@@ -671,7 +671,7 @@ class account_move(osv.osv):
return result
_columns = {
- 'name': fields.char('Entry Name', size=64, required=True),
+ 'name': fields.char('Entry Number', size=64, required=True),
'ref': fields.char('Ref', size=64),
'period_id': fields.many2one('account.period', 'Period', required=True, states={'posted':[('readonly',True)]}),
'journal_id': fields.many2one('account.journal', 'Journal', required=True, states={'posted':[('readonly',True)]}),
@@ -692,6 +692,7 @@ class account_move(osv.osv):
],'Type', readonly=True, select=True, states={'draft':[('readonly',False)]}),
}
_defaults = {
+ 'name': lambda *a: '/',
'state': lambda *a: 'draft',
'period_id': _get_period,
'type' : lambda *a : 'journal_voucher',
@@ -727,6 +728,17 @@ class account_move(osv.osv):
]
def post(self, cr, uid, ids, context=None):
if self.validate(cr, uid, ids, context) and len(ids):
+ for move in self.browse(cr, uid, ids):
+ if move.name =='/':
+ new_name = False
+ journal = move.journal_id
+ if journal.sequence_id:
+ new_name = self.pool.get('ir.sequence').get_id(cr, uid, journal.sequence_id.id)
+ else:
+ raise osv.except_osv(_('Error'), _('No sequence defined in the journal !'))
+ if new_name:
+ self.write(cr, uid, [move.id], {'name':new_name})
+
cr.execute('update account_move set state=%s where id in ('+','.join(map(str,ids))+')', ('posted',))
else:
raise osv.except_osv(_('Integrity Error !'), _('You can not validate a non balanced entry !'))
@@ -772,12 +784,6 @@ class account_move(osv.osv):
l[2]['period_id'] = default_period
context['period_id'] = default_period
- if not 'name' in vals:
- journal = self.pool.get('account.journal').browse(cr, uid, context.get('journal_id', vals.get('journal_id', False)))
- if journal.sequence_id:
- vals['name'] = self.pool.get('ir.sequence').get_id(cr, uid, journal.sequence_id.id)
- else:
- raise osv.except_osv(_('Error'), _('No sequence defined in the journal !'))
accnt_journal = self.pool.get('account.journal').browse(cr, uid, vals['journal_id'])
if 'line_id' in vals:
c = context.copy()
@@ -788,6 +794,13 @@ class account_move(osv.osv):
result = super(account_move, self).create(cr, uid, vals, context)
return result
+ def copy(self, cr, uid, id, default=None, context=None):
+ if default is None:
+ default = {}
+ default = default.copy()
+ default.update({'state':'draft', 'name':'/',})
+ return super(account_move, self).copy(cr, uid, id, default, context)
+
def unlink(self, cr, uid, ids, context={}, check=True):
toremove = []
for move in self.browse(cr, uid, ids, context):
diff --git a/addons/account/account_view.xml b/addons/account/account_view.xml
index 6de5754e9b8..5eb03163c51 100644
--- a/addons/account/account_view.xml
+++ b/addons/account/account_view.xml
@@ -797,7 +797,8 @@