From c70e20d5907f16b04e84cfe16a0c998fdae18085 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=9D=8E=E9=B9=8F=E5=AE=87?= Date: Mon, 30 Mar 2026 15:26:09 +0800 Subject: [PATCH] =?UTF-8?q?=E9=87=87=E8=B4=AD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../models/inherit_product_template.py | 13 +++++++++++++ .../views/inherit_product_template.xml | 15 +++------------ 2 files changed, 16 insertions(+), 12 deletions(-) diff --git a/yuthon_sps_approval/models/inherit_product_template.py b/yuthon_sps_approval/models/inherit_product_template.py index 8ec381d31..24ac8eedd 100644 --- a/yuthon_sps_approval/models/inherit_product_template.py +++ b/yuthon_sps_approval/models/inherit_product_template.py @@ -9,6 +9,13 @@ class ProductTemplate(models.Model): @api.onchange('is_fixed_assets') def _onchange_fixed_assets(self): + """勾选/取消“是否固定资产”时,动态限制产品类别的可选范围。 + + - 勾选:`categ_id` 只允许名称包含“固定资产”的类别 + - 取消:`categ_id` 不加限制 + 同时保留“已关联设备不允许取消固定资产”的校验。 + """ + # 原有校验逻辑:已作为固定资产使用时不允许取消 if not self.is_fixed_assets and self._origin.is_fixed_assets: related_equipments = self.env['maintenance.equipment'].search([ ('name', '=', self.name) @@ -16,6 +23,12 @@ class ProductTemplate(models.Model): if related_equipments: raise UserError('该产品已关联设备,请先删除固定资产') + # 根据是否固定资产,返回动态 domain + if self.is_fixed_assets: + domain = {'categ_id': [('name', 'ilike', '固定资产')]} + else: + domain = {'categ_id': []} + return {'domain': domain} def update_company_id(self): diff --git a/yuthon_sps_approval/views/inherit_product_template.xml b/yuthon_sps_approval/views/inherit_product_template.xml index f2908570b..846319f20 100644 --- a/yuthon_sps_approval/views/inherit_product_template.xml +++ b/yuthon_sps_approval/views/inherit_product_template.xml @@ -10,18 +10,9 @@ 产品类型 - - - - - - - + + + 产品类别