[FIX] account_voucher: account vocher unreconcilation problem
author <hbto> <>
Thu, 9 Feb 2012 07:28:15 +0000 (12:58 +0530)
committerRifakat (OpenERP) <rha@tinyerp.com>
Thu, 9 Feb 2012 07:28:15 +0000 (12:58 +0530)
lp bug: https://launchpad.net/bugs/928616 fixed

bzr revid: rha@tinyerp.com-20120209072815-wkfc3imxot6la15h

addons/account_voucher/account_voucher.py

index 4f330d4..7cd9d85 100644 (file)
@@ -583,29 +583,17 @@ class account_voucher(osv.osv):
         move_pool = self.pool.get('account.move')
         move_line_pool = self.pool.get('account.move.line')
         wf_service = netsvc.LocalService("workflow")
-
+        invoice_ids = []
         for voucher in self.browse(cr, uid, ids, context=context):
-            recs = []
-            invoice_ids = []
             for line in voucher.move_ids:
                 if line.reconcile_id:
-                    invoice_ids = [rec_line.invoice.id for rec_line in line.reconcile_id.line_id if rec_line.invoice]
-                    recs.append(line.reconcile_id.id)
+                    invoice_ids += [rec_line.invoice.id for rec_line in line.reconcile_id.line_id if rec_line.invoice]
                     move_lines = [move_line.id for move_line in line.reconcile_id.line_id]
                     move_lines.remove(line.id)
-                    partial_ids = reconcile_pool.create(cr, uid, {
-                        'type': 'auto',
-                        'line_id': False,
-                        'line_partial_ids': [(6, 0, move_lines)]})
-                    
-                    move_line_pool.write(cr, uid, move_lines, {
-                        'reconcile_id': False,
-                        'reconcile_partial_id': partial_ids
-                    }, update_check=False)
+                    reconcile_pool.unlink(cr, uid, line.reconcile_id.id)
+                    move_line_pool.reconcile_partial(cr, uid, move_lines, 'auto',context=context)
                 elif line.reconcile_partial_id:
-                    invoice_ids = [rec_line.invoice.id for rec_line in line.reconcile_partial_id.line_partial_ids if rec_line.invoice]
-            if recs:
-                reconcile_pool.unlink(cr, uid, recs)
+                    invoice_ids += [rec_line.invoice.id for rec_line in line.reconcile_partial_id.line_partial_ids if rec_line.invoice]
             if voucher.move_id:
                 move_pool.button_cancel(cr, uid, [voucher.move_id.id])
                 move_pool.unlink(cr, uid, [voucher.move_id.id])
@@ -613,8 +601,8 @@ class account_voucher(osv.osv):
             'state':'cancel',
             'move_id':False,
         }
-        if invoice_ids:
-            wf_service.trg_validate(uid, 'account.invoice', invoice_ids[0], 'open_test', cr)
+        for inv_id in invoice_ids:
+            wf_service.trg_validate(uid, 'account.invoice', inv_id, 'open_test', cr)
         self.write(cr, uid, ids, res)
         return True