分析维度

Odoo 采购分析分布为什么会“跟着账单走”:PO 行到 Vendor Bill 的 analytic distribution 继承边界

从 purchase.order.line 的 _compute_analytic_distribution 和会计分布模型出发,解释采购分析维度怎样从订单行流向后续账单。

会计 采购
进阶 开发者 1 分钟阅读
0 评论 0 点赞 0 收藏 9 阅读

先说结论

Odoo 采购里的分析分布,不是你在订单上填了就“固定不变”。

它更像一条可继承、可覆盖、可继续向下游传递的链:

  • 采购行先根据产品、分类、供应商和公司推导分析分布
  • 这份分布会参与后续会计单据的分配逻辑
  • 如果后续账单需要继承它,就不是简单复制字段,而是遵循分布模型

所以分析维度不是“挂在采购单上看看的标签”,它是会计链路的一部分。


_compute_analytic_distribution 在做什么

源码里,采购行会通过 _compute_analytic_distribution() 去找分析分布模型。

它会把这些信息送进去:

  • 产品
  • 产品分类
  • 供应商
  • 供应商类别
  • 公司

然后由分布模型决定最终的 analytic_distribution

这说明采购分析不是单一字段来源,而是多个业务维度共同决定的结果。


为什么它会“跟着账单走”

采购行上的分析维度,常常会继续影响后续账单的会计分配。

原因很简单:

  • 采购单是业务起点
  • Vendor Bill 是会计落点
  • 分析维度需要从起点传到落点,才不会丢掉成本归属

因此这条链的关键,不是“采购有没有这个字段”,而是账单能不能拿到正确的分布语义


为什么这不是普通字段复制

普通字段复制只管值。

但 analytic distribution 不是单值,它是一个分布语义:

  • 可能对应多个分析账户
  • 可能带比例
  • 可能依赖上下文推导

所以从 PO 行到账单,最重要的是保持语义连续性,而不是简单拷贝文本。


调试时最容易看错的地方

很多人会只检查采购单行上的分布字段,忽略了:

  • 分布是怎么计算出来的
  • 账单侧有没有继承这份分布
  • 后续改单时,是否需要重新推导或重分配

如果账单分析错了,不一定是账单层的问题,源头可能早在采购行计算阶段。


实战建议

  • 不要把 analytic distribution 当作展示字段
  • 先看它是怎么从产品、分类、供应商和公司计算出来的
  • 如果账单分析错了,先回头检查采购行逻辑
  • 改供应商或产品后,注意分布是否需要重新计算
  • 对财务同学解释时,把它说成“成本归属的传递链”更容易理解

一句好记的话

采购分析分布不是一张贴纸,而是一条会从 PO 行传到 Vendor Bill 的成本归属链。

理解这一点,采购到会计的分析维度就不会再显得神秘。

DISCUSSION

评论区

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