- debit = credit = 0.0
- context.update({'date':inv.date_invoice})
- context_unreconciled=context.copy()
- for lines in inv.move_lines:
- debit_tmp = lines.debit
- credit_tmp = lines.credit
- # If currency conversion needed
- if inv.company_id.currency_id.id <> inv.currency_id.id:
- # If invoice paid, compute currency amount according to invoice date
- # otherwise, take the line date
- if not inv.reconciled:
- context.update({'date':lines.date})
- context_unreconciled.update({'date':lines.date})
- # If amount currency setted, compute for debit and credit in company currency
- if lines.amount_currency < 0:
- credit_tmp=abs(cur_obj.compute(cr, uid, lines.currency_id.id, inv.company_id.currency_id.id, lines.amount_currency, round=False,context=context_unreconciled))
- elif lines.amount_currency > 0:
- debit_tmp=abs(cur_obj.compute(cr, uid, lines.currency_id.id, inv.company_id.currency_id.id, lines.amount_currency, round=False,context=context_unreconciled))
- # Then, recomput into invoice currency to avoid rounding trouble !
- debit += cur_obj.compute(cr, uid, inv.company_id.currency_id.id, inv.currency_id.id, debit_tmp, round=False,context=context)
- credit += cur_obj.compute(cr, uid, inv.company_id.currency_id.id, inv.currency_id.id, credit_tmp, round=False,context=context)
+ if inv.reconciled:
+ res[inv.id] = 0.0
+ continue
+ inv_total = inv.amount_total
+ context_unreconciled = context.copy()
+ for lines in inv.payment_ids:
+ if lines.amount_currency and lines.currency_id.id == inv.currency_id.id:
+ if inv.type in ('out_invoice','in_refund'):
+ inv_total += lines.amount_currency
+ else:
+ inv_total -= lines.amount_currency