diff --git a/addons/account/account_move_line.py b/addons/account/account_move_line.py
index f1a1050cf81..46d18515df4 100644
--- a/addons/account/account_move_line.py
+++ b/addons/account/account_move_line.py
@@ -676,7 +676,83 @@ class account_move_line(osv.osv):
if update_check:
if ('account_id' in vals) or ('journal_id' in vals) or ('period_id' in vals) or ('move_id' in vals) or ('debit' in vals) or ('credit' in vals) or ('date' in vals):
self._update_check(cr, uid, ids, context)
+
+ obj_line=self.browse(cr, uid, ids[0])
+ lines={}
+
+ obj_analytic_line=self.pool.get('account.analytic.line')
+ analytic=True
+ journal_flag=False
+ del_line=False
+
+ if ('journal_id' in vals):
+ journal=self.pool.get('account.journal').browse(cr,uid,vals['journal_id'])
+ journal_flag=True
+ if not journal.analytic_journal_id:
+ del_line=True
+
+ if ('analytic_account_id' in vals) and (not vals['analytic_account_id']):
+ del_line=True
+
+ if del_line:
+ for obj in obj_line.analytic_lines:
+ obj_analytic_line.unlink(cr,uid,obj.id)
+ analytic=False
+
+ if obj_line.analytic_lines:
+ mode='write'
+ else:
+ mode='create'
+
+ if obj_line.analytic_lines and analytic:
+ if ('analytic_account_id' in vals):
+ lines['account_id'] = vals['analytic_account_id']
+
+ if ('account_id' in vals):
+ lines['general_account_id'] = vals['account_id']
+
+ if ('name' in vals):
+ lines['name'] = vals['name']
+
+ if ('date' in vals):
+ lines['date'] = vals['date']
+
+ if ('ref' in vals and vals['ref']):
+ lines['ref'] = vals['ref']
+
+ if ('quantity' in vals and vals['quantity']):
+ lines['unit_amount'] = vals['quantity']
+
+ if ('credit' in vals and vals['credit']):
+ lines['amount'] = vals['credit']
+
+ if ('debit' in vals and vals['debit']):
+ lines['amount'] = vals['debit']
+
+ if journal_flag:
+ lines['journal_id']=journal.analytic_journal_id.id
+
+ if lines:
+ if mode=='write':
+ obj_analytic_line.write(cr,uid,obj_line.analytic_lines[0].id,lines,context)
+
result = super(osv.osv, self).write(cr, uid, ids, vals, context)
+
+ if mode=='create' and analytic and obj_line.analytic_account_id:
+ if obj_line.journal_id.analytic_journal_id:
+ vals_lines={
+ 'name': obj_line.name,
+ 'date': obj_line.date,
+ 'account_id': obj_line.analytic_account_id.id,
+ 'unit_amount':obj_line.quantity,
+ 'amount': obj_line.debit or obj_line.credit,
+ 'general_account_id': obj_line.account_id.id,
+ 'journal_id': obj_line.journal_id.analytic_journal_id.id,
+ 'ref': obj_line.ref,
+ 'move_id':obj_line.id
+ }
+ obj_analytic_line.create(cr,uid,vals_lines)
+
if check:
done = []
for line in self.browse(cr, uid, ids):
@@ -786,20 +862,20 @@ class account_move_line(osv.osv):
if not ok:
raise osv.except_osv(_('Bad account !'), _('You can not use this general account in this journal !'))
- result = super(osv.osv, self).create(cr, uid, vals, context)
+# result = super(osv.osv, self).create(cr, uid, vals, context)
if 'analytic_account_id' in vals and vals['analytic_account_id']:
if journal.analytic_journal_id:
vals['analytic_lines'] = [(0,0, {
'name': vals['name'],
'date': vals['date'],
'account_id': vals['analytic_account_id'],
- 'unit_amount': vals['quantity'],
+ 'unit_amount':'quantity' in vals and vals['quantity'] or 1.0,
'amount': vals['debit'] or vals['credit'],
'general_account_id': vals['account_id'],
'journal_id': journal.analytic_journal_id.id,
'ref': vals['ref'],
})]
-
+ result = super(osv.osv, self).create(cr, uid, vals, context)
# CREATE Taxes
if 'account_tax_id' in vals and vals['account_tax_id']:
tax_id=tax_obj.browse(cr,uid,vals['account_tax_id'])
diff --git a/addons/account/account_view.xml b/addons/account/account_view.xml
index 012f63a4392..f6bec6d77ff 100644
--- a/addons/account/account_view.xml
+++ b/addons/account/account_view.xml
@@ -717,10 +717,10 @@
-
+
diff --git a/addons/event/event.py b/addons/event/event.py
index d1058f6cf1e..0c849f6e03b 100644
--- a/addons/event/event.py
+++ b/addons/event/event.py
@@ -1,7 +1,7 @@
# -*- encoding: utf-8 -*-
##############################################################################
#
-# OpenERP, Open Source Management Solution
+# OpenERP, Open Source Management Solution
# Copyright (C) 2004-2008 Tiny SPRL (). All Rights Reserved
# $Id$
#
@@ -237,7 +237,8 @@ class event_registration(osv.osv):
_defaults = {
'nb_register': lambda *a: 1,
'tobe_invoiced' : lambda *a: True,
- 'name': lambda *a: 'Registration'
+ 'name': lambda *a: 'Registration',
+ 'state': lambda *b: 'draft'
}
def onchange_badge_name(self, cr, uid, ids, badge_name):