diff --git a/sf_tool_management/models/base.py b/sf_tool_management/models/base.py index 40100a93..2fcc40d9 100644 --- a/sf_tool_management/models/base.py +++ b/sf_tool_management/models/base.py @@ -1437,14 +1437,26 @@ class FunctionalToolDismantle(models.Model): def confirmation_disassembly(self): logging.info('%s刀具确认开始拆解' % self.dismantle_cause) code = self.code + context = self.env.context if self.functional_tool_id.functional_tool_status == '已拆除': raise ValidationError('Rfid为【%s】名称为【%s】的功能刀具已经拆解,请勿重复操作!' % ( self.functional_tool_id.rfid_dismantle, self.name)) # 对拆解的功能刀具进行校验,只有在刀具房的功能刀具才能拆解 elif self.functional_tool_id.functional_tool_status != '报警': - if self.functional_tool_id.tool_room_num == 0: + if self.functional_tool_id.current_location == '机内刀库': raise ValidationError('Rfid为【%s】的功能刀具当前位置为【%s】,不能进行拆解!' % ( self.rfid, self.functional_tool_id.current_location)) + elif not context.get('TRUE_DISASSEMBLE') and self.functional_tool_id.current_location == '线边刀库': + return { + 'type': 'ir.actions.act_window', + 'res_model': 'sf.functional.tool.dismantle.wiard', + 'name': '刀具寿命未到期', + 'view_mode': 'form', + 'target': 'new', + 'context': { + 'default_functional_tool_dismantle_id': self.id, + 'TRUE_DISASSEMBLE': True} + } # 目标重复校验 self.location_duplicate_check() datas = {'scrap': [], 'picking': []} diff --git a/sf_tool_management/security/ir.model.access.csv b/sf_tool_management/security/ir.model.access.csv index 8c188464..1ad8a439 100644 --- a/sf_tool_management/security/ir.model.access.csv +++ b/sf_tool_management/security/ir.model.access.csv @@ -40,4 +40,7 @@ access_sf_functional_tool_dismantle_group_sf_tool_user,sf.functional.tool.disman access_sf_functional_tool_dismantle_group_plan_dispatch,sf.functional.tool.dismantle_group_plan_dispatch,model_sf_functional_tool_dismantle,sf_base.group_plan_dispatch,1,0,0,0 access_jikimo_bom,jikimo.bom,model_jikimo_bom,base.group_user,1,1,1,1 -access_jikimo_bom_wizard,jikimo.bom.wizard,model_jikimo_bom_wizard,base.group_user,1,1,1,1 \ No newline at end of file +access_jikimo_bom_wizard,jikimo.bom.wizard,model_jikimo_bom_wizard,base.group_user,1,1,1,1 + +access_sf_functional_tool_dismantle_wiard,sf.functional.tool.dismantle.wiard,model_sf_functional_tool_dismantle_wiard,sf_base.group_sf_tool_user,1,1,1,0 +access_sf_functional_tool_dismantle_wiard_group_plan_dispatch,sf.functional.tool.dismantle.wiard,model_sf_functional_tool_dismantle_wiard,sf_base.group_plan_dispatch,1,0,0,0 diff --git a/sf_tool_management/wizard/wizard.py b/sf_tool_management/wizard/wizard.py index d1797855..633901d8 100644 --- a/sf_tool_management/wizard/wizard.py +++ b/sf_tool_management/wizard/wizard.py @@ -770,3 +770,12 @@ class FunctionalToolAssemblyOrder(models.TransientModel): # } +class FunctionalToolDismantle(models.TransientModel): + _name = 'sf.functional.tool.dismantle.wiard' + _description = '功能刀具拆解二次确认' + + functional_tool_dismantle_id = fields.Many2one('sf.functional.tool.dismantle', '拆解单') + + def confirm(self): + self.functional_tool_dismantle_id.confirmation_disassembly() + return True diff --git a/sf_tool_management/wizard/wizard_view.xml b/sf_tool_management/wizard/wizard_view.xml index 53a45d85..73770342 100644 --- a/sf_tool_management/wizard/wizard_view.xml +++ b/sf_tool_management/wizard/wizard_view.xml @@ -444,4 +444,19 @@ new + + + + 刀具拆解 + sf.functional.tool.dismantle.wiard + +
+
刀具寿命未到期,是否继续拆解?
+ +
+
+
\ No newline at end of file