Merge remote-tracking branch 'origin/develop' into develop

# Conflicts:
#	sf_manufacturing/models/mrp_production.py
#	sf_manufacturing/models/purchase_order.py
#	sf_sale/models/sale_order.py
This commit is contained in:
liaodanlong
2025-04-27 08:50:45 +08:00
10 changed files with 77 additions and 32 deletions

View File

@@ -1245,7 +1245,8 @@ class ResMrpWorkOrder(models.Model):
return workorders_values_str
def _process_compute_state(self):
for workorder in self:
sorted_workorders = sorted(self, key=lambda x: x.sequence)
for workorder in sorted_workorders:
# 如果工单的工序没有进行排序则跳出循环
if workorder.production_id.workorder_ids.filtered(lambda wk: wk.sequence == 0):
continue
@@ -1304,13 +1305,6 @@ class ResMrpWorkOrder(models.Model):
workorder.state = 'ready'
elif workorder.state != 'waiting':
workorder.state = 'waiting'
# =========== 特殊工艺工单处理 ===================
# if workorder.routing_type == '表面工艺' and workorder.is_subcontrac:
# purchase_order = self.env['purchase.order'].search(
# [('origin', 'ilike', workorder.production_id.name)])
# if purchase_order.picking_ids.filtered(lambda p: p.state in ['waiting', 'confirmed', 'assigned']):
# workorder.state = 'waiting'
# continue
if workorder.technology_design_id.routing_tag == 'special':
if workorder.is_subcontract is False:
workorder.state = 'ready'
@@ -1332,6 +1326,7 @@ class ResMrpWorkOrder(models.Model):
else:
workorder.state = 'waiting'
@api.depends('production_availability', 'blocked_by_workorder_ids', 'blocked_by_workorder_ids.state',
'production_id.tool_state', 'production_id.schedule_state', 'sequence',
'production_id.programming_state')