回退代码
This commit is contained in:
@@ -783,7 +783,7 @@ class MrpProduction(models.Model):
|
||||
workorder.duration_expected = workorder._get_duration_expected()
|
||||
|
||||
# 外协出入库单处理
|
||||
def get_subcontract_pick_purchase(self, special_design_workorder):
|
||||
def get_subcontract_pick_purchase(self):
|
||||
production_all = self.sorted(lambda x: x.id)
|
||||
product_id_to_production_names = {}
|
||||
grouped_product_ids = {k: list(g) for k, g in
|
||||
@@ -792,57 +792,17 @@ class MrpProduction(models.Model):
|
||||
product_id_to_production_names[product_id] = [p.name for p in pd]
|
||||
sorted_workorders = None
|
||||
for production in production_all:
|
||||
# proc_workorders = []
|
||||
# process_parameter_workorder = self.env['mrp.workorder'].search(
|
||||
# [('surface_technics_parameters_id', '!=', False), ('production_id', '=', production.id),
|
||||
# ('is_subcontract', '=', True), ('state', '!=', 'cancel')], order='sequence asc')
|
||||
# need_delete_workorder = process_parameter_workorder - special_design_workorder
|
||||
# for workorder in need_delete_workorder:
|
||||
# workorder._get_surface_technics_purchase_ids().write({'active': False})
|
||||
# workorder.move_subcontract_workorder_ids.write({'state': 'cancel'})
|
||||
# workorder.move_subcontract_workorder_ids.picking_id.write({'active': False})
|
||||
|
||||
if special_design_workorder:
|
||||
consecutive_workorders = []
|
||||
sorted_workorders = sorted(special_design_workorder, key=lambda w: w.sequence)
|
||||
# for i, workorder in enumerate(sorted_workorders):
|
||||
# # 检查当前工作订单和下一个工作订单是否连续,并且供应商相同
|
||||
# if i == 0:
|
||||
# consecutive_workorders.append(workorder)
|
||||
# elif workorder.sequence == sorted_workorders[
|
||||
# i - 1].sequence + 1 and workorder.supplier_id.id == sorted_workorders[i - 1].supplier_id.id:
|
||||
# consecutive_workorders.append(workorder)
|
||||
# else:
|
||||
# # 处理连续组,如果它不为空
|
||||
# if consecutive_workorders:
|
||||
# proc_workorders.append(consecutive_workorders)
|
||||
# # 创建外协出入库单和采购订单
|
||||
# # self.env['stock.picking'].create_outcontract_picking(consecutive_workorders, production, sorted_workorders)
|
||||
# # self.env['purchase.order'].get_purchase_order(consecutive_workorders, production,
|
||||
# # product_id_to_production_names)
|
||||
# if i < len(sorted_workorders) - 1:
|
||||
# # 重置连续组,并添加当前工作订单
|
||||
# consecutive_workorders = [workorder]
|
||||
# else:
|
||||
# # 判断最后一笔:
|
||||
# if workorder.sequence == sorted_workorders[
|
||||
# i - 1].sequence and workorder.supplier_id.id == sorted_workorders[
|
||||
# i - 1].supplier_id.id:
|
||||
# consecutive_workorders = [workorder]
|
||||
# else:
|
||||
# proc_workorders.append([workorder])
|
||||
# # 立即创建外协出入库单和采购订单
|
||||
# # self.env['stock.picking'].create_outcontract_picking(workorder, production)
|
||||
# # self.env['purchase.order'].get_purchase_order(workorder, production,
|
||||
# # product_id_to_production_names)
|
||||
# consecutive_workorders = []
|
||||
#
|
||||
# # 处理最后一个组,即使它可能只有一个工作订单
|
||||
# if consecutive_workorders:
|
||||
# proc_workorders.append(consecutive_workorders)
|
||||
# self.env['stock.picking'].create_outcontract_picking(consecutive_workorders, production)
|
||||
# self.env['purchase.order'].get_purchase_order(consecutive_workorders, production,
|
||||
# product_id_to_production_names)
|
||||
proc_workorders = []
|
||||
process_parameter_workorder = self.env['mrp.workorder'].search(
|
||||
[('surface_technics_parameters_id', '!=', False), ('production_id', '=', production.id),
|
||||
('is_subcontract', '=', True), ('state', '!=', 'cancel')], order='sequence asc')
|
||||
if process_parameter_workorder:
|
||||
# 将这些特殊表面工艺工单的采购单与调拨单置为失效
|
||||
for workorder in process_parameter_workorder:
|
||||
workorder._get_surface_technics_purchase_ids().write({'state': 'cancel'})
|
||||
workorder.move_subcontract_workorder_ids.write({'state': 'cancel'})
|
||||
workorder.move_subcontract_workorder_ids.picking_id.write({'state': 'cancel'})
|
||||
sorted_workorders = sorted(process_parameter_workorder, key=lambda w: w.sequence)
|
||||
if not sorted_workorders:
|
||||
return
|
||||
for workorders in reversed(sorted_workorders):
|
||||
|
||||
@@ -113,9 +113,7 @@ class ProductionTechnologyWizard(models.TransientModel):
|
||||
workorder.blocked_by_workorder_ids = blocked_by_workorder_ids[0]
|
||||
productions._create_workorder(False)
|
||||
if self.production_id.product_id.categ_id.type == '成品':
|
||||
special_design_workorder = self.env['mrp.workorder'].search(
|
||||
[('technology_design_id', 'in', special_design.ids), ('production_id', '=', special.production_id.id), ('state', '!=', 'cancel')])
|
||||
productions.get_subcontract_pick_purchase(special_design_workorder)
|
||||
productions.get_subcontract_pick_purchase()
|
||||
productions.is_adjust = False
|
||||
for item in productions:
|
||||
workorder = item.workorder_ids.filtered(lambda wo: wo.state not in ('cancel')).sorted(
|
||||
|
||||
Reference in New Issue
Block a user