diff --git a/sf_tool_management/models/functional_tool.py b/sf_tool_management/models/functional_tool.py index 78a652f4..63a31b82 100644 --- a/sf_tool_management/models/functional_tool.py +++ b/sf_tool_management/models/functional_tool.py @@ -45,7 +45,8 @@ class FunctionalCuttingToolEntity(models.Model): string='状态', store=True, default='正常') current_location_id = fields.Many2one('stock.location', string='当前位置', compute='_compute_current_location_id', store=True) - current_shelf_location_id = fields.Many2one('sf.shelf.location', string='当前货位', readonly=True) + current_shelf_location_id = fields.Many2one('sf.shelf.location', string='当前货位', + compute='_compute_current_location_id', store=True) current_location = fields.Selection( [('组装后', '组装后'), ('刀具房', '刀具房'), ('线边刀库', '线边刀库'), ('机内刀库', '机内刀库')], string='位置', compute='_compute_current_location_id', store=True) @@ -85,6 +86,10 @@ class FunctionalCuttingToolEntity(models.Model): if quant_id.inventory_quantity_auto_apply > 0: record.current_location_id = quant_id.location_id if quant_id.location_id.name == '制造前': + shelf_location_id = self.env['sf.shelf.location'].sudo().search([ + ('product_sn_id', '=', record.barcode_id.id)]) + if shelf_location_id: + record.current_shelf_location_id = shelf_location_id.id if not record.current_shelf_location_id: record.current_location = '机内刀库' else: diff --git a/sf_warehouse/models/model.py b/sf_warehouse/models/model.py index 30024239..4e8e5af6 100644 --- a/sf_warehouse/models/model.py +++ b/sf_warehouse/models/model.py @@ -888,12 +888,11 @@ class SfStockMoveLine(models.Model): def _check_destination_location_id(self): for item in self: if item: - i = 0 barcode = item.destination_location_id.barcode for line in item.picking_id.move_line_ids_without_package: - if barcode and barcode == line.destination_location_id.barcode: - i += 1 - if i > 1: + if line.destination_location_id: + if (barcode and barcode == line.destination_location_id.barcode + and item.product_id != line.product_id): raise ValidationError( '【%s】货位已经被占用,请重新选择!!!' % item.destination_location_id.barcode)