[FIX] account: fix the residual amount computation while move line entries through...
authorRifakat <rha@tinyerp.com>
Thu, 12 Jul 2012 09:15:55 +0000 (14:45 +0530)
committerRifakat <rha@tinyerp.com>
Thu, 12 Jul 2012 09:15:55 +0000 (14:45 +0530)
bzr revid: rha@tinyerp.com-20120712091555-34d390vpbphtflmr

addons/account/account_invoice.py

index bbb002c..14fd7c1 100644 (file)
@@ -93,11 +93,17 @@ class account_invoice(osv.osv):
     def _amount_residual(self, cr, uid, ids, name, args, context=None):
         result = {}
         for invoice in self.browse(cr, uid, ids, context=context):
+            checked_partial_rec_ids = []
             result[invoice.id] = 0.0
             if invoice.move_id:
-                for m in invoice.move_id.line_id:
-                    if m.account_id.type in ('receivable','payable'):
-                        result[invoice.id] += m.amount_residual_currency
+                for move_line in invoice.move_id.line_id:
+                    if move_line.account_id.type in ('receivable','payable'):
+                        if move_line.reconcile_partial_id:
+                            partial_reconcile_id = move_line.reconcile_partial_id.id
+                            if partial_reconcile_id in checked_partial_rec_ids:
+                                continue
+                            checked_partial_rec_ids.append(partial_reconcile_id)
+                        result[invoice.id] += move_line.amount_residual_currency
         return result
 
     # Give Journal Items related to the payment reconciled to this invoice