百木园-与人分享,
就是让自己快乐。

加权平均成本计算中,“双O”问题的解决方案

加权平均或移动加权平均,是一种常见的动态成本算法。用每次采购入库成本和在库成本加权平均,更新为新成本。加权平均成本计算公式:

(入库产品的成本+在库产品的成本)/(入库产品数量+在库产品数量)

在此算法框架下,有一些特例。比如:当库存=0时,产品成本价是否也应该=0 ?

情况1

如果产品成本价=0,出现了无采购价格的入库时(比如退货入库),会造成入库成本计算=0的问题。

不管是基于算法还是基于常识,我们都很容易发现这个结论并不妥当。但是加权平均和先进先出不同,并不依赖完整的历史出入库流水去获取退货产品的成本价。

所以在这种情况下(库存=0,产品单价不能等于0,而是应该保持加权计算为0之前的非零数值),这样即可合理解决非采购入库的入库成本计算问题。

情况2

按照1的推理分析,库存=0时,成本价不应等于0。这时出现另一个特例,采购入库供应商赠送的产品(采购单价=0),这时成本应该等于多少?这种情况就是“双O”问题——加权平均产品,在库存为0时,入库0成本的产品。

注意,这种情况下没有完美解。两种算法:

  • 产品成本加权平均计算=0,本次入库产生的加权平均成本正确。但如果这时出现退货入库(无成本价来源的入库),则会造成退货入库产品成本也=0(错误)。
  • 产品成本保持最后的非0值,和本次入库的加权平均计算冲突(错误)。
  • 能不能找出一个彻底的方法解决呢?当然可以,只要在加权平均算法基础上增加对历史出入库流水的数据调用,永远避免出现无成本来源的入库,即可解决这个问题。但是这样一来,加权平均算法的逻辑便捷就会消失。

    根据各种情况出现的概率,把错误出现概率最低的情况排除掉,然后选定方案。

    虽然不完美,但是经过这种分析和比较,咱们距离完美又接近了一步。

    一如微积分中引入的极限概念(如果我们想把全体实数视为一条连续的线,这些数字都必须是实数。尽管它们可能只是现实的近似值,但却行之有效),引入一个假定条件,明确问题的边界,把出错概率降至最低,也是业务逻辑中常用的分析方法。

    最后的结论,加权平均计算为0的情况,分析:在库成本=0(库存=0)且入库成本=0(采购单价/成本=0),双0逻辑。

    处理方法,目前分为两类:

  • 采购入库、直接入库时,直接更新产品表成本字段=0
  • 其他类型:装配入库、sku转化入库、订单退货入库等,不更新产品表成本字段(保持原值)
  • 给作者点赞,鼓励TA抓紧创作!


    来源:http://www.woshipm.com/pd/5366728.html
    本站部分图文来源于网络,如有侵权请联系删除。

    未经允许不得转载:百木园 » 加权平均成本计算中,“双O”问题的解决方案

    相关推荐

    • 暂无文章