11.0版本新增
需求背景:用户在完成一张单据(如销售订单)的录入后,若需基于此单据继续开展下一环节的业务(如根据订单生成出库单),目前需要通过“单据调阅”功能手动查找并引用原单,操作路径较长。为简化此场景下的软件操作流程,提升工作效率,现新增“单据推送”功能。
功能截图:
功能描述:
源单点击推送按钮,推送生成新单据。
- 功能核心与触发
- 核心操作:在已保存(订单类)或已过账(过账类)的单据详情的表头区域,点击“推送”按钮,从弹出的可选单据列表中选择一个下游单据类型,系统将自动创建一个包含原单相关数据的新单据草稿页面。
- 按钮状态:“推送”按钮仅在单据保存后重新打开(仅针对订单类单据)或过账后(其他单据)才会显示。在新增单据的编辑过程中不显示。
- 权限控制:操作员是否能看到“推送”按钮及能否成功推送,取决于其是否拥有目标下游单据的“录入”权限情况。若无任何下游单据的录入权限,按钮置灰;若仅有部分下游单据权限,则列表中有权限的单据可选,无权限的置灰。
- 推送前提与单据关系
- 状态前提:
- 订单类单据:必须“已审核”通过。其中,要推送生成影响库存的物流单据(如出库单),订单状态需为“未引用”或“已引用未完成”;要推送生成钱流单据(如收款单),订单状态为“未引用”、“已引用未完成”或“已完成”均可。
- 过账类单据:必须“已过账”。
- 推送生成的新单据为未保存状态,用户可进行修改确认。原单据在推送后不会关闭。
- 单据对应关系:系统预定义了固定的推送关系。例如:
- 销售订单 可推送至:销售出库单、收款单、采购订单等。
- 销售出库单 可推送至:销售退货单、销售发票、收款单等。
- 采购订单 可推送至:采购入库单、付款单等。
(详细对应表见需求文档“单据推送对应关系”部分)。
- 数据传递与填充规则
- 总体原则:遵循“单据引用”的核心逻辑。若源单与目标单的字段名完全一致,则自动填充。
- 表头/表尾字段:
- 共有字段:如分支机构、经手人、仓库等,直接推送。
- 下游独有字段:如“出库期限”,留空待填。
- 单据备注:自动添加固定格式的说明,如“销售订单推送生单: [原单据编号]”。
- 自定义字段:仅当上下游单据中该字段的系统固定名称和显示名称完全一致时,才会推送。
- 表体明细行:
- 通用过滤:通常只推送“未中止”且“剩余可操作数量>0”的明细行。例如,从销售订单推出库单,只推送“订单数量 - 已发货数量 > 0”的商品行。
- 数量与金额计算:推送的数量通常为“剩余可操作数量”(如可发货量、可退货量),并据此反算金额、税额等。单价等信息一般继承原单。
- 状态回写:成功推送并过账下游单据后,会更新原单的关联状态字段(如“已发货数量”、“已结算金额”)。
- 关键业务规则与校验
- 防重复与超额控制:
- 物流单据(出入库、退货):允许基于同一原单多次推送,但累计数量超过原单总数后,推送数量为0。
- 发票单据:允许重复推送开票,但会累计“已开票数量”,下次推送时只计算未开票的剩余部分。
- 收付款单:不允许超额结算。仅当原单存在“未结算金额”时才允许推送。若原单已结算完毕,点击推送时会提示“此单据已结算”。 (注意此处不受系统配置相关勾选控制)
- 特殊场景处理:
- 收付款结算方式:如果系统启用了“按商品结算”,在通过推送生成收付款单后,若修改了结算金额,必须手动选择需结算的具体商品行,否则无法过账。
问题1、生成的收款单按什么信息结算?
RE:按商品结算,

