diff --git a/sf_manufacturing/models/mrp_workorder.py b/sf_manufacturing/models/mrp_workorder.py index 14af7aab..3b6e8ead 100644 --- a/sf_manufacturing/models/mrp_workorder.py +++ b/sf_manufacturing/models/mrp_workorder.py @@ -826,23 +826,30 @@ class SfWorkOrderBarcodes(models.Model): # raise UserError('该托盘已绑定工件,请先解除绑定!!!') if workorder: if workorder.routing_type == '装夹预调': + if workorder.state in ['progress', 'done']: + work_state = {'progress': '进行中', 'done': '已完工'} + raise UserError('该工单%s,不能重新绑定托盘' % work_state.get(workorder.state)) lots = self.env['stock.lot'].sudo().search([('rfid', '=', barcode)]) if lots: for lot in lots: if lot.product_id.categ_type == '夹具': - workorder.write({ + val = { 'tray_serial_number': lot.name, 'tray_product_id': lot.product_id.id, 'tray_brand_id': lot.product_id.brand_id.id, 'tray_type_id': lot.product_id.fixture_material_id.id, - 'tray_model_id': lot.product_id.fixture_model_id.id - }) + 'tray_model_id': lot.product_id.fixture_model_id.id, + 'rfid_code': barcode + } + workorder.write(val) + self.write(val) workorder_rfid = self.env['mrp.workorder'].search( [('production_id', '=', workorder.production_id.id)]) if workorder_rfid: for item in workorder_rfid: item.write({'rfid_code': barcode}) - workorder.env.cr.commit() + else: + raise UserError('该托盘信息不存在!!!') # stock_move_line = self.env['stock.move.line'].search([('lot_name', '=', barcode)]) # if stock_move_line.product_id.categ_type == '夹具': # workorder.write({