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

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

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

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

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

最小包装




  • 采购部门提出一个问题:

    比如某个产品下1500个的生产单进行生产,这个产品的某个零件需要1500只,则系统会根据BOM单产生这个零件的1500只的订单,但这个零件供应商的最小包装是1000个,正确的订单必须是2000只。OpenERP里有对这个的直接支持吗?

    Chip








  • 没找到



  • 呵呵,我也没找到。

    MOQ 和 SPQ, 我以前用的ERP是支持这两个的。

    MOQ (MINIM ORDER QUANTITY) , OpenERP是支持的,叫MINIMAL QUANTITY。

    SPQ=Standard Pack Quantity 标准包装数,就是我所谓的最小包装数,我没找到。经试验,Packaging 那里不产生任何约束。

    谁能给个思路,我试试弄一下。大家知道,电子元件都是一盘一盘卖的。



  • 试试采购计量单位
    但问题是每个产品只能设一个采购计量单位,不能分供应商。




  • 试了试, 比如设置采购单位是盘, 1盘=2000 片(片是Default UoM), BOM 需要3500片,procurement running居然生成了1.75盘的订单,并不取整成2盘(4000片)令人哭笑不得。




  • 这次把Rounding Precission 设成1.0, BOM需要3500片,Procurement 生成的订单数量居然是1 盘,而不是两盘。



  • 你猜怎么着,Procurement 生成的订单居然是四舍五入, 零头小于.500的,就向下取整;零头大于w等于500的,就向上取整。我需要的是无论零头是多少,都向上取整。

    还有意思的是,会生成两个订单。



  • 读源代码吧,会更快找到答案
    虽然你测试的思路很清晰



  • 所有的这一切.... 都可以在二次开发中全部解决.呵呵. 开源豆是这么安逸...



  • 找到了:

    product.py 128行 :
         
                      amount = rounding(amount * to_unit.factor, to_unit.rounding) 四舍五入了。

    对于Minimum Package的情况,改成这样就行了:

                        amount = amount // (1.0 / to_unit.factor) + 1

    先在前面这样做:
            设置采购单位是盘, 1盘=2000 片(片是Default UoM)by set  Rate = 0.0005,  note : rate is stored in table as factor.
            再把Rounding Precission 设成1.0
           

    感谢 Shelly 和 wjfonhand。 要不是你们的帮忙,OpenERP也许在我们公司就夭折了,要是那样,我可怎么混啊。



  • Mark 一下...  如果这个设置能做成模块的一个 参数项, 就完美了...呵呵...

    PS: 建议给贴子添加 一些 标签. 以便更多的人能检索到..



  • 把rounding改成ceilling是不是就行了?

    帮忙是应该的,中国的用户都夭折了,我们也不用玩了。



  • 我看到  6.1  的最小库存规则里面,有一个  “数量倍数”字段,是不是解决这种需求呢?


Log in to reply