diff --git a/sf_machine_connect/views/compensation.xml b/sf_machine_connect/views/compensation.xml index 016f3821..d3b14535 100644 --- a/sf_machine_connect/views/compensation.xml +++ b/sf_machine_connect/views/compensation.xml @@ -5,39 +5,45 @@ mrp.workorder - - - - - + + + + + + - - - - - - - - - - - - - - - - - - - - - - - - + + - + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/sf_manufacturing/models/mrp_workorder.py b/sf_manufacturing/models/mrp_workorder.py index b5ed8334..8cc7b1f9 100644 --- a/sf_manufacturing/models/mrp_workorder.py +++ b/sf_manufacturing/models/mrp_workorder.py @@ -1090,8 +1090,15 @@ class ResMrpWorkOrder(models.Model): r = r.json() result = json.loads(r['result']) if result['status'] == 1: - self.write({'is_send_program_again': True}) - self.production_id.write({'work_state': '编程中', 'programming_state': '编程中'}) + productions = self.env['mrp.production'].search( + [('programming_no', '=', self.production_id.programming_no), ('programming_state', '=', '已编程')]) + if productions: + workorder = productions.workorder_ids.filtered( + lambda ap: ap.routing_type in ['装夹预调', 'CNC加工'] and ap.state not in ['done', 'cancel', + 'progress']) + if workorder: + workorder.write({'is_send_program_again': True}) + productions.write({'work_state': '编程中', 'programming_state': '编程中'}) else: raise UserError(result['message']) except Exception as e: diff --git a/sf_manufacturing/views/mrp_production_addional_change.xml b/sf_manufacturing/views/mrp_production_addional_change.xml index 55dbbe33..e1d0d28c 100644 --- a/sf_manufacturing/views/mrp_production_addional_change.xml +++ b/sf_manufacturing/views/mrp_production_addional_change.xml @@ -62,16 +62,17 @@ - - - progress,pending_cam,pending_processing,pending_era_cam,completed,done + + + + progress,pending_cam,pending_processing,pending_era_cam,completed,done - + - + @@ -281,7 +282,7 @@ + groups="sf_base.group_sf_mrp_user" confirm="是否确认开始?"/> + groups="sf_base.group_sf_mrp_user" + confirm="是否确认完成?"/> - - - - + + + + + groups="sf_base.group_sf_mrp_user" confirm="是否确认完成?"/> + attrs="{'invisible': ['|', '|', '|',('routing_type','!=','装夹预调'),('state','in',['done', 'cancel', + 'progress']),('cnc_worksheet','=',False),('is_send_program_again','=',True)]}"/> @@ -521,7 +522,7 @@ - + diff --git a/sf_mrs_connect/controllers/controllers.py b/sf_mrs_connect/controllers/controllers.py index 2ac534a8..5102efdb 100644 --- a/sf_mrs_connect/controllers/controllers.py +++ b/sf_mrs_connect/controllers/controllers.py @@ -72,7 +72,8 @@ class Sf_Mrs_Connect(http.Controller): panel_file_path = os.path.join(program_path_tmp_panel, file) logging.info('panel_file_path:%s' % panel_file_path) cnc_workorder.write( - {'cnc_ids': cnc_workorder.cnc_ids.sudo()._json_cnc_processing(panel, ret), + {'is_send_program_again': False, + 'cnc_ids': cnc_workorder.cnc_ids.sudo()._json_cnc_processing(panel, ret), 'cmm_ids': cnc_workorder.cmm_ids.sudo()._json_cmm_program(panel, ret), 'cnc_worksheet': base64.b64encode(open(panel_file_path, 'rb').read())}) pre_workorder = production.workorder_ids.filtered( @@ -80,7 +81,8 @@ class Sf_Mrs_Connect(http.Controller): 'cancel'] and ap.processing_panel == panel) if pre_workorder: pre_workorder.write( - {'processing_drawing': base64.b64encode(open(panel_file_path, 'rb').read())}) + {'is_send_program_again': False, + 'processing_drawing': base64.b64encode(open(panel_file_path, 'rb').read())}) productions.write({'programming_state': '已编程', 'work_state': '已编程'}) cnc_program_ids = [item.id for item in productions] workpiece_delivery = request.env['sf.workpiece.delivery'].sudo().search(