diff --git a/account_payment_return/models/payment_return.py b/account_payment_return/models/payment_return.py
index 67e35222c02..6f20aa2861e 100644
--- a/account_payment_return/models/payment_return.py
+++ b/account_payment_return/models/payment_return.py
@@ -365,8 +365,7 @@ def match_invoice(self):
invoice = self.env["account.move"].search(domain)
if invoice:
invoice_line_ids = invoice.line_ids.filtered(
- lambda line: line.account_id.user_type_id.type
- in ("receivable", "payable")
+ lambda line: line.account_internal_type == "receivable"
)
payment_lines = invoice_line_ids.mapped(
"matched_debit_ids.debit_move_id"
@@ -375,7 +374,8 @@ def match_invoice(self):
"matched_credit_ids.credit_move_id"
)
if payment_lines:
- line.move_line_ids = payment_lines[0].ids
+ # Get last payment if several payments
+ line.move_line_ids = payment_lines[-1].ids
if not line.concept:
line.concept = _("Invoice: %s") % invoice.name
@@ -384,12 +384,12 @@ def match_move_lines(self):
domain = line.partner_id and [("partner_id", "=", line.partner_id.id)] or []
if line.return_id.journal_id:
domain += [
- ("journal_id", "=", line.return_id.journal_id.id),
+ ("credit", ">", 0.0),
("move_id.type", "=", "entry"),
]
domain.extend(
[
- ("account_id.internal_type", "=", "receivable"),
+ ("account_internal_type", "=", "receivable"),
("reconciled", "=", True),
"|",
("name", "=", line.reference),
diff --git a/account_payment_return/views/payment_return_view.xml b/account_payment_return/views/payment_return_view.xml
index 390fdde2c0e..d16ed4c9a5f 100644
--- a/account_payment_return/views/payment_return_view.xml
+++ b/account_payment_return/views/payment_return_view.xml
@@ -79,10 +79,12 @@
name="move_line_ids"
widget="many2many_tags"
options="{'no_create': True}"
- domain="[('partner_id', '=', partner_id),
- ('journal_id', '=', parent.journal_id),
- ('account_id.internal_type', '=', 'receivable'),
- ('reconciled', '=', True)]"
+ domain="[
+ ('partner_id', '=', partner_id),
+ ('credit', '>', 0.0),
+ ('account_internal_type', '=', 'receivable'),
+ ('reconciled', '=', True)
+ ]"
/>