8.0 中如何实现外协加工业务及生产成本的核算
-
论坛里关于委外的主题的几个帖子大多都是7.0的,没发现有在8.0里实现的栗子。(参见http://shine-it.net/index.php/topic,2639.msg9802.html#msg9802)
现在想要实现一个看起来很简单的委外生产栗子,公司有A产品需要委托生产厂P加工生产,A的BOM是由原材料B和C组成的(这里没有加生产厂的加工服务,因为就算加上了服务,系统也不会产生对服务的采购单,也不会在会计中生成凭证,╮(╯▽╰)╭)。主要路线是,原材料有公司采购入库,然后送到加工厂P,加工厂加工完成后将成品送回仓库,然后再销售给客户。
根据论坛里7.0的相关设置,我是这么做的:
1.给加工厂P创建一个供应商库位,库位的Owner设置为加工厂P,加工厂P的供应商地址设置为刚创建的供应商库位。
2.原材料B和C设置路线为Buy,并在公司主仓库stock设置订购点,成品A设置为路线Manufacture,也在stock设置订购点。
3.设置工艺路线L,工艺路线的Production Location设置为加工厂P的供应商库位,并在成品A的BOM中选择创建的工艺路线L。
那么,问题来了:(已测试)
1.创建完销售单,然后跑MRP运算,会如预期的生产对原材料B和C的采购单,也会生成产品A的生产单,也有将原材料B和C入库以后送往加工产P的送货单,
但是,由此创建的生产单将不需要完成原材料B和C的调拨即可通过验证完成生产,且生产完成后的产品并没有经过从加工厂P到仓库的调拨,而是直接在stock仓库中生产了出来。
如果将生产厂P设置为内部类型的库位,虽然可以解决上面的问题,但是却由于是内部调拨而不会在会计里产生相应的移动凭证,也就无法在财务那里对送给加工厂的原材料进行核算。
2.如何对加工厂的加工费用进行统计?
虽然可以通过在工艺路线里的工艺中心的成本“替代”地解决加工费用的问题,可还是觉得是不是应该有更合理的方案?
3.如何对生产的成本进行核算?
如果采用标准成本法,那么虽然解决了原材料成本核算的问题,可是产成品的真实成本还是无法获知。
如果采用实际成本法,产品采用平均价,那么当生产已经投料,产成品还未产出,此时原材料成本价发生变化,生产的成本是否应该按照更改后的价格来计算?8.0中的生产库位的估值,是按照更改后的价格进行核算的,这样做合理吗?
生产完成后,产成品A的成本是从产品设置中直接拿过来的,并没有通过计算投产的原材料价值而来,这样做是合理的吗?虽然可以通过安装product_extend模块来计算BOM的成本作为产成品的成本,但是,一来这样需要手工操作,二来操作的时机也是个问题。
还望有过生产经验的大神答疑解惑! -
我就知道,没人回答!!!
好吧,要不就是我对Odoo理解的还是不够深入,反正我试过了各种论坛,各种群,官方论坛,甚至邮件过官方function人员,依旧没有得到想要的解决方案,╮(╯▽╰)╭
无奈我只要自己二开来满足需求了,自己动手,丰衣足食!下面简单说下自己的方案,高手莫见笑!(不妥的地方,欢迎拍砖!)
1. 首先,外协厂的库位是设置成内部库位还是供应商库位的问题,官方的某本培训教材中写的是可以设置为供应商库位,按7.0的思路来也是需要设置为供应商库位的,所以,我最终的选择还是设置成了供应商库位。(如果你对财务上的要求不是很高,其实设置成内部库位也是可以的,核算库存的时候按库位区分就好了)
2. 外协厂设置成了供应商库位,如何避免生产人员在发往外协厂库位的送货单完成之前进行生产操作?那就是在生产验库位的时候自己检测一下相关的调拨是否全部完成,若没有,那么就不让他能够检测通过。
3. 产成品的价格如何核算?Odoo默认的采用的是产成品产品设置的成本价,我这里设置为了产出的时候根据BOM计算出来的原料合计作为产品的cost。
4. 外协厂的服务费用怎么算?8.0中是不支持BOM中添加服务类型的产品的,为了方便,我还是稍微在系统中做了点手脚,让服务类型的产品能够和7.0中一样,正常的产生需求单,正常地产生采购单。当然,也可以不在BOM中添加服务类型的产品,在工艺路线中设置相关的科目属性替代的解决。 -
[quote author=mrshelly link=topic=17097.msg30345#msg30345 date=1431654365]
只懂开滑... 不会... 学习了.....
[/quote]
其实我也是只懂开滑....给逼的....召唤校长~~~@digitalsatori -
因为没有时间对你的问题做完整测试,所以只提供一点我的思路供你参考。
目前产品上设定的“生产”, “MTO”等与7.0不是一个概念了,他们现在都是一个预定义的route,其中包含push 和pull rule。对于我们所提到的外包生产就不应该直接预定义的'Manufacturing' route了,而是要为针对产品或某个产品类型定义新的外包生产路由:也就是当在Stock库位有需求时,这个需求应该通过pull rule向前传递到外包库位,并且在外包库位也有生产的路由定义。
希望对你有所帮助 -
[quote author=digitalsatori link=topic=17097.msg30347#msg30347 date=1431661155]
因为没有时间对你的问题做完整测试,所以只提供一点我的思路供你参考。
目前产品上设定的“生产”, “MTO”等与7.0不是一个概念了,他们现在都是一个预定义的route,其中包含push 和pull rule。对于我们所提到的外包生产就不应该直接预定义的'Manufacturing' route了,而是要为针对产品或某个产品类型定义新的外包生产路由:也就是当在Stock库位有需求时,这个需求应该通过pull rule向前传递到外包库位,并且在外包库位也有生产的路由定义。
希望对你有所帮助
[/quote]
谢谢校长~~
不过还是那个问题,如果外包库位设置成供应商类型的话,stock库对其产生的需求就会立即被满足,虽然外包库位也生成了生产单,也由有stock到外包库的原材料送货单生成,但是不论是成品到stock的调拨,还是外包库位的生产单,再创建单据的那时候就已经满足了调拨的条件,不需要等到原材料完成以后再开始生产。
(目测系统将供应商类型的库位的供应量视为了足够多) -
[quote author=lihaihe link=topic=17097.msg30360#msg30360 date=1431867575]
第一个问题,可以通过改变生产任务单的原材料库位和产成品库位解决,如把原材料库位设置为output,成品为input,并在产品类别和原材料类别设置相应的路由规则,这样发料给外协厂时为output到外协厂虚拟库位,并会触发补货规则到output,这样就不会直接库存满足生产单,而无法控制的情况,外协入库则是先到input,然后触发push规则,生成对应单据,解决外协单完工后无入库单的情况。
[/quote]
把原材料库位设置成output的话,那么生产库位该如何设置?如果生产库位设置为外协的虚拟库位时,还是没有解决确认后立即满足生产条件的问题啊。 -
[quote author=KevinKong link=topic=17097.msg30344#msg30344 date=1431604263]
我就知道,没人回答!!!
好吧,要不就是我对Odoo理解的还是不够深入,反正我试过了各种论坛,各种群,官方论坛,甚至邮件过官方function人员,依旧没有得到想要的解决方案,╮(╯▽╰)╭
无奈我只要自己二开来满足需求了,自己动手,丰衣足食!下面简单说下自己的方案,高手莫见笑!(不妥的地方,欢迎拍砖!)
1. 首先,外协厂的库位是设置成内部库位还是供应商库位的问题,官方的某本培训教材中写的是可以设置为供应商库位,按7.0的思路来也是需要设置为供应商库位的,所以,我最终的选择还是设置成了供应商库位。(如果你对财务上的要求不是很高,其实设置成内部库位也是可以的,核算库存的时候按库位区分就好了)
2. 外协厂设置成了供应商库位,如何避免生产人员在发往外协厂库位的送货单完成之前进行生产操作?那就是在生产验库位的时候自己检测一下相关的调拨是否全部完成,若没有,那么就不让他能够检测通过。
[color=red][b][u]3. 产成品的价格如何核算?Odoo默认的采用的是产成品产品设置的成本价,我这里设置为了产出的时候根据BOM计算出来的原料合计作为产品的cost。[/u]
[/b][/color] [size=18pt][color=yellow][color=red]如何实现?[/color][/color][/size]
4. 外协厂的服务费用怎么算?8.0中是不支持BOM中添加服务类型的产品的,为了方便,我还是稍微在系统中做了点手脚,让服务类型的产品能够和7.0中一样,正常的产生需求单,正常地产生采购单。当然,也可以不在BOM中添加服务类型的产品,在工艺路线中设置相关的科目属性替代的解决。
[/quote] -
[quote author=信德 link=topic=17097.msg30373#msg30373 date=1432016488]
[color=red][b][u]3. 产成品的价格如何核算?Odoo默认的采用的是产成品产品设置的成本价,我这里设置为了产出的时候根据BOM计算出来的原料合计作为产品的cost。[/u]
[/b][/color] [size=18pt][color=yellow][color=red]如何实现?[/color][/color][/size]
[/quote]
产成品的产出实际上是从生产库位调拨到成品库位的一个过程,这期间会创建产成品的quant,并记录创建时刻的产品设置的成本价到cost字段中(不可见),当产成品的成本计算方法为标准或平均时,库存核算采用是产品设置里的成本价,当成本计算方法为实时时,采用的是cost值。因此,我只需要在创建quant的时候重新计算一下BOM中的原料的加和作为cost的值就可以了。 -
[quote author=KevinKong link=topic=17097.msg30370#msg30370 date=1431947024]
[quote author=lihaihe link=topic=17097.msg30360#msg30360 date=1431867575]
第一个问题,可以通过改变生产任务单的原材料库位和产成品库位解决,如把原材料库位设置为output,成品为input,并在产品类别和原材料类别设置相应的路由规则,这样发料给外协厂时为output到外协厂虚拟库位,并会触发补货规则到output,这样就不会直接库存满足生产单,而无法控制的情况,外协入库则是先到input,然后触发push规则,生成对应单据,解决外协单完工后无入库单的情况。
[/quote]
把原材料库位设置成output的话,那么生产库位该如何设置?如果生产库位设置为外协的虚拟库位时,还是没有解决确认后立即满足生产条件的问题啊。
[/quote]
可参照两步销售出库的路由规则来设置
如果生产定单的库位改为为OUTPUT后,当生产订单确认后,生产投料为output到委外供应商的库位,此时output库位并没有物料存,这样生产订单处理等待物料状态。
只有当库存至OUTPUT库位的调拨完成后(调拨单通过PULL规则自动生成),生产订单才处于准备生产状态 -
[quote author=lihaihe link=topic=17097.msg30378#msg30378 date=1432182352]
[quote author=KevinKong link=topic=17097.msg30370#msg30370 date=1431947024]
[quote author=lihaihe link=topic=17097.msg30360#msg30360 date=1431867575]
第一个问题,可以通过改变生产任务单的原材料库位和产成品库位解决,如把原材料库位设置为output,成品为input,并在产品类别和原材料类别设置相应的路由规则,这样发料给外协厂时为output到外协厂虚拟库位,并会触发补货规则到output,这样就不会直接库存满足生产单,而无法控制的情况,外协入库则是先到input,然后触发push规则,生成对应单据,解决外协单完工后无入库单的情况。
[/quote]
把原材料库位设置成output的话,那么生产库位该如何设置?如果生产库位设置为外协的虚拟库位时,还是没有解决确认后立即满足生产条件的问题啊。
[/quote]
[s]可参照两步销售出库的路由规则来设置
如果生产定单的库位改为为OUTPUT后,当生产订单确认后,生产投料为output到委外供应商的库位,此时output库位并没有物料存,这样生产订单处理等待物料状态。
只有当库存至OUTPUT库位的调拨完成后(调拨单通过PULL规则自动生成),生产订单才处于准备生产状态[/s]
[/quote]
如果工艺路线里设置的为虚拟库位,如你所说的,看来只能设置为物理库位了,不知道其它人还有 没有办法? -
[quote author=lihaihe link=topic=17097.msg30379#msg30379 date=1432184037]
[quote author=lihaihe link=topic=17097.msg30378#msg30378 date=1432182352]
[quote author=KevinKong link=topic=17097.msg30370#msg30370 date=1431947024]
[quote author=lihaihe link=topic=17097.msg30360#msg30360 date=1431867575]
第一个问题,可以通过改变生产任务单的原材料库位和产成品库位解决,如把原材料库位设置为output,成品为input,并在产品类别和原材料类别设置相应的路由规则,这样发料给外协厂时为output到外协厂虚拟库位,并会触发补货规则到output,这样就不会直接库存满足生产单,而无法控制的情况,外协入库则是先到input,然后触发push规则,生成对应单据,解决外协单完工后无入库单的情况。
[/quote]
把原材料库位设置成output的话,那么生产库位该如何设置?如果生产库位设置为外协的虚拟库位时,还是没有解决确认后立即满足生产条件的问题啊。
[/quote]
[s]可参照两步销售出库的路由规则来设置
如果生产定单的库位改为为OUTPUT后,当生产订单确认后,生产投料为output到委外供应商的库位,此时output库位并没有物料存,这样生产订单处理等待物料状态。
只有当库存至OUTPUT库位的调拨完成后(调拨单通过PULL规则自动生成),生产订单才处于准备生产状态[/s]
[/quote]
如果工艺路线里设置的为虚拟库位,如你所说的,看来只能设置为物理库位了,不知道其它人还有 没有办法?
[/quote]
办法倒是有,就是自己添加检验了,但总觉得不是最好的解决办法,感觉这是8.0引入stock.quant之后的库存机制问题~