出库时的 stock.move.line 是如何确定的
用通俗但不失源码细节的方式,讲清楚 Odoo 出库时 stock.move.line 的生成逻辑:从 stock.move、stock.quant、移除策略到 lot/serial 拆行。
CATEGORY FOCUS
聚合 Odoo 开发基础、源码理解、ORM、模型、视图、安全与扩展实践。
TOPIC PICKS
用通俗但不失源码细节的方式,讲清楚 Odoo 出库时 stock.move.line 的生成逻辑:从 stock.move、stock.quant、移除策略到 lot/serial 拆行。
很多人看到 Reverse Entry,会以为它只是“做一张金额相反的凭证”。其实从 wizard 到 _reverse_moves,Odoo 还要处理原凭证关联、自动过账、是否一起核销,以及 modify 模式下的新草稿。本文把冲销链路讲透。
很多人把 tax lock date 理解成“到了那天之前的单据都不能动”,但 Odoo 的实现更细:它不仅区分 fiscal lock 与 tax lock,还会根据行是否影响税报去决定拦截力度。本文把这层边界讲清楚。
很多人做坏账时第一反应是把发票标成已付清,或者直接把 residual 改掉。但从 Odoo 的会计设计看,坏账核销本质上是新增一条对手分录并参与核销,而不是篡改原始应收事实。
很多采购开票问题,根本不是 Vendor Bill 出错,而是 Bill Control Policy 没理解。本文把 ordered quantities 和 received quantities 对状态、数量和异常的影响讲透。
采购退货不是做一张 return picking 就结束了。本文把 Odoo 里采购退货、已收数量、待开票数量和供应商退款之间的真实联动讲清楚。
很多人以为 Odoo 盘点就是把现存数量改掉,但源码里库存调整其实是通过 quant 差异生成正式库存 move。本文把它讲清楚。