跳到主要内容

表单中进销存如何实现分批出入库

1. 使用场景

本篇文档介绍在做企业进销存的时候,结合关联表单多选子表单填充子表单的功能实现采购分批入库,销售分批出库的场景。

2. 实现功能

2.1. 页面字段配置

2.1.1. 产品信息(普通表单)

记录产品信息,供【库存表】、【采购订单】、【销售订单】联动使用。

2.1.1.1. 主要字段
  • 产品编号(流水号)
  • 产品名称(单行文本)
  • 物品分类(下拉单选)

2.1.2. 库存表(普通表单)

记录产品的库存信息。

2.1.2.1. 主要字段
  • 产品编号(单行文本)
  • 产品名称(单行文本)
  • 产品分类(单行文本)
  • 库存数(数值)

2.1.3. 采购订单(流程表单)

当需要进行采购入库时,可先创建采购订单,供【采购入库】联动使用。

2.1.3.1. 主要字段
  • 采购单号(流水号)
  • 采购日期(日期组件,快捷配置 - 今天)
  • 采购人(成员,快捷配置 - 当前登录人)
  • 未入库总数(数值,公式编辑 - SUM(采购明细.总价))

  • 采购明细(子表单)
    • 产品编号(单行文本)
    • 产品名称(关联表单,关联【产品信息】)
  • 采购数量(数值)
  • 分类(单行文本)
  • 未入库数量(数值,公式编辑)

2.1.4. 采购入库(流程表单)

采购入库,可选择已经创建好的【采购订单】,并且可以选择【采购订单】下的采购明细,流程结束后将采购明细数据更新至【库存表】中。

  • 入库单号(流水号)
  • 采购订单(关联表单,关联【采购订单】)

  • 入库人(成员组件,快捷配置 - 当前登录人)
  • 入库日期(日期组件,快捷配置 - 今天)
  • 入库明细(子表单)
    • 产品名称(关联表单,关联【采购订单】中的「采购明细」)
    • 本次入库数量(数值)

// 子组件自定义校验函数
export function validateRuleForOutbound(value) {
const { values } = this.item;
const inventoryCount = values.未出库数量唯一标识 || 0; // 获取未入库数量
return value <= inventoryCount;
}
function validateRule(value) {
return this.validateRuleForOutbound(value);
}
    • 产品编号(单行文本)
    • 采购数量(数值)
    • 未入库数量(数值)
  • 采购订单号(单行文本)

2.1.5. 销售订单(流程表单)

当需要进行销售出库时,可先创建销售订单,供【销售出库】联动使用。

  • 销售订单号(流水号)
  • 操作人(成员,快捷配置 - 当前登录人)
  • 销售日期(日期,快捷配置 - 今天)
  • 订单明细(子表单)
    • 产品名称(关联表单,关联【产品信息】)

    • 销售数量(数值)
    • 产品编号(单行文本)
    • 产品分类(单行文本)
  • 未出库总数(数值,公式编辑)

2.1.6. 销售出库(流程表单)

销售出库,可选择已经创建好的【销售订单】,并且可以选择【销售订单】下的订单明细,流程结束后将销售明细数据更新至【库存表】中。

  • 出库单号(流水号)
  • 出库人(成员,快捷配置 - 当前登录人)

  • 出库日期(日期,快捷配置 - 今天 )

  • 销售订单(关联表单,关联【销售订单】)

  • 订单明细(子表单)
    • 产品名称(关联表单,关联【销售订单】中「订单明细」)

    • 本次出库数量(数值,添加校验规则)

//封装自定义校验
export function validateRuleForOutbound(value) {
const { values } = this.item;
const inventoryCount = values.库存数唯一标识 || 0; // 获取库存数
return value <= inventoryCount;
}
function validateRule(value) {
return this.validateRuleForOutbound(value);
}
    • 产品编号(单行文本)
    • 订单数量(数值)
    • 库存数(数值,数据联动【库存表】)
    • 未出库数量(数值)
    • 产品分类(单行文本)
  • 本次出库总数量(数值,公式编辑)

  • 销售订单号(单行文本)

2.2. 页面主要功能配置

2.2.1. 采购入库

2.2.1.1. 流程发起扣减采购订单数量

配置【采购入库】创建成功的集成自动化,自动扣减【采购订单】中未入库总数,这样可避免运行中的同一订单的物品重复入库

「未入库总数」公式如下图:

「未入库数量」公式配置如图:

2.2.1.2. 流程删除/撤销/拒绝/终止,归还订单数量

配置【采购入库】删除/撤销/拒绝/终止的集成自动化,流程异常结束自动归还【采购订单】中未入库总数。

更新【采购订单】未入库总数。

「未入库总数」公式配置如图:

「未入库数量」公式配置如图:

2.2.1.3. 流程审批通过,累加库存

配置【采购入库】审批同意的集成自动化,自动累加【库存表】中库存

「库存数」公式配置如图:

2.2.2. 销售出库

2.2.2.1. 流程发起, 扣减销售订单数量

配置【销售出库】创建成功的集成自动化,自动扣减【销售订单】中未出库总数,这样可避免运行中的同一订单的物品重复出库。

「未出库总数」公式配置如图:

更新【销售订单】明细中数据;

「未出库数量」公式配置如图:

2.2.2.2. 流程删除/撤销/拒绝/终止,归还订单数量

配置【销售出库】删除/撤销/拒绝/终止的集成自动化,流程异常结束自动归还【销售订单】中未出库总数。

「未出库总数」公式配置如图:

更新销售订单明细数据(归还未出库数量)

「未出库数量」公式配置如图:

2.2.2.3. 审批通过,扣减库存数量

配置【销售出库】审批同意的集成自动化,自动扣减【库存表】库存。

3. 实现效果

3.1. 采购入库

【采购订单】从【产品信息】选择物品数据,录入采购明细

【采购入库】提交入库明细,根据「采购订单」分批选择未入库数量>0的物品,并校验本次入库数量

也可点击「选择表单」,批量多选物品明细,自动填充入库明细

审批结束后,自动更新【采购订单】明细中物品的未入库数量,并累加【库存表】数量

累加【库存表】

再次提交【采购入库】只能选择未入库数量>0的物品

3.2. 销售出库

【销售订单】从【产品信息】选择物品,录入订单明细。

【销售出库】提交出库明细,根据「销售订单」分批选择未出库数量 > 0的物品,并校验本次出库数量,不得超出库存数。

【销售出库】审批同意,自动扣减库存数。

4. 在线试玩


Copyright © 2024钉钉(中国)信息技术有限公司和/或其关联公司浙ICP备18037475号-4