From 99fc25448c0f9e906e1188192520fb3dd60b86b4 Mon Sep 17 00:00:00 2001 From: Florent de Labarre Date: Mon, 1 Jun 2020 12:33:08 +0000 Subject: [PATCH] [FIX] purchase: allow manual ref when selecting purchases closes odoo/odoo#54349 X-original-commit: 769a0120a61323e2be500879a8687a0b272d0b6a Signed-off-by: Quentin De Paoli (qdp) --- addons/purchase/models/account_invoice.py | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) diff --git a/addons/purchase/models/account_invoice.py b/addons/purchase/models/account_invoice.py index 1391e5f0409..9ca38fde243 100644 --- a/addons/purchase/models/account_invoice.py +++ b/addons/purchase/models/account_invoice.py @@ -15,6 +15,13 @@ class AccountMove(models.Model): states={'draft': [('readonly', False)]}, string='Purchase Order', help="Auto-complete from a past purchase order.") + + def _get_invoice_reference(self): + self.ensure_one() + vendor_refs = [ref for ref in set(self.line_ids.mapped('purchase_line_id.order_id.partner_ref')) if ref] + if self.ref: + return [ref for ref in self.ref.split(', ') if ref and ref not in vendor_refs] + vendor_refs + return vendor_refs @api.onchange('purchase_vendor_bill_id', 'purchase_id') def _onchange_purchase_auto_complete(self): @@ -55,9 +62,8 @@ class AccountMove(models.Model): self.invoice_origin = ','.join(list(origins)) # Compute ref. - refs = set(self.line_ids.mapped('purchase_line_id.order_id.partner_ref')) - refs = [ref for ref in refs if ref] - self.ref = ','.join(refs) + refs = self._get_invoice_reference() + self.ref = ', '.join(refs) # Compute payment_reference. if len(refs) == 1: