工艺相关展示调整
This commit is contained in:
@@ -7,6 +7,11 @@ from odoo.tools import str2bool
|
||||
|
||||
class SfProductionProcessParameter(models.Model):
|
||||
_inherit = 'sf.production.process.parameter'
|
||||
service_products = fields.Many2one(
|
||||
'product.template',
|
||||
string='外协服务产品',compute='_compute_service_products',inverse='_inverse_service_products',
|
||||
store=True
|
||||
)
|
||||
outsourced_service_products = fields.One2many(
|
||||
'product.template', # 另一个模型的名称
|
||||
'server_product_process_parameters_id', # 对应的 Many2one 字段名称
|
||||
@@ -16,6 +21,25 @@ class SfProductionProcessParameter(models.Model):
|
||||
is_delete_button = fields.Boolean(compute='_compute_is_delete_button', default=False)
|
||||
routing_id = fields.Many2one('mrp.routing.workcenter', string="工序")
|
||||
|
||||
@api.depends('outsourced_service_products')
|
||||
def _compute_service_products(self):
|
||||
for record in self:
|
||||
# 假设取第一条作为主明细
|
||||
record.service_products = record.outsourced_service_products.id if record.outsourced_service_products else False
|
||||
|
||||
def _inverse_service_products(self):
|
||||
for record in self:
|
||||
if record.service_products:
|
||||
# 确保关联关系正确
|
||||
record.outsourced_service_products = record.service_products.ids if record.service_products else False
|
||||
else:
|
||||
record.outsourced_service_products = False
|
||||
def name_get(self):
|
||||
result = []
|
||||
for record in self:
|
||||
name = f"{record.process_id.name} - {record.name}" # 自定义显示格式
|
||||
result.append((record.id, name))
|
||||
return result
|
||||
@api.constrains('outsourced_service_products')
|
||||
def _validate_partner_limit(self):
|
||||
for record in self:
|
||||
@@ -35,17 +59,17 @@ class SfProductionProcessParameter(models.Model):
|
||||
else:
|
||||
record.is_product_button = False
|
||||
|
||||
def has_wksp_prefix(self,code):
|
||||
def has_wksp_prefix(self):
|
||||
"""
|
||||
判断字符串是否以WKSP开头(不区分大小写)
|
||||
:param text: 要检查的字符串
|
||||
:return: True/False
|
||||
"""
|
||||
return code.upper().startswith('WKSP')
|
||||
return self.code.upper().startswith('101'+self.routing_id.code)
|
||||
@api.depends('outsourced_service_products','code')
|
||||
def _compute_is_delete_button(self):
|
||||
for record in self:
|
||||
if record.outsourced_service_products and self.has_wksp_prefix(record.code):
|
||||
if record.outsourced_service_products and record.has_wksp_prefix():
|
||||
record.is_delete_button = False
|
||||
elif record.outsourced_service_products:
|
||||
record.is_delete_button = True
|
||||
|
||||
Reference in New Issue
Block a user