企业 采购追踪

Odoo 企业版采购审批与 RFQ 状态为什么能互相看见:采购单状态变更写回审批 chatter 的追踪机制

purchase.order.write() 在状态变化时会反查关联的 approval.product.line,把 RFQ 的旧状态、新状态和受影响商品汇总回审批请求 chatter,让审批链路不再只停留在“已创建采购单”。

企业 采购
进阶 开发者 1 分钟阅读
0 评论 0 点赞 0 收藏 5 阅读

很多审批系统的问题在于:审批通过以后,后续采购发生了什么,审批人再也看不见。Odoo 企业版专门补了这一刀。

这篇文章主要参考:

  • enterprise/approvals_purchase/models/purchase_order.py
  • enterprise/approvals_purchase/models/approval_request.py

一、企业版不满足于“审批创建了采购单”

approvals_purchase 不只是把审批请求链接到采购单列表,它还在 purchase.order.write() 里监听 state 变化。只要采购单状态真的发生变化,系统就会找到所有关联的 approval.product.line,按审批请求、采购单双层分组,生成状态变化消息,再回写到对应审批请求的 chatter。

二、为什么这个设计特别重要

同一张 RFQ 可能承载多个审批来源。源码用嵌套分组先按审批请求分,再按采购单分,因此一张 RFQ 即便承载多个审批,状态消息也能准确回到各自请求里。审批请求不再是一次性动作,而是采购执行的上游观察点。

三、消息里到底写了什么

_create_state_change_msg() 不只写“状态变了”,而是同时写入 RFQ 名称、旧状态标签与新状态标签,以及当前审批请求涉及的产品与数量摘要。真正有用的不是知道采购单号,而是知道这次状态变化和我这张审批请求里的哪些商品有关。

四、结论

企业版采购审批真正高级的地方,不在生成 RFQ,而在生成以后还能持续把采购状态折返给审批世界。这样审批才不是一张静态表单,而是完整采购旅程的上游镜像。

DISCUSSION

评论区

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