diff --git a/sf_tool_management/models/tool_material_search.py b/sf_tool_management/models/tool_material_search.py index a5498c80..f412f119 100644 --- a/sf_tool_management/models/tool_material_search.py +++ b/sf_tool_management/models/tool_material_search.py @@ -321,26 +321,27 @@ 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('总数量', readonly=True, compute='_compute_number') - usable_num = fields.Integer('可用数量', readonly=True) - have_been_used_num = fields.Integer('在用数量', readonly=True) - scrap_num = fields.Integer('报废数量', readonly=True) + 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') barcode_ids = fields.One2many('stock.lot', 'tool_material_search_id', string='序列号', readonly=True) @api.depends('barcode_ids') def _compute_number(self): - usable_num = 0 - have_been_used_num = 0 - scrap_num = 0 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[-1].location_id.name == '刀具组装位置': - have_been_used_num = have_been_used_num + 1 - else: - usable_num = usable_num + 1 + 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