← Back to team overview

openerp-community-reviewer team mailing list archive

[Merge] lp:~pedro.baeza/ocb-addons/6.1-fix-1223243 into lp:ocb-addons/6.1

 

Pedro Manuel Baeza has proposed merging lp:~pedro.baeza/ocb-addons/6.1-fix-1223243 into lp:ocb-addons/6.1.

Requested reviews:
  OpenERP Community Backports Team (ocb)

For more details, see:
https://code.launchpad.net/~pedro.baeza/ocb-addons/6.1-fix-1223243/+merge/198291

Improvement made on 7.0 when posting account move lines. I have to admit that I haven't fully tested it, but overall checks are OK and the improvement deserves to make the MP.

Regards.
-- 
https://code.launchpad.net/~pedro.baeza/ocb-addons/6.1-fix-1223243/+merge/198291
Your team OpenERP Community Backports Team is requested to review the proposed merge of lp:~pedro.baeza/ocb-addons/6.1-fix-1223243 into lp:ocb-addons/6.1.
=== modified file 'account/account.py'
--- account/account.py	2013-11-20 01:17:39 +0000
+++ account/account.py	2013-12-09 17:06:05 +0000
@@ -1422,11 +1422,14 @@
                         l[2]['period_id'] = default_period
                 context['period_id'] = default_period
 
-        if 'line_id' in vals:
+        if vals.get('line_id', False):
             c = context.copy()
             c['novalidate'] = True
             result = super(account_move, self).create(cr, uid, vals, c)
-            self.validate(cr, uid, [result], context)
+            tmp = self.validate(cr, uid, [result], context)
+            journal = self.pool.get('account.journal').browse(cr, uid, vals['journal_id'], context)
+            if journal.entry_posted and tmp:
+                self.button_validate(cr,uid, [result], context)
         else:
             result = super(account_move, self).create(cr, uid, vals, context)
         return result
@@ -1569,11 +1572,6 @@
         obj_analytic_line = self.pool.get('account.analytic.line')
         obj_move_line = self.pool.get('account.move.line')
         for move in self.browse(cr, uid, ids, context):
-            # Unlink old analytic lines on move_lines
-            for obj_line in move.line_id:
-                for obj in obj_line.analytic_lines:
-                    obj_analytic_line.unlink(cr,uid,obj.id)
-
             journal = move.journal_id
             amount = 0
             line_ids = []

=== modified file 'account/account_move_line.py'
--- account/account_move_line.py	2012-09-06 14:35:17 +0000
+++ account/account_move_line.py	2013-12-09 17:06:05 +0000
@@ -171,6 +171,8 @@
             if obj_line.analytic_account_id:
                 if not obj_line.journal_id.analytic_journal_id:
                     raise osv.except_osv(_('No Analytic Journal !'),_("You have to define an analytic journal on the '%s' journal!") % (obj_line.journal_id.name, ))
+                if obj_line.analytic_lines:
+                    acc_ana_line_obj.unlink(cr,uid,[obj.id for obj in obj_line.analytic_lines])
                 amt = (obj_line.credit or  0.0) - (obj_line.debit or 0.0)
                 vals_lines = {
                     'name': obj_line.name,
@@ -1316,20 +1318,6 @@
         if not ok:
             raise osv.except_osv(_('Bad account !'), _('You can not use this general account in this journal, check the tab \'Entry Controls\' on the related journal !'))
 
-        if vals.get('analytic_account_id',False):
-            if journal.analytic_journal_id:
-                vals['analytic_lines'] = [(0,0, {
-                        'name': vals['name'],
-                        'date': vals.get('date', time.strftime('%Y-%m-%d')),
-                        'account_id': vals.get('analytic_account_id', False),
-                        'unit_amount': vals.get('quantity', 1.0),
-                        'amount': vals.get('debit', 0.0) or vals.get('credit', 0.0),
-                        'general_account_id': vals.get('account_id', False),
-                        'journal_id': journal.analytic_journal_id.id,
-                        'ref': vals.get('ref', False),
-                        'user_id': uid
-            })]
-
         result = super(account_move_line, self).create(cr, uid, vals, context=context)
         # CREATE Taxes
         if vals.get('account_tax_id', False):
@@ -1391,7 +1379,7 @@
                     self.create(cr, uid, data, context)
             del vals['account_tax_id']
 
-        if check and ((not context.get('no_store_function')) or journal.entry_posted):
+        if check and not context.get('novalidate') and ((not context.get('no_store_function')) or journal.entry_posted):
             tmp = move_obj.validate(cr, uid, [vals['move_id']], context)
             if journal.entry_posted and tmp:
                 move_obj.button_validate(cr,uid, [vals['move_id']], context)


Follow ups