[quote author=digitalsatori link=topic=10066.msg21809#msg21809 date=1377742995]
@bluethink 解决方法很简单啊 ;D 。 如果这符合贵公司的要求也未尝不可。 但是,要知道这种成本的计算是很不准确的,对于一个产品有多个BOM的情况,你无法选择参与成本运算的BOM,你也无法选择或指定BOM property,希望你可以继续改进。
另外, 你的成本运算只考虑材料成本而没有考虑制造费用,理论上也是不合理的。 这里有一个模块: [检测到链接无效,已移除]
他定义了一个cost_price的函数字段,如果产品有BOM,则会计算组成该产品的物料的Standard Price之和再加上根据routing计算出的制造费用。
[b]注:[/b]如果将这个模块中计算子产品的standar_price改成新定义的cost_price, 就可以循环递归运算所有的下级bom的物料成本和相应的制造费用了。
[/quote]
1、目前我公司暂时没有用到多属性,而且老板关心的是物料成本,所以这样的改动目前能够满足要求。
2、对于制造费用分摊,有两种方式,一种是按照工时分摊,一种是按照产品成本(含新产品试制成本)分摊,我理解openerp支持的是前一种。而且对于第一种来说,由于_bom_explode2对于routing和workcenter信息是有返回的,那么report/price.py还是会做这部分的计算的。(不知理解是否正确)
3、product_cost_incl_bom这个模块我用过,是有一定的改善,但还是存在有的半成品没有展开计算以及数量不对的情况(当设置参数为小数点的时,比如将一个外购的大尺寸PVC板切割加工成小尺寸的PVC板,就需要设置类似A<-0.2B之类的BOM定义。这个时候这个模块的计算会出现错误,可以设置3级以上BOM试验一下,一定会出问题)