diff --git a/addons/account/account.py b/addons/account/account.py
index 01cc9575357..1817d50901e 100644
--- a/addons/account/account.py
+++ b/addons/account/account.py
@@ -1163,8 +1163,20 @@ class account_move(osv.osv):
# TODO: Check if period is closed !
#
def create(self, cr, uid, vals, context={}):
- if 'line_id' in vals:
- if 'journal_id' in vals:
+ if 'line_id' in vals and context.get('copy'):
+ for l in vals['line_id']:
+ if not l[0]:
+ l[2].update({
+ 'reconcile_id':False,
+ 'reconcil_partial_id':False,
+ 'analytic_lines':False,
+ 'invoice':False,
+ 'ref':False,
+ 'balance':False,
+ 'account_tax_id':False,
+ })
+
+ if 'journal_id' in vals and vals.get('journal_id', False):
for l in vals['line_id']:
if not l[0]:
l[2]['journal_id'] = vals['journal_id']
@@ -1190,11 +1202,14 @@ 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':'/',})
+ def copy(self, cr, uid, id, default={}, context={}):
+ default.update({
+ 'state':'draft',
+ 'name':'/',
+ })
+ context.update({
+ 'copy':True
+ })
return super(account_move, self).copy(cr, uid, id, default, context)
def unlink(self, cr, uid, ids, context={}, check=True):
diff --git a/addons/account/account_move_line.py b/addons/account/account_move_line.py
index 76989d2f02c..d60d01bd824 100644
--- a/addons/account/account_move_line.py
+++ b/addons/account/account_move_line.py
@@ -20,7 +20,6 @@
##############################################################################
import time
from datetime import datetime
-
import netsvc
from osv import fields, osv
from tools.translate import _
@@ -454,6 +453,7 @@ class account_move_line(osv.osv):
context=context)
dt = period.date_start
return dt
+
def _get_currency(self, cr, uid, context={}):
if not context.get('journal_id', False):
return False
@@ -1110,10 +1110,10 @@ class account_move_line(osv.osv):
#if not 'currency_id' in vals:
# vals['currency_id'] = account.company_id.currency_id.id
-
+
result = super(osv.osv, self).create(cr, uid, vals, context)
# CREATE Taxes
- if vals.get('account_tax_id',False):
+ if vals.get('account_tax_id', False):
tax_id = tax_obj.browse(cr, uid, vals['account_tax_id'])
total = vals['debit'] - vals['credit']
if journal.refund_journal:
@@ -1186,7 +1186,7 @@ class account_move_line(osv.osv):
if check and ((not context.get('no_store_function')) or journal.entry_posted):
tmp = self.pool.get('account.move').validate(cr, uid, [vals['move_id']], context)
if journal.entry_posted and tmp:
- self.pool.get('account.move').button_validate(cr,uid, [vals['move_id']],context)
+ rs = self.pool.get('account.move').button_validate(cr,uid, [vals['move_id']],context)
return result
account_move_line()
diff --git a/addons/account/account_view.xml b/addons/account/account_view.xml
index c6f1e04666f..573fa104b7b 100644
--- a/addons/account/account_view.xml
+++ b/addons/account/account_view.xml
@@ -1105,7 +1105,7 @@
-
+
@@ -1125,7 +1125,6 @@
-