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

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

@@ -26,7 +26,6 @@ class FixtureModel(models.Model):
_name = 'sf.fixture.model'
_description = "夹具型号"
code = fields.Char(string='编码')
name = fields.Char(string="名称", size=15)
fixture_material_id = fields.Many2one('sf.fixture.material', string="夹具物料", )
fixture_material_type = fields.Char(string="夹具物料类型", related='fixture_material_id.name', store=True)
@@ -53,10 +52,38 @@ class FixtureModel(models.Model):
screw_size = fields.Integer(string="螺牙大小[mm]", size=6)
active = fields.Boolean('有效', default=True)
# @api.model
# def create(self, vals):
# obj = super(FixtureModel, self).create(vals)
# return obj
def _get_code(self, fixture_model_type_code):
fixture_model = self.env['sf.fixture.model'].sudo().search(
[('code', 'ilike', fixture_model_type_code)],
limit=1,
order="id desc")
if not fixture_model:
num = "%03d" % 1
else:
m = int(fixture_model.code[-3:]) + 1
num = "%03d" % m
return "%s%s" % (fixture_model_type_code, num)
code = fields.Char(string='编码', readonly=True)
def _onchange_fixture_material_id(self, fixture_material_id):
if fixture_material_id:
if fixture_material_id.name == "气动夹具":
code = self._get_code("JKM-C-JJWL-QDJJ-")
elif fixture_material_id.name == "转接板(锁板)夹具":
code = self._get_code("JKM-C-JJWL-ZJBJJ-")
elif fixture_material_id.name == "磁吸夹具":
code = self._get_code("JKM-C-JJWL-CXJJ-")
elif fixture_material_id.name == "虎钳夹具":
code = self._get_code("JKM-C-JJWL-HQJJ-")
else:
code = self._get_code("JKM-C-JJWL-LDKP-")
return code
@api.model
def create(self, vals):
obj = super(FixtureModel, self).create(vals)
if obj.fixture_material_id:
code = self._onchange_fixture_material_id(obj.fixture_material_id)
obj.code = code
return obj