本文概述了获取某时点库存的方法。标准系统不直接通过SQL查询,而是通过代码汇总计算结存与库存单据数据。推荐调用标准接口获取库存,也可通过SQL根据上期关账余额和期间内库存更新单据数据计算得出。文中还提及了库存余额表的重要性。
截止某个时间的即时库存获取方法
【问题描述】
经常有二开人员希望提供 获取某个时点的库存Sql,标准系统获取某个时点的结存库存是没有直接拼sql获取,而是使用代码方式获取结存+各个库存单据数据汇总计算而来。
【逻辑说明】
某个时点的库存结存 = 上期关账余额 + 期内的收入单据 - 期内的发出单据
标准系统提供接口:供获取某个时点的结存库存。(Kingdee.K3.SCM.App.Core.StockBillDataService.GetStockData)
【实现方法】
推荐实现方法,思路如下:
调用标准接口:Kingdee.K3.SCM.App.Core.StockBillDataService.GetStockData
标准系统的 盘点、校对、关账、及相关报表 均调用此接口实现获取某个时点的库存,可以反编译对应插件参考构建参数调用实现。按截止日期库存盘点方案审核生成账存数据的代码Kingdee.K3.SCM.App.Stock.ServicePlugIn.StockCountSchemeService.Audit.GetStockBillData
如若要以SQL形式实现,思路如下:
根据所需的截止日期,判断对应最近的上一期关账时点,获取对应上期的关账余额数据(余额表:T_STK_INVBAL)
根据上一期关账时点到当前的截止日期,获取期间内所有库存更新单据数据(可以通过库存更新配置表:T_BAS_UPDATESTOCKSETTING知悉库存更新单据有哪些)。
根据 上期的关账余额,和期内的所有所发单据数据计算 截止的库存:某个时点的库存结存 = 上期关账余额 + 期内的收入单据 - 期内的发出单据。
【延伸阅读】
推荐阅读