很多审批系统的问题在于:审批通过以后,后续采购发生了什么,审批人再也看不见。Odoo 企业版专门补了这一刀。
这篇文章主要参考:
enterprise/approvals_purchase/models/purchase_order.pyenterprise/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
评论区