两张外协工单报错问题
This commit is contained in:
@@ -807,45 +807,45 @@ class MrpProduction(models.Model):
|
|||||||
workorder.move_subcontract_workorder_ids.picking_id.write({'state': 'cancel'})
|
workorder.move_subcontract_workorder_ids.picking_id.write({'state': 'cancel'})
|
||||||
consecutive_workorders = []
|
consecutive_workorders = []
|
||||||
sorted_workorders = sorted(process_parameter_workorder, key=lambda w: w.sequence)
|
sorted_workorders = sorted(process_parameter_workorder, key=lambda w: w.sequence)
|
||||||
for i, workorder in enumerate(sorted_workorders):
|
# for i, workorder in enumerate(sorted_workorders):
|
||||||
# 检查当前工作订单和下一个工作订单是否连续,并且供应商相同
|
# # 检查当前工作订单和下一个工作订单是否连续,并且供应商相同
|
||||||
if i == 0:
|
# if i == 0:
|
||||||
consecutive_workorders.append(workorder)
|
# consecutive_workorders.append(workorder)
|
||||||
elif workorder.sequence == sorted_workorders[
|
# elif workorder.sequence == sorted_workorders[
|
||||||
i - 1].sequence + 1 and workorder.supplier_id.id == sorted_workorders[i - 1].supplier_id.id:
|
# i - 1].sequence + 1 and workorder.supplier_id.id == sorted_workorders[i - 1].supplier_id.id:
|
||||||
consecutive_workorders.append(workorder)
|
# consecutive_workorders.append(workorder)
|
||||||
else:
|
# else:
|
||||||
# 处理连续组,如果它不为空
|
# # 处理连续组,如果它不为空
|
||||||
if consecutive_workorders:
|
# if consecutive_workorders:
|
||||||
proc_workorders.append(consecutive_workorders)
|
# proc_workorders.append(consecutive_workorders)
|
||||||
# 创建外协出入库单和采购订单
|
# # 创建外协出入库单和采购订单
|
||||||
# self.env['stock.picking'].create_outcontract_picking(consecutive_workorders, production, sorted_workorders)
|
# # self.env['stock.picking'].create_outcontract_picking(consecutive_workorders, production, sorted_workorders)
|
||||||
# self.env['purchase.order'].get_purchase_order(consecutive_workorders, production,
|
# # self.env['purchase.order'].get_purchase_order(consecutive_workorders, production,
|
||||||
# product_id_to_production_names)
|
# # product_id_to_production_names)
|
||||||
if i < len(sorted_workorders) - 1:
|
# if i < len(sorted_workorders) - 1:
|
||||||
# 重置连续组,并添加当前工作订单
|
# # 重置连续组,并添加当前工作订单
|
||||||
consecutive_workorders = [workorder]
|
# consecutive_workorders = [workorder]
|
||||||
else:
|
# else:
|
||||||
# 判断最后一笔:
|
# # 判断最后一笔:
|
||||||
if workorder.sequence == sorted_workorders[
|
# if workorder.sequence == sorted_workorders[
|
||||||
i - 1].sequence and workorder.supplier_id.id == sorted_workorders[
|
# i - 1].sequence and workorder.supplier_id.id == sorted_workorders[
|
||||||
i - 1].supplier_id.id:
|
# i - 1].supplier_id.id:
|
||||||
consecutive_workorders = [workorder]
|
# consecutive_workorders = [workorder]
|
||||||
else:
|
# else:
|
||||||
proc_workorders.append([workorder])
|
# proc_workorders.append([workorder])
|
||||||
# 立即创建外协出入库单和采购订单
|
# # 立即创建外协出入库单和采购订单
|
||||||
# self.env['stock.picking'].create_outcontract_picking(workorder, production)
|
# # self.env['stock.picking'].create_outcontract_picking(workorder, production)
|
||||||
# self.env['purchase.order'].get_purchase_order(workorder, production,
|
# # self.env['purchase.order'].get_purchase_order(workorder, production,
|
||||||
# product_id_to_production_names)
|
# # product_id_to_production_names)
|
||||||
consecutive_workorders = []
|
# consecutive_workorders = []
|
||||||
|
#
|
||||||
# 处理最后一个组,即使它可能只有一个工作订单
|
# # 处理最后一个组,即使它可能只有一个工作订单
|
||||||
if consecutive_workorders:
|
# if consecutive_workorders:
|
||||||
proc_workorders.append(consecutive_workorders)
|
# proc_workorders.append(consecutive_workorders)
|
||||||
# self.env['stock.picking'].create_outcontract_picking(consecutive_workorders, production)
|
# self.env['stock.picking'].create_outcontract_picking(consecutive_workorders, production)
|
||||||
# self.env['purchase.order'].get_purchase_order(consecutive_workorders, production,
|
# self.env['purchase.order'].get_purchase_order(consecutive_workorders, production,
|
||||||
# product_id_to_production_names)
|
# product_id_to_production_names)
|
||||||
for workorders in reversed(proc_workorders):
|
for workorders in reversed(sorted_workorders):
|
||||||
self.env['stock.picking'].create_outcontract_picking(workorders, production, sorted_workorders)
|
self.env['stock.picking'].create_outcontract_picking(workorders, production, sorted_workorders)
|
||||||
self.env['purchase.order'].get_purchase_order(workorders, production, product_id_to_production_names)
|
self.env['purchase.order'].get_purchase_order(workorders, production, product_id_to_production_names)
|
||||||
|
|
||||||
|
|||||||
@@ -677,9 +677,8 @@ class StockPicking(models.Model):
|
|||||||
move_dest_id = item.move_raw_ids[0].id
|
move_dest_id = item.move_raw_ids[0].id
|
||||||
else:
|
else:
|
||||||
# 从sorted_workorders中找到上一工单的move
|
# 从sorted_workorders中找到上一工单的move
|
||||||
if sorted_workorders.index(workorder) > 0:
|
if len(sorted_workorders) > 1:
|
||||||
move_dest_id = \
|
move_dest_id = sorted_workorders[sorted_workorders.index(workorder)+1].move_subcontract_workorder_ids[1].id
|
||||||
sorted_workorders[sorted_workorders.index(workorder) - 1].move_subcontract_workorder_ids[1].id
|
|
||||||
new_picking = True
|
new_picking = True
|
||||||
outcontract_picking_type_in = self.env.ref(
|
outcontract_picking_type_in = self.env.ref(
|
||||||
'sf_manufacturing.outcontract_picking_in').id,
|
'sf_manufacturing.outcontract_picking_in').id,
|
||||||
|
|||||||
Reference in New Issue
Block a user