OE实施日记之三
-
之前做了两家企业,第一家是液压设备厂为其做了异地库存管理。最后对方因为某种特殊原因没有实施。
第二家是电子厂为其做了mrp的核心部分。不过过年回来后,客户人失踪了,晕倒。
现在是第三家,做按摩椅。老板是一个德国人。我上周六 向其介绍了OpenERP,并开设账户让其试用,不到几天下来该客户尽然找出不少问题和bug。
问题1:产品的customer lead time和延期交货
按道理lead time应该是产品的最快交货日期。现在有产品A假设lead time为7天。
订单一 订单日期3月31日 订产品A 20件。那么自动生成的发货单4月6日。
订单二 订单日期4月1日 订产品A 50件,由于前面生成未完成,我手动在订单中把delivery delay设定为10天。但是此订单生产的发货单预订的发货日期还是 4月8日,而不是4月11日。
bug 已经解决。就在刚才在群里,wjf给出了源码
date_planned = DateTime.now() + DateTime.DateTimeDeltaFromDays(line.delay or 0.0)
date_planned = (date_planned - DateTime.DateTimeDeltaFromDays(company.security_lead)).strftime('%Y-%m-%d %H:%M:%S')
发货单日期=销售订单操作日期+货物延期-公司安全期
其实上面不是bug只是和我原先理解有点不同。
问题2:产品虚拟库存
实际库存是当前时间仓库的实际库存
虚拟库存实际上就是未来库存。一般情况下会计算,未来所有时间的订单。
前面两家需求都没有要求对虚拟库存的准确计算,此次德国佬对未来库存要求高,我也被问住了,不过回家用Excel整理一下。
sale_order delivery_packing production
id date_order confirm_date amount goods_delay date_order planned_date date_done date
SO002 03/27/2010 03/27/2010 13:09:03 50 7 03/27/2010 13:09:03 03/27/2010 14:25:00 03/27/2010 14:25:00 03/27/2010 14:23:37
SO003 04/15/2010 03/27/2010 13:45:08 20 30 03/27/2010 13:45:08 04/21/2010 13:45:08 unknown 04/19/2010 13:45:08
SO006 03/31/2010 03/27/2010 14:45:02 20 15 03/27/2010 14:45:02 04/06/2010 14:45:02 unknown 04/04/2010 14:45:02
S0007 03/27/2010 03/27/2010 23:14:13 1 20 03/27/2010 23:14:13 04/11/2010 23:14:13 unknown unprepare
发现对产品的虚拟和实际库存影响比较大的是deliverypacking的planned_date和production的date。
以上面的订单举例。
当前时间3月28日
当前的实际库存为0(因为当前无货)
虚拟库存-1(因为订单07没有安排生产,目前缺货。而02,03,06已经安排生产,正负抵消不影响虚拟库存)
如果我们选择虚拟库存的截止日期为4月5日。
此时实际库存还是还是-1(实际库存是当前库存)
但是未来库存为 19 (因为订单06在4月安排生产完毕,但是货未发,所以仓库有19个货物)[[i] 本帖最后由 mihi 于 2010-3-28 10:21 编辑 [/i]]
-
问题3继续讨论日期问题从上面的讨论中,我们已经知晓。订单的date_order并不重要。关键是订单的confirm_date。就是确认订单的具体时间。暂且简称订单时间。
货物发货=订单时间+延期日期(默认为产品的lead time)-公司安全期。
比如上面的SO002日期03/27/2010 13:45:08 延期交货30天,公司安全期 5天。所以
发货日期为04/21/2010 13:45:08。
目前问题就是生产的日期:当前的计算结果为04/19/2010 13:45:08。而该货物的生产时间为 1天。按道理为4月20日。
按wjf提醒:还会减去bom下面原料的Manufacturing Lead Time。这里原料还有一天,所以-2 为04/19 。验证通过。
继续讨论,就是原料的采购时间。
我们这里产品A的Customer Lead Time: 7. Manufacturing Lead Time: 1.00
该产品A的原料R其Customer Lead Time: 7. Manufacturing Lead Time: 1.00
那么该原料的采购日期:4月19-7-1=4月11日。
为什么还要减-1?
经过wjf继续提醒。
A产品的生产日期=A需求日期-A的生产用时-公司的生产延期
R原料的采购日期=R需求时间(A的生产时间)-R的采购延期-公司的生产延期[[i] 本帖最后由 mihi 于 2010-3-28 21:38 编辑 [/i]]
-
兄弟的提问方式超赞,不但自己问题解决,我们也一起学习受益。
关于第三个问题,你可以看一下addons-extra下的‘product_variant_configurator',它还要依赖另外两个模块:'product_variant_multi' 和 'sale_product_multistep_configurator'.
上面提到的OE的这个模块应该也可以解决服装鞋帽行业的,产品款式与产品颜色,尺寸的组合。它实际上提供了产品定义的多个维度(Dimension)OE的这个模块相对功能较简单,product configurator可以根据需求变得非常复杂,比如Dell网站上的产品配置,它还会通过动态BOM跟生产关联。