1

概括

在我即将收到的一批原材料不足以满足我所有的发货和生产订单的情况下,我如何预测这些原材料将分配到哪些发货和生产订单?

细节

我有一个新的测试数据库,我做了以下操作:

设置

  1. 创建要生产的产品,make_to_stock,(例如,“内阁”)
  2. 创建要购买的产品,make_to_stock,(例如,'Wood')
  3. 将 BOM 添加到包含单个 BOM 行、一个“Wood”的橱柜产品
  4. 将供应商添加到内阁
  5. 添加一个订单点以将 Wood 的 VA 保持为零(即永远不要保留库存)

过程

  1. 为内阁创建采购请求
  2. 运行采购
  3. 采购为橱柜创建了一个MO,找到了BOM,并为橱柜和木材创建了几条移动线,并为每个产品创建了一个采购
  4. 确认从 MO 采购 Wood,并观察它是否进入异常状态。

此时,系统中有四种股票走势:

1. Cabinet Stock->Stock, from initial procurement, in state 'confirmed' (waiting on #2)
2. Cabinet Production->Stock, from MO, in state 'waiting' (waiting on #3)
3. Wood Stock->Production, to be consumed by MO, in state 'waiting' (waiting on #4)
4. Wood Stock->Stock, procurement reservation from MO input, in state 'exception' (no stock found)

现在,继续:

  1. 运行调度程序。这会为 Wood 创建一个新的采购,因为 VA < 0,基于我们定义的 orderpoint。它还确认并运行该采购,为 Wood 创建新的采购订单并设置草稿库存移动。
  2. 确认将分配库存移动的采购订单。
  3. 正是在这一点上,我们将等待木材交付。去接收产品,并确认库存移动。

此时,四个股票走势处于相同状态,Wood还有两个额外的,一个来自Suppliers->Stock,一个来自Stock->Stock。在最后一步中,我们确认进入 Stock->Stock。

目前我们有 1 个木材库存,1 个木材采购由于库存不足而异常。

我的问题是,我怎样才能确定这些木材将来会分配到哪里?如果这不可能(似乎不可能),那么在重试采购并看到它成功之后,我怎么知道最初分配库存移动的位置?

为了明确为什么需要这样做,我们将交付几种产品,我们希望将它们实际放置在库存中或直接放置在需要它的机器前面。也就是说,我们希望能够直接跟踪交货库存的移动,尽管它是在 MO 中分配的插槽。

作为参考,以下是重试木材采购后库存变动的情况:

#Initial Procurement
37787: 1.0 Base Cabinet (copy) [Stock -> Stock] (confirmed waiting for 37788) (procured from 16580)
#MO final product
37788: 1.0 Base Cabinet (copy) [Production -> Stock] (waiting waiting for 37789) (finished product of MO 7433)
#MO source product (has move history with 37790)
37789: 1.0 1/2ChinFPly1s (copy) [Stock -> Production] (assigned waiting for 37790) (to be consumed by 7433)
#Procurement for input, waiting for something in stock
37790: 1.0 1/2ChinFPly1s (copy) [Stock -> Stock] (done) (procured from 16581)

#------------------------------
#------------------------------

#Procurment from Orderpoint, putting something in stock (has move history with 37794)
37791: 1.0 1/2ChinFPly1s (copy) [Stock -> Stock] (done waiting for 37794) (procured from 16582)
37794: 1.0 1/2ChinFPly1s (copy) [Suppliers -> Stock] (done) (final move of PO line 3)

似乎没有任何方法可以将前四个动作与后两个动作联系起来。

4

2 回答 2

1

在 core openerp 中,没有任何功能可以告诉您从哪个订单分配给哪个订单的库存。您必须在互联网上实施或搜索可以帮助您的 fifo lifo 模块。供参考:http ://www.youtube.com/watch?v=DfoxZLxagXQ

于 2012-08-24T09:19:31.257 回答
0

看起来计划中较早的采购将优先选择您刚刚收到的任何货物。您可以通过在 MRP 计划程序运行之前手动重新运行采购或调整date_planned采购字段来覆盖它。

MRP 调度程序在收到您的货物后下次运行时,它将遍历所有处于异常状态的采购并尝试重新启动它们。在调度程序代码中,您可以看到它按顺序处理它们date_planned

if not ids:
    ids = procurement_obj.search(cr, 
                                 uid, 
                                 [('state', '=', 'exception')], 
                                 order="date_planned")
for id in ids:
    wf_service.trg_validate(uid, 'procurement.order', id, 'button_restart', cr)
于 2012-08-24T19:51:37.043 回答