diff --git a/sf_sale/models/sale_order.py b/sf_sale/models/sale_order.py index 1edefdc6..487bfd53 100644 --- a/sf_sale/models/sale_order.py +++ b/sf_sale/models/sale_order.py @@ -194,17 +194,15 @@ class ReSaleOrder(models.Model): @api.depends('order_line.purchase_line_ids.order_id') def _compute_purchase_order_count(self): for order in self: - order.purchase_order_count = len(order._get_purchase_orders().filtered( - lambda po: po.purchase_type not in ['outsourcing'])) - order.consignment_purchase_order_count = len(order._get_sale_to_purchase('outsourcing')) + order.purchase_order_count = len(order._get_sale_to_purchase('outsourcing')) + order.consignment_purchase_order_count = len(order._get_sale_to_purchase_1('outsourcing')) def action_view_purchase_orders(self): """ 采购 """ self.ensure_one() - purchase_order_ids = self._get_purchase_orders().filtered( - lambda po: po.purchase_type not in ['outsourcing']).ids + purchase_order_ids = self._get_sale_to_purchase('outsourcing') action = { 'res_model': 'purchase.order', 'type': 'ir.actions.act_window', @@ -222,12 +220,20 @@ class ReSaleOrder(models.Model): }) return action + def _get_sale_to_purchase(self, purchase_type): + """查询满足条件的采购订单""" + purchase_order_ids = self._get_purchase_orders().filtered( + lambda po: po.purchase_type not in ['outsourcing']).ids + order_ids = self.env['purchase.order'].sudo().search( + [('origin', '=', self.name), ('purchase_type', '!=', purchase_type)]).ids + return list(set(purchase_order_ids) | set(order_ids)) + def action_view_consignment_purchase_orders(self): """ 委外加工 """ self.ensure_one() - outsourcing_purchase_order_ids = self._get_sale_to_purchase('outsourcing') + outsourcing_purchase_order_ids = self._get_sale_to_purchase_1('outsourcing') action = { 'res_model': 'purchase.order', 'type': 'ir.actions.act_window', @@ -245,7 +251,7 @@ class ReSaleOrder(models.Model): }) return action - def _get_sale_to_purchase(self, purchase_type): + def _get_sale_to_purchase_1(self, purchase_type): """查询满足条件的采购订单""" purchase_order_ids = self._get_purchase_orders().filtered( lambda po: po.purchase_type == purchase_type).ids