From 65122d38d5d33ea5dca178ef19058d856b59d979 Mon Sep 17 00:00:00 2001 From: yuxianghui <3437689193@qq.com> Date: Fri, 16 May 2025 09:17:13 +0800 Subject: [PATCH] =?UTF-8?q?=E5=A4=84=E7=90=86=20=20=E9=94=80=E5=94=AE-?= =?UTF-8?q?=E5=A4=96=E8=B4=AD=EF=BC=8C=E5=A7=94=E5=A4=96=E7=9A=84=E6=8C=89?= =?UTF-8?q?=E9=92=AE=E5=85=B3=E8=81=94=E8=AE=A2=E5=8D=95=E6=95=B0=E6=8D=AE?= =?UTF-8?q?=E6=98=BE=E7=A4=BA=E4=B8=8D=E5=85=A8=20=20bug?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- sf_sale/models/sale_order.py | 14 ++++++++++---- 1 file changed, 10 insertions(+), 4 deletions(-) diff --git a/sf_sale/models/sale_order.py b/sf_sale/models/sale_order.py index e063b742..d87a0a93 100644 --- a/sf_sale/models/sale_order.py +++ b/sf_sale/models/sale_order.py @@ -196,8 +196,7 @@ class ReSaleOrder(models.Model): 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_purchase_orders().filtered( - lambda po: po.purchase_type in ['outsourcing'])) + order.consignment_purchase_order_count = len(self._get_sale_to_purchase('outsourcing')) def action_view_purchase_orders(self): """ @@ -228,8 +227,7 @@ class ReSaleOrder(models.Model): 委外加工 """ self.ensure_one() - outsourcing_purchase_order_ids = self._get_purchase_orders().filtered( - lambda po: po.purchase_type in ['outsourcing']).ids + outsourcing_purchase_order_ids = self._get_sale_to_purchase('outsourcing') action = { 'res_model': 'purchase.order', 'type': 'ir.actions.act_window', @@ -247,6 +245,14 @@ 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 == purchase_type).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)) + class ResaleOrderLine(models.Model): _inherit = 'sale.order.line'