出库时的 stock.move.line 是如何确定的
用通俗但不失源码细节的方式,讲清楚 Odoo 出库时 stock.move.line 的生成逻辑:从 stock.move、stock.quant、移除策略到 lot/serial 拆行。
TOPIC PICKS
用通俗但不失源码细节的方式,讲清楚 Odoo 出库时 stock.move.line 的生成逻辑:从 stock.move、stock.quant、移除策略到 lot/serial 拆行。
可以顺着继续读的相邻方向
很多人以为 FIFO 成本就是“当前库存数量 × 最近单价”。但 stock_account 的实现真正依赖的是尚未耗尽的入库 move 栈:_run_fifo_get_stack 先找剩余层,_get_remaining_moves 计算 remaining_qty,出库再沿栈取值。
很多人以为 Odoo 的 Inventory at Date 是把当前库存数字往回算一遍。源码里更准确的逻辑是:给库存计算注入一个 to_date 历史上下文,让 qty_available 等字段以“截止某时点”的视角重算。本文把这个历史视角讲透。
很多人把 Odoo 的预留方法当成一个不起眼的操作类型配置,但它实际决定了系统何时尝试锁货、何时只是等待、何时要靠计划日期倒推 reservation_date。本文把这层“时机语义”讲透。
很多人以为 putaway 只是“给产品配一个默认目的库位”。但 Odoo 真正在算的是:产品是谁、包裹类型是什么、子库位当前已经塞了多少、这次是散货还是整包。本文把上架策略的真实决策链讲透。
收货价和账单价不一样时,Odoo 不是只改一个单价字段。本文把标准成本、价差科目、Anglo-Saxon 分录和库存价值边界讲清楚。
很多人能理解出入库数量,却总看不懂 Odoo 的库存价值剩余是怎么追的。本文把 Stock Valuation Layer、remaining_qty 和 remaining_value 讲清楚。