背景
很多企业在储存商品时,可能涉及存放多个仓库,且需要管理不同仓库的库存数量。此时多仓存储方案可以实现:
- 可显示同一商品在不同仓库的库存数
- 采购入库时可选择入库哪个仓库
- 销售发货时选择从哪个仓库进行发货
方案
实现思路
进销存标准模板中,不支持多仓存储(或根据任何属性等维度区分库存),所以商品信息和库存情况由一张表单进行记录,即“库存表”。为了实现多仓存储(或任何根据不同因素需要区分库存的情况),我们需要将商品信息和库存信息拆分,用两张表单来分别记录。
表结构
这里只展示关键和需要调整的表单、字段。从上到下大致为系统调整的实操顺序,具体将在下一模块说明
调整步骤
调整库存模块
- 复制库存表,将原库存表修改为“商品资料表”,复制的新表格命名为“库存表”,可修改表格图标和颜色来更好区分
- 删除商品资料表的关联仓库、期初库存、库存下限、当前库存数量
- 进入库存表,保留仓库字段,删除库存表的其他商品信息和价格相关字段,删除采购在途数量字段
- 增加关联字段“商品资料”,关联“商品资料表”。并勾选该字段关联附加,商品名称和规格型号
调整采购模块
- 在到货明细中增加关联字段“到货仓库”,关联仓库信息;在到货单的子表标签页,勾选显示刚增加的“到货仓库”字段
- 在采购退货明细中增加关联字段“退货仓库”,关联库存表,并勾选级联筛选“退货产品”;在采购退货单的子表标签页,勾选显示刚增加的“到货仓库”字段
调整销售模块
- 在发货明细中增加关联字段“发货仓库”,关联库存表,勾选级联筛选“发货产品”;在发货单的子表标签页,勾选显示刚增加的“发货仓库”字段
- 在销售退货明细中增加关联字段“退货入库仓库”,关联仓库信息;在退货单的子表标签页,勾选显示刚增加的“退货入库仓库”字段
调整出入库模块
- 在入库明细增加两个关联字段“入库仓库”、“入库库存【自动抓取】”(可自由命名),分别关联“仓库信息表”和“库存表”;在入库单的子表标签页,勾选显示刚增加的“入库仓库”、“入库库存【自动抓取】”字段
- 在出库明细中增加关联字段“出库库存”,关联库存表,并勾选级联赛选“出库产品”;在出库单的子表标签页,勾选显示刚增加的“出库库存”字段
调整采购模块触发器
- 调整“采购到货单”中用于生成入库单和入库明细的触发器,在执行操作2创建入库明细中,在“入库仓库”字段的创建内容中选择“查找到的数据.到货仓库”
- 调整“采购退货单”中用于生成出库单和出库明细的触发器,在执行操作2创建出库明细中,在“出库库存”字段的创建内容中选择“查找到的数据.退货仓库”
调整销售模块触发器
- 调整“发货单”中用于生成出库单和出库明细的触发器,在执行操作2创建出库明细中,在“出库库存”字段的创建内容中选择“查找到的数据.发货仓库”
- 调整“退货单”中用于生成入库单和入库明细的触发器,在执行操作2创建入库明细中,在“入库仓库”字段的创建内容中选择“查找到的数据.退货入库仓库”
调整出入库模块触发器
- 逻辑说明:入库明细的触发器逻辑是,在创建数据时,根据入库明细中的入库产品和入库仓库字段,判断是否有该产品在该仓库的库存表数据,如果有则抓取数据id写入入库明细的“入库库存【自动抓取】”字段,如没有,则先创建库存表数据,再抓取。当有了这个抓取的关联字段建立起入库明细与库存表的关联关系后,就可以在库存表通过计算字段核算库存
操作说明:在“入库明细表”增加新触发器,命名为“创建:1.生成库存 2.抓取库存”(命名随意不影响功能)。
- a. 触发方式设置为创建数据后,触发条件不写
- b. 执行操作1勾选“修改已有数据,找不到则创建新数据”,目标表格选择“库存表”
- c. 修改哪些数据书写条件如图,记得选择的两项对应是目标表格和当前数据,不是当前表格!
- d. 要修改字段不填写,不用动
- e. 如找不到已有数据,则按照如下配置创建新数据中,按图填写。跟上方一样,也是选择当前数据的字段
- f. 添加第二个执行操作,点击添加,选择“修改已有数据”,目标表格为“入库明细”,修改哪些数据选择“当前数据”
- g. 修改字段选择“入库库存【自动抓取】”
- h. 修改的内容需要用到item函数,抓取库存表中,商品资料字段与当前入库明细的入库产品一样且仓库与当前入库明细的入库仓库一样的库存数据,写入入库明细中。
调整库存盘点单(如无需盘库,可直接删除库存盘点表)
- 删除“盘点仓库”、“盘点库存”字段
- 增加关联字段“盘点商品”,关联商品资料表
- 增加关联字段“盘点库存”,关联库存表,并勾选级联筛选,筛选盘点商品
调整库存表
- 编辑计算字段“当前库存数量”,计算逻辑为期初库存数量+入库数量-出库数量+盘库盈亏数量
调整商品资料表
- 增加计算字段“各仓库存总数”,计算逻辑为统计库存表数据求和
功能测试
步骤:
- 在采购订单中点击采购到货,并完成到货流程,检查是否会自动生成库存表数据
- 在销售订单中点击发货,并完成发货流程,检查库存表库存数是否会扣减
- 其他模块测试原理一样
总结
该方案实现逻辑,不仅可实现多仓存储,还可以实现其他根据不同因素需要区分库存的需求。如有问题,请联系您的客户成功经理