diff --git a/sf_manufacturing/models/mrp_workorder.py b/sf_manufacturing/models/mrp_workorder.py index 4d56312a..4180bcce 100644 --- a/sf_manufacturing/models/mrp_workorder.py +++ b/sf_manufacturing/models/mrp_workorder.py @@ -443,21 +443,11 @@ class ResMrpWorkOrder(models.Model): @api.depends('state', 'production_id.name') def _compute_surface_technics_purchase_ids(self): for order in self: - if order.routing_type == '表面工艺' and order.state not in ['cancel']: - # domain = [('group_id', '=', self.production_id.procurement_group_id.id), - # ('purchase_type', '=', 'consignment'), ('state', '!=', 'cancel')] - domain = [('purchase_type', '=', 'consignment'), - ('origin', 'like', '%' + self.production_id.name + '%'), - ('state', '!=', 'cancel')] - purchase = self.env['purchase.order'].search(domain) - order.surface_technics_purchase_count = 0 - if not purchase: - order.surface_technics_purchase_count = 0 - for po in purchase: - if any( - line.product_id and line.product_id.server_product_process_parameters_id == order.surface_technics_parameters_id - for line in po.order_line): - order.surface_technics_purchase_count = 1 + pr_ids = self.env['purchase.request'].sudo().search( + [('origin', 'like', self.production_id.name), ('is_subcontract', '=', 'True'), + ('state', '!=', 'rejected')]) + if pr_ids.purchase_count: + order.surface_technics_purchase_count = pr_ids.purchase_count else: order.surface_technics_purchase_count = 0 @@ -502,17 +492,19 @@ class ResMrpWorkOrder(models.Model): # if technology_design.is_auto is False: # domain = [('origin', '=', self.production_id.name)] # else: - - purchase_orders_id = self._get_surface_technics_purchase_ids() - result = { - "type": "ir.actions.act_window", - "res_model": "purchase.order", - "res_id": purchase_orders_id.id, - # "domain": [['id', 'in', self.purchase_id]], - "name": _("Purchase Orders"), - 'view_mode': 'form', - } - return result + pr_ids = self.env['purchase.request'].sudo().search( + [('origin', 'like', self.production_id.name), ('is_subcontract', '=', 'True'), + ('state', '!=', 'rejected')]) + # purchase_orders_id = self._get_surface_technics_purchase_ids() + # result = { + # "type": "ir.actions.act_window", + # "res_model": "purchase.order", + # "res_id": purchase_orders_id.id, + # # "domain": [['id', 'in', self.purchase_id]], + # "name": _("Purchase Orders"), + # 'view_mode': 'form', + # } + return pr_ids.action_view_purchase_order() def _get_surface_technics_purchase_ids(self): domain = [('origin', 'like', '%' + self.production_id.name + '%'), ('purchase_type', '=', 'consignment'),