供应商交期

Odoo 供应商交期为什么不只是 delay:Vendor Lead Time、Days to Purchase 与 Order Deadline 是怎么叠起来的

很多人知道 supplier delay,却没看懂 Order Deadline 和 Days to Purchase。本文把 Odoo 采购补货里真正影响下单时点的时间叠加链讲透。

Odoo 开发 库存 采购
进阶 开发者 1 分钟阅读
0 评论 0 点赞 0 收藏 6 阅读

先说结论

很多人提到 Odoo 采购交期,第一反应就是:

  • 供应商档案里有个 delay

这当然对,但只对了一半。

在真正的采购补货链里,系统更常在做的是:

  1. 先确定 希望什么时候收到货
  2. 再叠加 供应商 lead time
  3. 再叠加 公司级 Days to Purchase
  4. 必要时把下单日继续往前推

所以实战里更应该记住的是:

供应商交期不是一个孤立数字,而是 Odoo 用来推导“最晚什么时候必须下单”的时间组件。


为什么这篇和“lead times and scheduled dates”不是同一题

站里已有一篇文章讲整个 lead time 思维:

  • 日期不是单点
  • 系统在整条链上倒推

这篇再往采购深一层,专门聚焦:

  • supplier.delay
  • company.days_to_purchase
  • date_planned
  • order_date_planned
  • Order Deadline

也就是把“时间倒推”收缩到 采购补货真正何时触发、何时必须下单 这个细分题上。


_get_lead_days() 才是采购时间叠加的关键入口

purchase_stock/models/stock_rule.py 里,_get_lead_days() 很值钱。

它在 buy rule 下会做几件事:

  • 如果没找到 vendor,直接给一个很大的 no-vendor delay
  • 找到 vendor 后,把 seller.delay 加进 total_delay
  • 同时把公司配置 days_to_purchase 也加进 total_delay
  • 还会生成可解释的 delay description,比如:
  • Vendor Lead Time
  • Order Deadline
  • Days to Purchase

这说明 Odoo 的设计不是“只取一个供应商交期字段”,而是:

把采购前置准备时间和供应商交货时间一起建模。


Days to Purchase 为什么容易被低估

因为它不像供应商 delay 那么直观。

很多人会记得:

  • 供应商说 5 天到货

但忽略了公司内部往往还需要:

  • 询价
  • 审批
  • 下单准备
  • 采购员缓冲

days_to_purchase 就是在表达这段内部前置时间。

所以如果你只配 vendor delay,不配 days to purchase,系统算出来的时间常常会偏乐观。


补货生成 PO 时,系统还会继续反推 date_order

stock_rule.py 里,创建采购行时还有一段很关键:

  • 先拿 date_planned
  • 再减去供应商 delay
  • 得到 order_date_planned
  • 如果这个日期比当前 po.date_order 更早,就把采购单日期往前挪

这段逻辑非常实战。

它说明系统不是只想告诉你“预计收货日”,而是更在意:

为了赶上那个收货日,这张采购单最迟该在什么时候成立。

这就是 Order Deadline 的真实味道。


为什么同样是采购,有时交期看起来“被系统提前了”

因为用户脑中常常盯的是收货目标日。

而补货引擎盯的是:

  • 为了满足目标日
  • 供应商要提前几天
  • 公司内部还要再提前几天

于是你会看到:

  • 采购日期被系统算得更早
  • 不是 bug,而是 deadline 逻辑把你从“想收货那天”往前推回去了

源码还埋了两个很有意思的信号

1. 没供应商时,系统会加一个巨大延迟

这不是数学游戏,而是在明确表达:

  • 没 vendor,采购补货在时间上几乎不可行

2. Vendor Delay Report 是单独存在的

purchase_stock 里还带了 vendor_delay_report

这说明 Odoo 并不把交期只当配置项,而是把它视为可被统计、追踪、评价的运营指标。


一句话记忆法

在 Odoo 采购补货里,Vendor Lead Time 解决“供应商多久送到”,Days to Purchase 解决“公司要提前多久动手”,两者叠起来才会形成真正的 Order Deadline。

DISCUSSION

评论区

想参与讨论?先 登录 再发表评论。
还没有评论,你可以成为第一个留言的人。