diff --git a/sf_manufacturing/models/mrp_production.py b/sf_manufacturing/models/mrp_production.py
index 948a81a2..41db21ab 100644
--- a/sf_manufacturing/models/mrp_production.py
+++ b/sf_manufacturing/models/mrp_production.py
@@ -363,7 +363,8 @@ class MrpProduction(models.Model):
# if production.state == 'pending_cam':
# if all(wo_state in 'done' for wo_state in production.workorder_ids.mapped('state')):
# production.state = 'done'
- if any((wo.test_results == '返工' and wo.state == 'done' and production.programming_state in ['已编程'])
+ if any((wo.test_results == '返工' and wo.state == 'done' and
+ (production.programming_state in ['已编程'] or wo.individuation_page_PTD is True))
or (wo.is_rework is True and wo.state == 'done' and production.programming_state in ['编程中', '已编程'])
for wo in production.workorder_ids):
production.state = 'rework'
diff --git a/sf_manufacturing/models/mrp_workorder.py b/sf_manufacturing/models/mrp_workorder.py
index 09f08c0b..97a3bcdf 100644
--- a/sf_manufacturing/models/mrp_workorder.py
+++ b/sf_manufacturing/models/mrp_workorder.py
@@ -1283,12 +1283,10 @@ class ResMrpWorkOrder(models.Model):
'detailed_reason': record.detailed_reason,
'processing_panel': record.processing_panel,
'routing_type': record.routing_type,
- 'handle_result': '待处理' if record.test_results in ['返工',
- '报废'] or record.is_rework is True else '',
+ 'handle_result': '待处理' if record.test_results in ['返工', '报废'] or record.is_rework is True else '',
'test_results': record.test_results,
'test_report': record.detection_report})],
- 'is_scrap': True if record.test_results == '报废' else False,
- 'state': 'rework' if (record.routing_type != 'CNC加工' and record.test_results == '返工') else record.production_id.state
+ 'is_scrap': True if record.test_results == '报废' else False
})
if record.routing_type == '解除装夹':
'''
diff --git a/sf_quality/views/quality_check_view.xml b/sf_quality/views/quality_check_view.xml
index 48da0d37..ec5b9fa8 100644
--- a/sf_quality/views/quality_check_view.xml
+++ b/sf_quality/views/quality_check_view.xml
@@ -49,10 +49,10 @@
- {'invisible': ['|',('quality_state', '!=', 'fail'),('work_state','=', 'done')]}
+ {'invisible': ['|',('quality_state', '!=', 'fail'),('work_state','in', ('done', 'rework'))]}
- {'invisible': ['|',('quality_state', '!=', 'pass'),('work_state','=', 'done')]}
+ {'invisible': ['|',('quality_state', '!=', 'pass'),('work_state','in', ('done', 'rework'))]}
diff --git a/sf_tool_management/models/maintenance_equipment.py b/sf_tool_management/models/maintenance_equipment.py
index af9d4931..12c7f8f3 100644
--- a/sf_tool_management/models/maintenance_equipment.py
+++ b/sf_tool_management/models/maintenance_equipment.py
@@ -143,6 +143,10 @@ class StockLot(models.Model):
record.tool_material_status = '报废'
else:
record.tool_material_status = '未入库'
+ elif record.product_id.categ_id.name in ['夹具']:
+ if record.quant_ids:
+ if record.quant_ids[-1].location_id.name in ['夹具房']:
+ record.tool_material_status = '可用'
@api.model
def name_search(self, name='', args=None, operator='ilike', limit=100):