第一种方案是
每次采购入库更新成本字段,更新库存字段值,方便是方便,怕的是只要一次单据出错了,库存数量也不准了
第二种方案是
每次采购入库只更新数量和单价,成本和库存是通过存储过程计算得出,一般库存数量为期初数量+入库数量-出库数量,成本也是这样,优点是比较准确,缺点是数据量大了,查询比较占资源你们的方案呢
每次采购入库更新成本字段,更新库存字段值,方便是方便,怕的是只要一次单据出错了,库存数量也不准了
第二种方案是
每次采购入库只更新数量和单价,成本和库存是通过存储过程计算得出,一般库存数量为期初数量+入库数量-出库数量,成本也是这样,优点是比较准确,缺点是数据量大了,查询比较占资源你们的方案呢
静态: 将库存做成一个表, 出入库是触发器自动更新库存表, 优点: 查询速度快, 方便清空库存, 删除出入单据不影响(有些公司怕查税)。 缺点:如果直接修改库存表就会不准, 需要解决多个客户同时更新问题。
动态:库存表做成视图, 动态统计出入仓数据, 优点: 库存准确
缺点:数据量大时速度较慢, 人为删除单据也会影响库存的准确性。楼主可以按实际要求来做。 我们ERP用的动态库存。
我认为用第二种方案,但是需要改一下:
1、其实核算成本,无非是核算销售成本,或者核算领单出库成本,核算出库单成本这比较容易,在录入出仓单时,其单价取最近一次进价就行了。如果核算销售成本时,则要在销售的明细表加上一个成本单价,专门写一下存储过程来核算销售成本单价
2、当数据里大时,查询是比较占资源的,那你就要进行sql语句的优化,另外就是用多的数据库帐套来实现也可以。
作为数量要稍微好处理一些;
而成本可能还会涉及到移动加权、当期加权之类的算法,即便有正向与逆向的流程也不好处理;
我们公司的ERP系统,也是大多数这类管理软件都会有的功能,就是月底统计算一次成本,并反写到相应的成本到出入库单据中去,然后结账不允许修改已计价的单据!
最好还是每月底进行一次月加权平均,加权后单据不能再改,这样的成本相比比较精确,进入下个月将上月的库存数量,成本和金额转入下月的期初
确定要考虑:正向与逆向的流程是必不可少的.
作为数量要稍微好处理一些;
而成本可能还会涉及到移动加权、当期加权之类的算法,即便有正向与逆向的流程也不好处理;
我们公司的ERP系统,也是大多数这类管理软件都会有的功能,就是月底统计算一次成本,并反写到相应的成本到出入库单据中去,然后结账不允许修改已计价的单据!