修复bug和优化制造订单报废
This commit is contained in:
@@ -14,7 +14,7 @@ class ProductionTechnologyReAdjustWizard(models.TransientModel):
|
||||
|
||||
def confirm(self):
|
||||
if self.is_technology_re_adjust is True:
|
||||
domain = [('origin', '=', self.origin), ('state', '=', 'confirmed')]
|
||||
domain = [('origin', '=', self.origin), ('state', '=', 'technology_to_confirmed')]
|
||||
else:
|
||||
domain = [('id', '=', self.production_id.id)]
|
||||
technology_designs = self.env['sf.technology.design'].sudo().search(
|
||||
@@ -42,7 +42,8 @@ class ProductionTechnologyReAdjustWizard(models.TransientModel):
|
||||
'is_auto': td_main.is_auto})]})
|
||||
else:
|
||||
for ro in route_other:
|
||||
domain = [('production_id', '=', self.production_id.id), ('active', 'in', [True, False]),
|
||||
domain = [('production_id', '=', self.production_id.id),
|
||||
('active', 'in', [True, False]),
|
||||
('route_id', '=', ro.route_id.id)]
|
||||
if ro.route_id.routing_type == '表面工艺':
|
||||
domain += [('process_parameters_id', '=', ro.process_parameters_id.id)]
|
||||
@@ -109,4 +110,9 @@ class ProductionTechnologyReAdjustWizard(models.TransientModel):
|
||||
for item in productions:
|
||||
workorders = item.workorder_ids.filtered(lambda wo: wo.state not in ('cancel')).sorted(
|
||||
key=lambda a: a.sequence)
|
||||
workorders[0].state = 'waiting'
|
||||
if workorders[0].state in ['pending']:
|
||||
cnc_workorder = self.search(
|
||||
[('production_id', '=', item.id), ('routing_type', '=', 'CNC加工')],
|
||||
limit=1, order='id asc')
|
||||
if cnc_workorder.cnc_ids:
|
||||
workorders[0].state = 'waiting'
|
||||
|
||||
@@ -15,7 +15,7 @@ class ProductionTechnologyWizard(models.TransientModel):
|
||||
|
||||
def confirm(self):
|
||||
if self.is_technology_confirm is True:
|
||||
domain = [('origin', '=', self.origin)]
|
||||
domain = [('origin', '=', self.origin), ('state', '=', 'technology_to_confirmed')]
|
||||
else:
|
||||
domain = [('id', '=', self.production_id.id)]
|
||||
technology_designs = self.production_id.technology_design_ids
|
||||
@@ -62,4 +62,8 @@ class ProductionTechnologyWizard(models.TransientModel):
|
||||
workorder = item.workorder_ids.filtered(lambda wo: wo.state not in ('cancel')).sorted(
|
||||
key=lambda a: a.sequence)
|
||||
if workorder[0].state in ['pending']:
|
||||
workorder[0].state = 'waiting'
|
||||
cnc_workorder = self.search(
|
||||
[('production_id', '=', item.id), ('routing_type', '=', 'CNC加工')],
|
||||
limit=1, order='id asc')
|
||||
if cnc_workorder.cnc_ids:
|
||||
workorder[0].state = 'waiting'
|
||||
|
||||
@@ -46,58 +46,5 @@ class ProductionWizard(models.TransientModel):
|
||||
ret = {'programming_list': [], 'is_reprogramming': self.is_reprogramming}
|
||||
if self.is_reprogramming is True:
|
||||
self.production_id.update_programming_state()
|
||||
else:
|
||||
scrap_cnc = self.production_id.workorder_ids.filtered(lambda crw: crw.routing_type == 'CNC加工').cnc_ids
|
||||
scrap_cmm = self.production_id.workorder_ids.filtered(lambda cm: cm.routing_type == 'CNC加工').cmm_ids
|
||||
for item_line in scrap_cnc:
|
||||
vals = {
|
||||
'sequence_number': item_line.sequence_number,
|
||||
'program_name': item_line.program_name,
|
||||
'cutting_tool_name': item_line.cutting_tool_name,
|
||||
'cutting_tool_no': item_line.cutting_tool_no,
|
||||
'processing_type': item_line.processing_type,
|
||||
'margin_x_y': item_line.margin_x_y,
|
||||
'margin_z': item_line.margin_z,
|
||||
'depth_of_processing_z': item_line.depth_of_processing_z,
|
||||
'cutting_tool_extension_length': item_line.cutting_tool_extension_length,
|
||||
'estimated_processing_time': item_line.estimated_processing_time,
|
||||
'cutting_tool_handle_type': item_line.cutting_tool_handle_type,
|
||||
'ftp_path': item_line.program_path,
|
||||
'processing_panel': item_line.workorder_id.processing_panel,
|
||||
'program_create_date': datetime.strftime(item_line.program_create_date,
|
||||
'%Y-%m-%d %H:%M:%S'),
|
||||
'remark': item_line.remark
|
||||
}
|
||||
ret['programming_list'].append(vals)
|
||||
for cmm_line in scrap_cmm:
|
||||
vals = {
|
||||
'sequence_number': cmm_line.sequence_number,
|
||||
'program_name': cmm_line.program_name,
|
||||
'ftp_path': cmm_line.program_path,
|
||||
'processing_panel': item_line.workorder_id.processing_panel,
|
||||
'program_create_date': datetime.strftime(
|
||||
cmm_line.program_create_date,
|
||||
'%Y-%m-%d %H:%M:%S')
|
||||
}
|
||||
ret['programming_list'].append(vals)
|
||||
|
||||
new_production = self.production_id.recreateManufacturing(ret)
|
||||
self.production_id.write({'remanufacture_production_id': new_production.id})
|
||||
if self.is_reprogramming is False:
|
||||
for panel in new_production.product_id.model_processing_panel.split(','):
|
||||
scrap_cnc_workorder = max(
|
||||
self.production_id.workorder_ids.filtered(
|
||||
lambda
|
||||
scn: scn.processing_panel == panel and scn.routing_type == 'CNC加工'),
|
||||
key=lambda w: w.create_date)
|
||||
scrap_pre_workorder = max(self.production_id.workorder_ids.filtered(
|
||||
lambda
|
||||
pr: pr.processing_panel == panel and pr.routing_type == '装夹预调'),
|
||||
key=lambda w1: w1.create_date)
|
||||
new_cnc_workorder = new_production.workorder_ids.filtered(
|
||||
lambda
|
||||
nc: nc.processing_panel == panel and nc.routing_type == 'CNC加工')
|
||||
new_cnc_workorder.write({'cnc_worksheet': scrap_cnc_workorder.cnc_worksheet})
|
||||
new_pre_workorder = new_production.workorder_ids.filtered(lambda
|
||||
p: p.routing_type == '装夹预调' and p.processing_panel == panel)
|
||||
new_pre_workorder.write({'processing_drawing': scrap_pre_workorder.processing_drawing})
|
||||
|
||||
Reference in New Issue
Block a user