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 @@
产品类型
-
-
-
-
-
-
-
+
+
+ 产品类别