diff --git a/sf_base/models/tool_base_new.py b/sf_base/models/tool_base_new.py index f2010b4a..3aa85ceb 100644 --- a/sf_base/models/tool_base_new.py +++ b/sf_base/models/tool_base_new.py @@ -1,6 +1,7 @@ # -*- coding: utf-8 -*- from datetime import date from odoo import fields, models, api +from odoo.exceptions import UserError class CuttingToolMaterial(models.Model): @@ -333,3 +334,16 @@ class ToolInventory(models.Model): tool_groups_id = fields.Many2one('sf.tool.groups', string='刀具组') active = fields.Boolean('已归档', default=True) + + @api.model_create_multi + def create(self, vals_list): + # 名称重复校验 + name_list = [] + for val in vals_list: + tool_inventory = self.search([('name', '=', val['name'])]) + if tool_inventory: + name_list.append(val['name']) + if name_list: + raise UserError("功能刀具名称%s已存在,请重新输入" % name_list) + records = super(ToolInventory, self).create(vals_list) + return records diff --git a/sf_tool_management/models/functional_tool.py b/sf_tool_management/models/functional_tool.py index 334511a6..478fb744 100644 --- a/sf_tool_management/models/functional_tool.py +++ b/sf_tool_management/models/functional_tool.py @@ -370,6 +370,15 @@ class RealTimeDistributionOfFunctionalTools(models.Model): active = fields.Boolean(string='已归档', default=True) + @api.onchange('functional_name_id') + def _onchange_num(self): + for item in self: + if item.functional_name_id: + item.tool_groups_id = item.functional_name_id.tool_groups_id.id + item.sf_cutting_tool_type_id = item.functional_name_id.functional_cutting_tool_model_id.id + item.diameter = item.functional_name_id.diameter + item.knife_tip_r_angle = item.functional_name_id.angle + @api.depends('functional_name_id') def _compute_name(self): for obj in self: diff --git a/sf_tool_management/models/tool_material_search.py b/sf_tool_management/models/tool_material_search.py index 1338d758..bfb8d64b 100644 --- a/sf_tool_management/models/tool_material_search.py +++ b/sf_tool_management/models/tool_material_search.py @@ -20,14 +20,14 @@ class ToolMaterial(models.Model): specification_id = fields.Many2one('sf.tool.materials.basic.parameters', '规格', related='product_id.specification_id') image = fields.Binary('图片', related='product_id.image_1920') - number = fields.Integer('总数量', compute='_compute_number') - usable_num = fields.Integer('可用数量', compute='_compute_number') - have_been_used_num = fields.Integer('在用数量', compute='_compute_number') - scrap_num = fields.Integer('报废数量', compute='_compute_number') + number = fields.Integer('总数量', compute='_compute_number', store=True) + usable_num = fields.Integer('可用数量', compute='_compute_number', store=True) + have_been_used_num = fields.Integer('在用数量', compute='_compute_number', store=True) + scrap_num = fields.Integer('报废数量', compute='_compute_number', store=True) barcode_ids = fields.One2many('stock.lot', 'tool_material_search_id', string='序列号', readonly=True) - @api.depends('product_id') + @api.depends('product_id.stock_quant_ids.quantity') def _compute_number(self): for record in self: usable_num = 0 @@ -47,29 +47,8 @@ class ToolMaterial(models.Model): record.have_been_used_num = have_been_used_num record.scrap_num = scrap_num record.number = usable_num + have_been_used_num + scrap_num - - # @api.depends('barcode_ids') - # def _compute_number(self): - # for record in self: - # usable_num = 0 - # have_been_used_num = 0 - # scrap_num = 0 - # if record.barcode_ids: - # record.number = len(record.barcode_ids) - # for barcode_id in record.barcode_ids: - # if barcode_id.quant_ids: - # if barcode_id.quant_ids[-1].location_id.name == '刀具组装位置': - # have_been_used_num = have_been_used_num + 1 - # else: - # usable_num = usable_num + 1 - # record.usable_num = usable_num - # record.have_been_used_num = have_been_used_num - # record.scrap_num = scrap_num - # else: - # record.number = 0 - # record.usable_num = 0 - # record.have_been_used_num = 0 - # record.scrap_num = 0 + # 更新数据到cloud的动态数据 + record.enroll_tool_material() @api.model def _read_group_cutting_tool_material_id(self, categories, domain, order): diff --git a/sf_tool_management/views/functional_tool_views.xml b/sf_tool_management/views/functional_tool_views.xml index 1e30dc41..d8907859 100644 --- a/sf_tool_management/views/functional_tool_views.xml +++ b/sf_tool_management/views/functional_tool_views.xml @@ -338,21 +338,23 @@ - - - - - - - - - + + + + + + + + + + +