diff --git a/addons/purchase/models/purchase.py b/addons/purchase/models/purchase.py index 752bf3c30fc..e38dd117051 100644 --- a/addons/purchase/models/purchase.py +++ b/addons/purchase/models/purchase.py @@ -988,6 +988,21 @@ class ProcurementOrder(models.Model): """ return suppliers[0] + def _make_po_get_domain(self, partner): + gpo = self.rule_id.group_propagation_option + group = (gpo == 'fixed' and self.rule_id.group_id) or \ + (gpo == 'propagate' and self.group_id) or False + + domain = ( + ('partner_id', '=', partner.id), + ('state', '=', 'draft'), + ('picking_type_id', '=', self.rule_id.picking_type_id.id), + ('company_id', '=', self.company_id.id), + ('dest_address_id', '=', self.partner_dest_id.id)) + if group: + domain += (('group_id', '=', group.id),) + return domain + @api.multi def make_po(self): cache = {} @@ -1001,18 +1016,7 @@ class ProcurementOrder(models.Model): supplier = procurement._make_po_select_supplier(suppliers) partner = supplier.name - gpo = procurement.rule_id.group_propagation_option - group = (gpo == 'fixed' and procurement.rule_id.group_id) or \ - (gpo == 'propagate' and procurement.group_id) or False - - domain = ( - ('partner_id', '=', partner.id), - ('state', '=', 'draft'), - ('picking_type_id', '=', procurement.rule_id.picking_type_id.id), - ('company_id', '=', procurement.company_id.id), - ('dest_address_id', '=', procurement.partner_dest_id.id)) - if group: - domain += (('group_id', '=', group.id),) + domain = procurement._make_po_get_domain(partner) if domain in cache: po = cache[domain]