解决删除表面工艺,多增加了采购单的bug
This commit is contained in:
@@ -66,30 +66,30 @@ class ProductionTechnologyReAdjustWizard(models.TransientModel):
|
||||
# 工单采购单外协出入库单皆需取消
|
||||
domain = [('production_id', '=', special.production_id.id)]
|
||||
if special.process_parameters_id:
|
||||
domain += [('surface_technics_parameters_id', '=', special.process_parameters_id.id)]
|
||||
domain += [('surface_technics_parameters_id', '=', special.process_parameters_id.id), ('state', '!=', 'cancel')]
|
||||
else:
|
||||
domain += [('technology_design_id', '=', special.id)]
|
||||
domain += [('technology_design_id', '=', special.id), ('state', '!=', 'cancel')]
|
||||
workorder = self.env['mrp.workorder'].search(domain)
|
||||
previous_workorder = self.env['mrp.workorder'].search(
|
||||
[('sequence', '=', workorder.sequence - 1), ('routing_type', '=', '表面工艺'),
|
||||
('production_id', '=', workorder.production_id.id)])
|
||||
if previous_workorder:
|
||||
if previous_workorder.supplier_id != workorder.supplier_id:
|
||||
is_cancel = True
|
||||
else:
|
||||
is_cancel = True
|
||||
if workorder.state != 'cancel' and is_cancel is True:
|
||||
workorder.write({'state': 'cancel'})
|
||||
workorder.picking_ids.write({'state': 'cancel'})
|
||||
workorder.picking_ids.move_ids.write({'state': 'cancel'})
|
||||
purchase_order = self.env['purchase.order'].search(
|
||||
[('origin', '=', workorder.production_id.name)])
|
||||
for line in purchase_order.order_line:
|
||||
if line.product_id.server_product_process_parameters_id == workorder.surface_technics_parameters_id:
|
||||
purchase_order.write({'state': 'cancel'})
|
||||
# previous_workorder = self.env['mrp.workorder'].search(
|
||||
# [('sequence', '=', workorder.sequence - 1), ('routing_type', '=', '表面工艺'),
|
||||
# ('production_id', '=', workorder.production_id.id)])
|
||||
# if previous_workorder:
|
||||
# if previous_workorder.supplier_id != workorder.supplier_id:
|
||||
# is_cancel = True
|
||||
# else:
|
||||
# is_cancel = True
|
||||
# if workorder.state != 'cancel' and is_cancel is True:
|
||||
# workorder.write({'state': 'cancel'})
|
||||
# workorder.picking_ids.write({'state': 'cancel'})
|
||||
# workorder.picking_ids.move_ids.write({'state': 'cancel'})
|
||||
# purchase_order = self.env['purchase.order'].search(
|
||||
# [('origin', '=', workorder.production_id.name)])
|
||||
# for line in purchase_order.order_line:
|
||||
# if line.product_id.server_product_process_parameters_id == workorder.surface_technics_parameters_id:
|
||||
# purchase_order.write({'state': 'cancel'})
|
||||
else:
|
||||
workorder = self.env['mrp.workorder'].search(
|
||||
[('technology_design_id', '=', special.id), ('production_id', '=', special.production_id.id)])
|
||||
[('technology_design_id', '=', special.id), ('production_id', '=', special.production_id.id), ('state', '!=', 'cancel')])
|
||||
if not workorder:
|
||||
if special.route_id.routing_type == '表面工艺':
|
||||
product_production_process = self.env['product.template'].search(
|
||||
@@ -110,11 +110,12 @@ class ProductionTechnologyReAdjustWizard(models.TransientModel):
|
||||
workorder.blocked_by_workorder_ids = None
|
||||
else:
|
||||
if workorder.blocked_by_workorder_ids:
|
||||
workorder.blocked_by_workorder_ids = blocked_by_workorder_ids[0]
|
||||
workorder.blocked_by_workorder_ids = workorder.blocked_by_workorder_ids[0]
|
||||
productions._reset_work_order_sequence()
|
||||
if self.production_id.product_id.categ_id.type == '成品':
|
||||
productions._reset_subcontract_pick_purchase()
|
||||
productions.get_subcontract_pick_purchase()
|
||||
# 退回时不对外协出入库单和采购单做处理
|
||||
# if self.production_id.product_id.categ_id.type == '成品':
|
||||
# productions._reset_subcontract_pick_purchase()
|
||||
# productions.get_subcontract_pick_purchase()
|
||||
productions.is_adjust = True
|
||||
for item in productions:
|
||||
workorders = item.workorder_ids.filtered(lambda wo: wo.state not in ('cancel')).sorted(
|
||||
|
||||
@@ -63,9 +63,9 @@ class ProductionTechnologyWizard(models.TransientModel):
|
||||
# 工单采购单外协出入库单皆需取消
|
||||
domain = [('production_id', '=', special.production_id.id)]
|
||||
if special.process_parameters_id:
|
||||
domain += [('surface_technics_parameters_id', '=', special.process_parameters_id.id)]
|
||||
domain += [('surface_technics_parameters_id', '=', special.process_parameters_id.id), ('state', '!=', 'cancel')]
|
||||
else:
|
||||
domain += [('technology_design_id', '=', special.id)]
|
||||
domain += [('technology_design_id', '=', special.id), ('state', '!=', 'cancel')]
|
||||
workorder = self.env['mrp.workorder'].search(domain)
|
||||
previous_workorder = self.env['mrp.workorder'].search(
|
||||
[('sequence', '=', workorder.sequence - 1), ('routing_type', '=', '表面工艺'),
|
||||
@@ -87,7 +87,7 @@ class ProductionTechnologyWizard(models.TransientModel):
|
||||
else:
|
||||
if special.production_id.workorder_ids:
|
||||
workorder = self.env['mrp.workorder'].search(
|
||||
[('technology_design_id', '=', special.id), ('production_id', '=', special.production_id.id)])
|
||||
[('technology_design_id', '=', special.id), ('production_id', '=', special.production_id.id), ('state', '!=', 'cancel')])
|
||||
if not workorder:
|
||||
if special.route_id.routing_type == '表面工艺':
|
||||
product_production_process = self.env['product.template'].search(
|
||||
@@ -100,7 +100,7 @@ class ProductionTechnologyWizard(models.TransientModel):
|
||||
else:
|
||||
workorders_values.append(
|
||||
self.env['mrp.workorder'].json_workorder_str(special.production_id, special))
|
||||
special.production_id.write({'workorder_ids': workorders_values})
|
||||
special.production_id.write({'workorder_ids': workorders_values})
|
||||
else:
|
||||
if len(workorder.blocked_by_workorder_ids) > 1:
|
||||
if workorder.sequence == 1:
|
||||
|
||||
Reference in New Issue
Block a user