M 安仕达烘焙ERP系统架构能力 · 单据上下游行级流转
一行一行流转剩余量系统算不用重录第二遍

一张订单分三批发货,
剩下多少系统自己知道

生意上的单子很少一次走完:客户订了五项货品,今天只有三项能出;采购下了八十个料,供应商分两车送。这台系统让下游单直接从上游客单的明细行里勾,勾一行带一行,行与行各算各的剩余量。

界面实测:销售单的新增页有一个跨单引入的功能,弹窗里的勾选单位是明细行,确认时问的是"确认引入选中的几行明细";采购侧默认只把还有剩余的行勾上。

销售订单 → 销售单一张 5 行的订单,今天只出 3 行
按行勾选 · 按行算剩余整单不用重录,也没人抄错数量
  • 行 1吐司 100 · 本次 60剩 40 继续跟
  • 行 2可颂 80 · 本次 80本行已引完
  • 行 3生日蛋糕 10 · 本次 10本行已引完
  • 行 4月饼礼盒 200 · 未勾整行留着待出
本次引入3 行
需要重新录入的数量0
未发完的行2 行,仍在原单

数量为示意,用来说明按行流转的口径;真实剩余量由系统在引入时按行算好,不靠人记。

本页 解决的问题 机制 真实例子 适用场景 使用边界 对比 上手 常见问题 相关方向 全部机制
PAIN POINTS

连锁的账,最容易坏在"一张单没走完"

订单一次订、分几次发是常态。整单流转的系统在这种情况下只能靠人:抄一遍、记一笔、月底对不上再吵一架。

01

整单照抄,逼人造假

只能整单生成下游单的系统,遇到分批发货就得把订单改小再生成,或者干脆另开一张无源单,历史数量关系当场断掉。

这套做法:按行引入:勾其中几行、这行只带一部分数量,未勾的行原样留在上游,一张订单可以派生多张下游单。

02

剩余多少全靠人记

客户问"我还有多少没发",答案在仓管的脑子里;人一休假,这单就说不清。

这套做法:剩余量由系统在引入时逐行算好,采购侧甚至默认只把还有剩余的行勾上,人只做取舍不做计算。

03

同一批货录两遍

订单录一次、出货单再录一次,规格、单位、单价、批号全靠人复制,错一个数字后面所有的账都要解释。

这套做法:下游单直接取上游明细行,价格、单位、批号一并带过来;上游单号也留在这张单上,事后能倒回去。

HOW IT WORKS

一条链路上,系统管的是这四件事

能引谁、能引哪几行、引完剩多少、这张单现在算什么状态。

在哪一层怎么落说明与界面上看得到的
哪张单能引哪张单为下游单指定可引入的上游单据类型实测已经打通的三条:销售订单→销售单、销售单→销售退货单、采购订单→进货单。上游类型是配在下游单上的,不是让制单人自己找
先定对象,再引明细先选客户(采购侧选供应商),再点引入没选客户就点会当场拦下来,提示要先选择客户——这一条挡住了"把张总的货并进李总的单"这种错
按行勾选在列出的可引入明细里逐行打勾,页脚实时显示已选几行一行一条明细,勾与不勾是行级别的自由:五行的订单可以只勾三行,也可以只勾某一行的一部分数量
剩余量按行算不必人工比对,系统给出每行还剩多少实测销售侧默认全勾、采购侧默认只勾剩余量大于零的行,两种默认都说明系统是按行知道剩余的
上下游留痕引入完成后,这张单记着自己的上游单号列表与新增页都有"原单据号"这一栏,事后要查这批货出自哪张订单,不用翻聊天记录
整张单的状态一张单在草稿、审批中、已生效、已关闭之间走实测这四种状态都在用;未生效的单不会把数量真正压到库存与账上,所以"开了但还没确认"和"已经算数了"分得清
占用与可用分得开现存量、采购在途、已被销售订单占用的量、可用数量各是一栏这一组是行级流转能落地的底气:订单占用先记下来,仓管看的是可用数量,不会出现两个店抢同一批库存

要说白的边界:这条链路只服务"有上游的单"。临时改价、补录历史、赠品这类调整走的是各自的单据,不去硬凑一条不存在的上游——凑出来的关联,月底一对就散。

WORKED EXAMPLE

一张 5 行订单,分两批出完的完整过程

下面写的是"第二张销售单"引入时的界面逻辑,数量为示意。

明细行货品订单量首批已出本次可引本次引入
1吐司100604040
2可颂80800不勾
3生日蛋糕10100不勾
4月饼礼盒2000200120
5饮料50500不勾
—本张销售单合计——240160 件 / 2 行

行级流转带来的管控粒度,正好是烘焙连锁要的那一档

门店订货按车次、工厂出货按炉次,一次订货分两次配货是日常。整单流转的系统必须让人改上游单据来迁就流程,改一次,前面所有核对都作废;按行流转则让上游单不动,下游按实际情况派,两张单各自留痕。

  • 第 4 行是本张单的关键:一箱 200 盒先出 120 盒,剩下的 80 盒不复制、不改订单,它继续留在原订单里等下一次派单。
  • 第 2、3、5 行已经出完,弹窗里仍会列出来(默认全勾时它们已经被处理过),人做的是核对而不是重算。
  • 引入只带数量、价格与批号这些信息;库存真正扣减、金额真正入账,是在这张销售单生效之后。所以"引入了但还没生效"的单,不会把账抢先变动。
USE CASES

这三种走单方式最吃这套

一单多批、多供一单、退货按批,都是整单流转处理不了的形状。

CASE 01

大客户团购分批交付

企业中秋礼盒一次订两百份,按客户要求的三个时点分三次送。每一次开一张销售单,从同一张订单里勾当次要出的行与量。

CASE 02

原料分批到货

面粉订了 40 袋,供应商先送 25 袋。进货单只引入 25 袋,剩下的量仍在采购订单上,到期没到货一眼能看出来。

CASE 03

部分退货

客户退的只是其中一个规格、几盒蛋糕。退货单从原销售单按行引入,退的是当初卖的那一行,价格与批号跟着走,不会出现退货单价与售价打架。

BOUNDARIES

三条实话

行级流转解决的是"数量怎么派",不解决"该不该派"。

  • 能流转的前提是这一对单据被配上关系。实测目前打通的是销售订单→销售单、销售单→销售退货单、采购订单→进货单三条;其余单据之间各有自己的状态推进方式,不在同一个引入组件里,不能凭想象推广成"什么单都能上下游"。
  • 先选客户再引入,是硬约束不是提醒。跨客户混引在这一步就被拦下,好处是不会串单,代价是不能"一张出货单顺便给两个客户"。
  • 剩余量由系统算,但仍要人复核一次。特别是采购:默认只勾还有剩余的行,如果上游订单本身填错,引入会把错继续往下带。
  • 这一条链上没有"报价单→订单"。询价与报价在自家流程里怎么落,请用自己的实际走法去对照,不要照抄别家的单据层级。
SIDE BY SIDE

按行流转,与整单照抄

同一家既做门店配送又做团购批发的连锁,两种做法下的日常差别。

比什么单据上下游行级流转整单生成 + 手工补录
分批次出货同一订单可派多张单,每次勾当次的行改小原单再生成,或另开无源单
剩余未发系统按行知道,弹窗列给你看记在仓管的本子上
录入次数一单一次,其余靠引入订单、出货单各录一遍
价格与批号一致性跟着上游行走重录时容易打错
事后追责上下游单号互指,能倒查两张无源单之间说不清
GET STARTED

四步把流转关系用起来

先跑通一条链路,再考虑第二条;一上来配全公司,一定卡在自己没想到的细节上。

挑一条最疼的链路

十有八九是"订单分几次出"。就在销售订单→销售单这一条上先做,别贪多。

把订单录规范

行、单位、数量、批号一次录准。引入是按行取数的,上游录三遍改三遍,下游跟着抖三遍。

出货时按行勾

开销售单,先选客户,再打开引入,只勾本次要出的行,需要拆量的那一行改成当次实出数。

周会核对一次未引完的行

把还剩量大的行拿出来问一句:是货没到、客户改期,还是忘了出。三种原因各自的处理完全不同。

FAQ

关于单据行级流转,常被问到的六件事

能,这是行级流转的主要用途。当次出多少就在下游单上改多少,剩余量继续留在原订单行上,不需要把原订单改小。

不能,也不会让你这么干:引入前必须先定客户,一张出货单对应一个客户。要分给两家,就按两家分别开单,各自从各自的订单派。

行的剩余量归零即不再出现在"还有剩余"的默认勾选里;整张订单要不要关闭由你走状态这一步,系统不会替你决定这单结没结。

以本次实际成交价为准录入下游单——这正好是有用的信息:差异说明订单价与交付价不一致,财务与业务对不上时,这一处就是要谈的点。

实测退货单的上游是销售单,正常退货走引入;原单信息(价格、批号)跟着过来,避免退价与售价打架。找不到原单的例外情况,建议按公司规定单独审批,不要随意开无源退货。

不是同一套。它们各有自己的状态与生效流程,本轮没有取到它们使用同一个引入组件的证据,所以不能给你保证;具体请在实机上按你的走法确认。

先把销售订单→销售单这一条跑顺

挑一个正在分批交付的客户跑一周,看剩余量是不是每一次都对得上;对得上,再往外扩链路。