优化外协采购和出入库单(工艺退回调整)

This commit is contained in:
jinling.yang
2024-11-18 17:40:41 +08:00
parent ebdeb95b0e
commit c73706555f
9 changed files with 80 additions and 68 deletions

View File

@@ -718,7 +718,7 @@ class MrpProduction(models.Model):
sorted_workorders = sorted(process_parameter_workorder, key=lambda w: w.sequence)
for i, workorder in enumerate(sorted_workorders):
# 检查当前工作订单和下一个工作订单是否连续,并且供应商相同
if workorder.sequence == 1:
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:
@@ -726,7 +726,7 @@ class MrpProduction(models.Model):
else:
# 处理连续组,如果它不为空
if 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)
@@ -740,7 +740,7 @@ class MrpProduction(models.Model):
i - 1].supplier_id.id:
consecutive_workorders = [workorder]
else:
# 立即创建出库拣货单和采购订单
# 立即创建外协出入库单和采购订单
self.env['stock.picking'].create_outcontract_picking(workorder, production)
self.env['purchase.order'].get_purchase_order(workorder, production,
product_id_to_production_names)
@@ -818,6 +818,17 @@ class MrpProduction(models.Model):
self._reset_work_order_sequence1(k)
return True
#需对不连续工单对应的采购单和外协出入库单做处理
def _reset_subcontract_pick_purchase(self):
for item in self:
workorder_sf = item.workorder_ids.filtered(lambda sf: sf.routing_type == '表面工艺')
for i, workorder in enumerate(workorder_sf):
if i == 0:
continue
elif workorder.sequence != workorder_sf[i - 1].sequence + 1:
# workorder.picking_ids.move_ids = False
workorder.picking_ids = False
def _reset_work_order_sequence(self):
"""
工单工序排序方法(新)