产品模板的型号手动输入时型号对象的编码,联装类型,夹具物料字段的值显示

This commit is contained in:
jinling.yang
2023-08-25 15:46:41 +08:00
parent e4af4ca0b6
commit 7174de3de6
13 changed files with 118 additions and 170 deletions

View File

@@ -1,5 +1,7 @@
# -*- coding: utf-8 -*-
from odoo import fields, models, api
# from datetime import datetime
# from odoo.exceptions import ValidationError
@@ -95,7 +97,6 @@ class CuttingToolModel(models.Model):
_description = '刀具型号'
name = fields.Char('名称')
code = fields.Char('编码')
cutting_tool_material_id = fields.Many2one('sf.cutting.tool.material', string='刀具物料')
cutting_tool_type = fields.Char(string="刀具物料类型", related='cutting_tool_material_id.name', store=True)
cutting_tool_type_id = fields.Many2one('sf.cutting.tool.type', string='刀具类型',
@@ -177,12 +178,43 @@ class CuttingToolModel(models.Model):
)
active = fields.Boolean('有效', default=True)
# @api.model
# def create(self, vals):
# if vals.get('name', '/') == '/' or vals.get('name', '/') is False:
# vals['name'] = '/'
# obj = super(CuttingToolModel, self).create(vals)
# return obj
def _get_code(self, cutting_tool_type_code):
cutting_tool_model = self.search(
[('code', 'ilike', cutting_tool_type_code)],
limit=1,
order="id desc")
if not cutting_tool_model:
num = "%03d" % 1
else:
m = int(cutting_tool_model.code[-3:]) + 1
num = "%03d" % m
return "%s%s" % (cutting_tool_type_code, num)
code = fields.Char(string='编码', readonly=True)
def _onchange_cutting_tool_material_id(self, cutting_tool_material_id):
if cutting_tool_material_id:
if cutting_tool_material_id.name == "整体式刀具":
code = self._get_code("JKM-T-DJWL-ZTDJ-")
elif cutting_tool_material_id.name == "刀片":
code = self._get_code("JKM-T-DJWL-DPIA-")
elif cutting_tool_material_id.name == "刀杆":
code = self._get_code("JKM-T-DJWL-DGAN-")
elif cutting_tool_material_id.name == "刀盘":
code = self._get_code("JKM-T-DJWL-DPAN-")
elif cutting_tool_material_id.name == "夹头":
code = self._get_code("JKM-T-DJWL-DJIA-")
else:
code = self._get_code("JKM-T-DJWL-DBIN-")
return code
@api.model
def create(self, vals):
obj = super(CuttingToolModel, self).create(vals)
if obj.cutting_tool_material_id:
code = self._onchange_cutting_tool_material_id(obj.cutting_tool_material_id)
obj.code = code
return obj
# 刀具类型