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) + ]" />