diff --git a/addons/account/models/account_invoice.py b/addons/account/models/account_invoice.py index ab46cde5838..58fab13d628 100644 --- a/addons/account/models/account_invoice.py +++ b/addons/account/models/account_invoice.py @@ -1578,6 +1578,7 @@ class AccountInvoiceLine(models.Model): help="Gives the sequence of this line when displaying the invoice.") invoice_id = fields.Many2one('account.invoice', string='Invoice Reference', ondelete='cascade', index=True) + invoice_type = fields.Selection(related='invoice_id.type', readonly=True) uom_id = fields.Many2one('uom.uom', string='Unit of Measure', ondelete='set null', index=True, oldname='uos_id') product_id = fields.Many2one('product.product', string='Product', diff --git a/addons/account/models/reconciliation_widget.py b/addons/account/models/reconciliation_widget.py index f6da8354bf5..874570dd3da 100644 --- a/addons/account/models/reconciliation_widget.py +++ b/addons/account/models/reconciliation_widget.py @@ -339,7 +339,11 @@ class AccountReconciliation(models.AbstractModel): rec_prop = aml_ids and self.env['account.move.line'].browse(aml_ids) or self._get_move_line_reconciliation_proposition(account.id, partner_id) row['reconciliation_proposition'] = self._prepare_move_lines(rec_prop, target_currency=currency) row['company_id'] = account.company_id.id - return rows + + # Return the partners with a reconciliation proposition first, since they are most likely to + # be reconciled. + return [r for r in rows if r['reconciliation_proposition']] + [r for r in rows if not r['reconciliation_proposition']] + @api.model def process_move_lines(self, data): diff --git a/addons/account/views/account_invoice_view.xml b/addons/account/views/account_invoice_view.xml index 1e09d4b6935..2617974de75 100644 --- a/addons/account/views/account_invoice_view.xml +++ b/addons/account/views/account_invoice_view.xml @@ -77,8 +77,11 @@ + + + + context="{'partner_id': partner_id}"/>