diff --git a/sf_manufacturing/models/mrp_workorder.py b/sf_manufacturing/models/mrp_workorder.py index caf0c5db..1b746b40 100644 --- a/sf_manufacturing/models/mrp_workorder.py +++ b/sf_manufacturing/models/mrp_workorder.py @@ -2,6 +2,7 @@ import re import json import logging import base64 +import traceback import urllib.parse from datetime import date from datetime import datetime, timedelta @@ -16,7 +17,7 @@ from odoo.addons.sf_base.commons.common import Common from odoo.exceptions import UserError, ValidationError from odoo.addons.sf_mrs_connect.models.ftp_operate import FtpController - +_logger = logging.getLogger(__name__) class ResMrpWorkOrder(models.Model): _inherit = 'mrp.workorder' _order = 'sequence asc' @@ -274,31 +275,22 @@ class ResMrpWorkOrder(models.Model): def _compute_surface_technics_purchase_ids(self): for order in self: if order.routing_type == '表面工艺' and order.state not in ['cancel']: - # if order.production_id.production_type == '自动化产线加工': - # domain = [('programming_no', '=', order.production_id.programming_no)] - # else:buzhdiao - # domain = [('origin', '=', order.production_id.origin)] - # production_programming = self.env['mrp.production'].search(domain, order='name asc') - # production_list = [production.name for production in production_programming] - # production_no_remanufacture = production_programming.filtered(lambda a: a.is_remanufacture is False) - # technology_design = self.env['sf.technology.design'].search( - # [('process_parameters_id', '=', order.surface_technics_parameters_id.id), - # ('production_id', '=', order.production_id.id)]) - # if technology_design.is_auto is False: - # domain = [('origin', '=', order.production_id.name)] - # else: - domain = [('purchase_type', '=', 'consignment'), ('origin', 'like', '%' + self.production_id.name + '%'), + domain = [('purchase_type', '=', 'consignment'), + ('origin', 'like', '%' + self.production_id.name + '%'), ('state', '!=', 'cancel')] purchase = self.env['purchase.order'].search(domain) - purchase_num = 0 + order.surface_technics_purchase_count = 0 if not purchase: order.surface_technics_purchase_count = 0 for po in purchase: - if all(line.product_id.server_product_process_parameters_id == order.surface_technics_parameters_id for line in po.order_line): + 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 else: order.surface_technics_purchase_count = 0 + def action_view_surface_technics_purchase(self): self.ensure_one() # if self.routing_type == '表面工艺':