假设A产品的当前的库存数量为1,成本单价为10,库存金额为10;用户甲进入系统开了一张销售单(单号XS20070112001),明细如下:
A产品  数量1 成本单价10 成本总额10
但用户甲未对该销售单审核记帐(也就是未正式出库)。用户乙几乎同时进入系统开了一张采购入库单(单号CG20070112001),明细如下:
A产品  数量1 成本单价20 成本总额20
用户乙马上对该采购入库单进行了审核记帐,这时候根据移动平均加权法,
A产品的库存数量为2,成本单价为15,库存金额为30。问:这时候用户甲对单号XS20071112001的销售单进行审核记帐,这时候该张单椐A产品的销售成本单价是否应该改为15(因为该张单据的审核记帐在采购入库单CG20070112001之后),我问了我们的会计和财务都说应该改为15来处理,因为在理论上可能在用户甲开A产品的销售单(单号XS20070112001)的时候,其他可能有N多用户同时在开A产品的采购入库单且比用户甲的销售单都要先审核记帐(这时候可能A产品的成本单价会发生多次改变),怎样才能保证在用户甲对销售单(单号XS20070112001)审核记帐时候读取到最新的成本单价?在数据库设计(采购入库单和销售单是不同的表)和程序代码编写上要注意些什么?各位有经验的大侠给点思路啊?

解决方案 »

  1.   

    可以考虑在审核记帐的时候,把平均单价lock住.
      

  2.   

    你这个问题让你头痛的地方应该就是永续盘存制和实地盘存制的差别具体你可以:google 永续盘存制下成本核算
      

  3.   

    A单(含a商品)录入完成,侍审核
    B单(不含a商品)录入完成,侍审核
    C单(含a商品)录入完成,已审核D单据录入,并审核(此单会影响a商品的成本)。在D单审核的同时,查找
    条件: if(未审核 && 含a商品)查找到A单符合条件,把A单标记为(成本已改变),在审核的时候,明确的给出提示,就可以了。
      

  4.   

    可以参看:http://blog.csdn.net/fstao/archive/2008/02/14/2095329.aspx