From e9fc78186ea70d281a2dbf9fc4ccede30f460ddc Mon Sep 17 00:00:00 2001 From: yuxianghui <3437689193@qq.com> Date: Thu, 22 May 2025 11:35:53 +0800 Subject: [PATCH] =?UTF-8?q?=E5=A4=84=E7=90=86=20sf-=E9=94=80=E5=94=AE-?= =?UTF-8?q?=E5=A7=94=E5=A4=96=E7=9A=84=E6=8C=89=E9=92=AE=E5=85=B3=E8=81=94?= =?UTF-8?q?=E8=AE=A2=E5=8D=95=E6=95=B0=E6=8D=AE=E6=98=BE=E7=A4=BA=E4=B8=8D?= =?UTF-8?q?=E5=85=A8=20=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- sf_sale/models/sale_order.py | 20 +++++++++++++------- 1 file changed, 13 insertions(+), 7 deletions(-) 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