[IMP] account: display payment amount in its own currency
The payment widget now displays the payment in its currency, not in the currency of the invoice. opw-652747
This commit is contained in:
@@ -137,28 +137,29 @@ class AccountInvoice(models.Model):
|
|||||||
if self.payment_move_line_ids:
|
if self.payment_move_line_ids:
|
||||||
info = {'title': _('Less Payment'), 'outstanding': False, 'content': []}
|
info = {'title': _('Less Payment'), 'outstanding': False, 'content': []}
|
||||||
for payment in self.payment_move_line_ids:
|
for payment in self.payment_move_line_ids:
|
||||||
|
#we don't take into account the movement created due to a change difference
|
||||||
|
if payment.currency_id and payment.move_id.rate_diff_partial_rec_id:
|
||||||
|
continue
|
||||||
if self.type in ('out_invoice', 'in_refund'):
|
if self.type in ('out_invoice', 'in_refund'):
|
||||||
amount = sum([p.amount for p in payment.matched_debit_ids if p.debit_move_id in self.move_id.line_ids])
|
amount = sum([p.amount for p in payment.matched_debit_ids if p.debit_move_id in self.move_id.line_ids])
|
||||||
amount_currency = sum([p.amount_currency for p in payment.matched_debit_ids if p.debit_move_id in self.move_id.line_ids])
|
amount_currency = sum([p.amount_currency for p in payment.matched_debit_ids if p.debit_move_id in self.move_id.line_ids])
|
||||||
elif self.type in ('in_invoice', 'out_refund'):
|
elif self.type in ('in_invoice', 'out_refund'):
|
||||||
amount = sum([p.amount for p in payment.matched_credit_ids if p.credit_move_id in self.move_id.line_ids])
|
amount = sum([p.amount for p in payment.matched_credit_ids if p.credit_move_id in self.move_id.line_ids])
|
||||||
amount_currency = sum([p.amount_currency for p in payment.matched_credit_ids if p.credit_move_id in self.move_id.line_ids])
|
amount_currency = sum([p.amount_currency for p in payment.matched_credit_ids if p.credit_move_id in self.move_id.line_ids])
|
||||||
#we don't take into account the movement created due to a change difference
|
|
||||||
if payment.currency_id and payment.move_id.rate_diff_partial_rec_id:
|
|
||||||
continue
|
|
||||||
# get the payment value in invoice currency
|
# get the payment value in invoice currency
|
||||||
if payment.currency_id and amount_currency != 0:
|
if payment.currency_id and amount_currency != 0:
|
||||||
|
currency_id = payment.currency_id
|
||||||
amount_to_show = -amount_currency
|
amount_to_show = -amount_currency
|
||||||
else:
|
else:
|
||||||
self.with_context(date=payment.date)
|
currency_id = payment.company_id.currency_id
|
||||||
amount_to_show = payment.company_id.currency_id.compute(-amount, self.currency_id)
|
amount_to_show = -amount
|
||||||
info['content'].append({
|
info['content'].append({
|
||||||
'name': payment.name,
|
'name': payment.name,
|
||||||
'journal_name': payment.journal_id.name,
|
'journal_name': payment.journal_id.name,
|
||||||
'amount': amount_to_show,
|
'amount': amount_to_show,
|
||||||
'currency': self.currency_id.symbol,
|
'currency': currency_id.symbol,
|
||||||
'digits': [69, self.currency_id.decimal_places],
|
'digits': [69, currency_id.decimal_places],
|
||||||
'position': self.currency_id.position,
|
'position': currency_id.position,
|
||||||
'date': payment.date,
|
'date': payment.date,
|
||||||
'payment_id': payment.id,
|
'payment_id': payment.id,
|
||||||
'move_id': payment.move_id.id,
|
'move_id': payment.move_id.id,
|
||||||
|
|||||||
Reference in New Issue
Block a user