diff --git a/quality_mrp_workorder/views/quality_views.xml b/quality_mrp_workorder/views/quality_views.xml
index ce592e0b..09cc66fe 100644
--- a/quality_mrp_workorder/views/quality_views.xml
+++ b/quality_mrp_workorder/views/quality_views.xml
@@ -140,7 +140,4 @@
-
- {'search_default_quality_checks': 1}
-
diff --git a/sf_manufacturing/models/mrp_production.py b/sf_manufacturing/models/mrp_production.py
index 9bc9d3cf..aab1389d 100644
--- a/sf_manufacturing/models/mrp_production.py
+++ b/sf_manufacturing/models/mrp_production.py
@@ -1597,7 +1597,12 @@ class sf_detection_result(models.Model):
processing_panel = fields.Char('加工面')
routing_type = fields.Selection([
('装夹预调', '装夹预调'),
- ('CNC加工', 'CNC加工')], string="工序类型")
+ ('CNC加工', 'CNC加工'),
+ ('解除装夹', '解除装夹'),
+ ('切割', '切割'),
+ ('表面工艺', '表面工艺'),
+ ('线切割', '线切割'),
+ ('人工线下加工', '人工线下加工')], string="工序类型")
rework_reason = fields.Selection(
[("programming", "编程"), ("cutter", "刀具"), ("clamping", "装夹"),
diff --git a/sf_manufacturing/models/mrp_workorder.py b/sf_manufacturing/models/mrp_workorder.py
index 63e049cd..4d789256 100644
--- a/sf_manufacturing/models/mrp_workorder.py
+++ b/sf_manufacturing/models/mrp_workorder.py
@@ -1254,7 +1254,7 @@ class ResMrpWorkOrder(models.Model):
record.production_id.process_state = '待加工'
# 生成工件配送单
record.workpiece_delivery_ids = record._json_workpiece_delivery_list()
- if record.routing_type == 'CNC加工':
+ if record.routing_type == 'CNC加工' or record.individuation_page_PTD is True:
record.process_state = '待解除装夹'
# record.write({'process_state': '待加工'})
record.production_id.process_state = '待解除装夹'
@@ -1345,17 +1345,18 @@ class ResMrpWorkOrder(models.Model):
# record.production_id.state = 'done'
# ============工单完成,修改对应[质检单]的值=====================
- if record.check_ids:
+ if record.check_ids.filtered(lambda qc: qc.quality_state in ('waiting', 'none')):
+ check_ids = record.check_ids.filtered(lambda qc: qc.quality_state in ('waiting', 'none'))
if record.test_results == '合格':
- record.check_ids.write({'test_results': None})
- for check_id in record.check_ids:
+ check_ids.write({'test_results': None})
+ for check_id in check_ids:
check_id.do_pass()
elif record.test_results in ('返工', '报废'):
- record.check_ids.write({
+ check_ids.write({
'test_results': record.test_results,
'reason': record.reason,
'detailed_reason': record.detailed_reason})
- for check_id in record.check_ids:
+ for check_id in check_ids:
check_id.do_fail()
# ======================================================
diff --git a/sf_manufacturing/views/mrp_workorder_view.xml b/sf_manufacturing/views/mrp_workorder_view.xml
index 18164796..ad2e7fe4 100644
--- a/sf_manufacturing/views/mrp_workorder_view.xml
+++ b/sf_manufacturing/views/mrp_workorder_view.xml
@@ -187,7 +187,7 @@
context="{'default_workcenter_id': workcenter_id}" class="btn-danger"
attrs="{'invisible': ['|', ('production_state', 'in', ('draft', 'done', 'cancel')), ('working_state', '!=', 'blocked')]}"/>
+ attrs="{'invisible': ['|', '|', ('state', 'not in', ('progress')), ('is_inspect', '=', False), ('routing_type','=','CNC加工')]}"/>
@@ -529,7 +529,8 @@
+ attrs='{"readonly":[("state","!=","to be detected"), "|",("routing_type","=","CNC加工"),("is_inspect", "=", True)],
+ "invisible":[("results","!=",False)]}'/>
diff --git a/sf_manufacturing/wizard/rework_wizard.py b/sf_manufacturing/wizard/rework_wizard.py
index 148967be..8e8ec7bc 100644
--- a/sf_manufacturing/wizard/rework_wizard.py
+++ b/sf_manufacturing/wizard/rework_wizard.py
@@ -24,7 +24,12 @@ class ReworkWizard(models.TransientModel):
detailed_reason = fields.Text('详细原因')
routing_type = fields.Selection([
('装夹预调', '装夹预调'),
- ('CNC加工', 'CNC加工')], string="工序类型")
+ ('CNC加工', 'CNC加工'),
+ ('解除装夹', '解除装夹'),
+ ('切割', '切割'),
+ ('表面工艺', '表面工艺'),
+ ('线切割', '线切割'),
+ ('人工线下加工', '人工线下加工')], string="工序类型")
# 根据工单的加工面来显示
processing_panel_id = fields.Many2many('sf.processing.panel', string="加工面")
is_reprogramming = fields.Boolean(string='申请重新编程', default=False)