先说结论
很多人以为“采购确认”之后,系统只是在做一件事:等收货、等开票。
但 Odoo 实际上是在同时维护三条链:
- 收货链:货有没有进仓
- 估值链:库存价值有没有被正确记录
- 账单链:供应商账单什么时候进会计
这三条链相关,但不是同一件事。
收货不等于开票
采购单确认后,最先变化的通常是需求和收货相关对象。
但是“货到了”并不自动等于“账单到了”。
Odoo 把库存动作和会计动作拆开,是为了让业务状态更准确:
- 你可以先收货,后开票
- 也可以先收到部分,后续再补单
- 账单是否进入会计,还要看采购控制和后续流程
所以不要把“采购单已确认”理解成“所有后续都已经自动完成”。
库存估值为什么单独存在
如果产品是可库存产品,收货不只是数量变化,还会牵涉价值变化。
但这并不意味着采购单本身就直接生成所有会计分录。
更准确地说:
- 收货负责物理数量
- 估值负责库存价值
- 账单负责供应商应付
这三者之间有关联,但每一层都有自己的时点和规则。
为什么 Vendor Bill 不是收货单的附件
账单是会计凭证,不是库存动作的简单副本。
因此你会看到:
- 收货完成了,不代表账单已经生成
- 账单生成了,也不代表库存已经完成入账
- 同一张采购单上,收货和账单的节奏可以不同
这也是采购实施里常见的误区:业务以为“收货=开票”,系统里其实不是。
调试时看什么
如果采购链看起来不对,建议按这个顺序查:
- 采购单确认后有没有真正进入后续流程
- 收货单有没有按预期生成和完成
- 采购行的数量和状态有没有同步
- 账单链是否走到了该走的阶段
- 是否存在需要手工补账或补收的异常路径
只看采购单头部状态,通常会漏掉中间那几层。
实战建议
- 不要把采购确认等同于收货完成
- 不要把收货完成等同于已开票
- 采购、库存和会计是三条协作链,不是一个开关
- 对业务解释时,最好画成三条平行链
- 调试时优先看“动作在哪一层发生”,不要只看最终状态
一句好记的话
采购确认后,Odoo 同时在跑收货、估值和账单三条链;它们互相关联,但各自独立。
理解这一点,很多采购流程误解都会少一半。
DISCUSSION
评论区