子制造订单回退功能处理 处理解除装夹没有回退按钮

This commit is contained in:
liaodanlong
2025-02-21 15:22:00 +08:00
parent d8e8babbd3
commit e1185aa28b

View File

@@ -91,7 +91,7 @@ class ResMrpWorkOrder(models.Model):
('state', '!=', 'cancel') ('state', '!=', 'cancel')
]) ])
finish_move = next((move for move in moves if move.location_dest_id.name == '制造后'), None) finish_move = next((move for move in moves if move.location_dest_id.name == '制造后'), None)
if not finish_move and not cur_workorder.is_subcontract: if not finish_move and not cur_workorder.is_subcontract and not cur_workorder.name =='解除装夹':
record.back_button_display = True record.back_button_display = True
else: else:
record.back_button_display = any( record.back_button_display = any(
@@ -107,11 +107,11 @@ class ResMrpWorkOrder(models.Model):
else: else:
next_workorder = sorted_workorders[position + 1] next_workorder = sorted_workorders[position + 1]
next_state = next_workorder.state next_state = next_workorder.state
if ((next_state == 'ready' and not next_workorder.is_subcontract) or (next_workorder.state == 'pending' and next_workorder.is_subcontract)) and cur_workorder.state == 'done': if ((next_state == 'ready' and not next_workorder.is_subcontract and not next_workorder.name =='解除装夹') or (next_workorder.state == 'pending' and next_workorder.is_subcontract and not next_workorder.name =='解除装夹')) and cur_workorder.state == 'done':
record.back_button_display = True record.back_button_display = True
else: else:
record.back_button_display = False record.back_button_display = False
if cur_workorder.is_subcontract: if cur_workorder.is_subcontract or cur_workorder.name =='解除装夹':
record.back_button_display = False record.back_button_display = False
date_planned_start = fields.Datetime(tracking=True) date_planned_start = fields.Datetime(tracking=True)
@@ -155,14 +155,12 @@ class ResMrpWorkOrder(models.Model):
): ):
raise UserError('已入库,无法回退') raise UserError('已入库,无法回退')
else: else:
move_finished = cur_workorder.production_id.move_finished_ids
random_element = random.choice(move_finished)
moves = self.env['stock.move'].search([ moves = self.env['stock.move'].search([
('name', '=', random_element.name), ('name', '=', cur_workorder.production_id.name),
('state', '!=', 'cancel') ('state', '!=', 'cancel')
]) ])
move_lines = self.env['stock.move.line'].search([ move_lines = self.env['stock.move.line'].search([
('reference', '=', random_element.name), ('reference', '=', cur_workorder.production_id.name),
('state', '!=', 'cancel') ('state', '!=', 'cancel')
]) ])
moves.state = 'assigned' moves.state = 'assigned'