Odoo中文社区可以通过以下两个域名访问:shine-it.net , odoo.net.cn

由于系统升迁的原因,本论坛部分较早期的内容存在格式和链接损坏失效的问题,并非本论坛系统本身的缺陷,望谅解

本社区没有维护任何QQ群讨论组,任何与本社区同名的QQ群讨论组的言论与本社区无关!

开发人员可以登录gitter讨论组: http://gitter.im/odoo-china/Talk, 需要github账号

如果您登录系统碰到问题,请在微信公众号留言:

请教:在手库存充足的情况下MO 检查可用性,预留为0是怎么回事?



  • 库存on hand 充足
    fbda4737-ab82-4efc-8fb8-7239dc2dfcf5-image.png

    89137379-ece6-4e57-8142-821e1912db61-image.png 检查可用性显示为0


  • 管理员

    我理解你的需求应该是:

    生产某个产品FG-001,当这个产品的物料比如Semi-FG-001,Com.001, Com.002在库存中有充足库存时,从仓库预留这些物料;如果不够的时候就按需采购或生产这些物料。

    在V12以前包括V12这个需求很难完整实现。因为route中的Move Supply Method只有两个选项Trigger Another Rule (即mto)和Take from stock(即mts)

    当你在route中选择的是Trigger Another Rule,比如你的设置例子中中对客户库位需求的处理,那么系统将不再检查Stock库位的库存,而在Stock库位触发新的需求从而产生对应的生产或采购单。这也是你现在的问题。

    在V13以前的最接近的做法是设置Take from Stock(mts),默认补货规则,然后设置最小订货点,所以生产订单先消耗配件库存,当库存低于最小库存设置,触发补货需求,然后生成对应采购或生产订单。但是注意这里的采购和生产订单与原始的那个生产订单是没有关联关系的,因为它是由最小库存规则触发的。

    而在V13以后,我们多了一个选项:Take From Stock, if unavailable, Trigger Another Rule(即mts_else_mto),这个选项基本上就是你的需求了。(当然这个选项还有一些其他问题:https://github.com/odoo/odoo/pull/32778 ,这可能在未来版本的Odoo中才能解决)。

    另外,对于你目前的这些基本需求是不需要另外定义route的,使用系统已有的route定义已经足够了。



  • 原因是:此MO 未考虑在手库存的情况下自动生成新的的采购PO
    78d9f0d5-7a81-46a9-93ec-bc9a60423b7d-image.png

    采购入库
    907ff085-1bbf-4c07-a5ff-dc1bf7953f36-image.png
    采购入库后MO 自动预留
    807a8b78-4bbf-4506-9a8f-f3cd430924f1-image.png


  • 管理员

    这是因为你配件产品的route 设置成了“MTO” (make to order),所以它不会检查库存情况的。你可以把这些产品设置成MTS,就是不要选MTO。

    如果你用的是V13,并且最新更新了这个 https://github.com/odoo/odoo/commit/3f8f216f5b2c9c6c1fa0757e929471db97d8f304

    那么生产时默认会选MTSO模式,即MTS->MTO就是默认检测库存MTS,库存不足部分MTO发起采购或生产



  • @digitalsatori 我确实是要设MTO, 但是按照 Oddo 官方视频中的MTO设置没有路线细节,我根据自己的理解设置了路线,也不确定我重新设置的是不是MTO, 我的路线设置如下图,麻烦帮忙看看是否证确。
    BOM 结构
    c42e5f82-ebe6-4bf0-a615-57cdaabf05be-image.png
    父件 FG-001 路线配置:
    f426c1dc-d651-4f80-9b3e-319fb3733ebf-image.png
    子件 Semi-FG, Com.001 , com002 路线设置
    3bc5fa75-0212-45ba-a55b-aa273e3d19f8-image.png


  • 管理员

    我理解你的需求应该是:

    生产某个产品FG-001,当这个产品的物料比如Semi-FG-001,Com.001, Com.002在库存中有充足库存时,从仓库预留这些物料;如果不够的时候就按需采购或生产这些物料。

    在V12以前包括V12这个需求很难完整实现。因为route中的Move Supply Method只有两个选项Trigger Another Rule (即mto)和Take from stock(即mts)

    当你在route中选择的是Trigger Another Rule,比如你的设置例子中中对客户库位需求的处理,那么系统将不再检查Stock库位的库存,而在Stock库位触发新的需求从而产生对应的生产或采购单。这也是你现在的问题。

    在V13以前的最接近的做法是设置Take from Stock(mts),默认补货规则,然后设置最小订货点,所以生产订单先消耗配件库存,当库存低于最小库存设置,触发补货需求,然后生成对应采购或生产订单。但是注意这里的采购和生产订单与原始的那个生产订单是没有关联关系的,因为它是由最小库存规则触发的。

    而在V13以后,我们多了一个选项:Take From Stock, if unavailable, Trigger Another Rule(即mts_else_mto),这个选项基本上就是你的需求了。(当然这个选项还有一些其他问题:https://github.com/odoo/odoo/pull/32778 ,这可能在未来版本的Odoo中才能解决)。

    另外,对于你目前的这些基本需求是不需要另外定义route的,使用系统已有的route定义已经足够了。



  • @digitalsatori 您的解答非常清晰,感谢解惑!


  • 管理员

    不客气,常来交流


Log in to reply