出库时的 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 拆行。
可以顺着继续读的相邻方向
很多人知道 Odoo 有 package,却总把 package_id 和 result_package_id 看成“同一个包的两个名字”。其实一个描述来源容器,一个描述结果容器,中间还夹着 package level 与整包操作语义。本文把装箱链路真正的时间顺序讲透。
很多人以为改 move line 只是改界面上的一行明细,但只要那行已经预留过库存,Odoo 实际上会先释放旧预留,再按新特征重抢 quant,甚至影响后续链路。本文把已预留 move line 的改写语义和排错顺序讲清楚。
通过 stock_accountant 说明库存会计不是只改两个科目,而是把 valuation_method、inventory_period、stock_journal 与 valued locations 报表入口绑成同一条关账链。
围绕 stock_barcode_quality_control 说明条码端为什么要把 move line 先标记 picked,再允许按扫码上下文触发质量检查。
很多人看到 Odoo 某个 orderpoint 已经接近缺货,却没收到自己预期的补货建议,就以为系统算错了。其实 stock.warehouse.orderpoint 里有 horizon days、deadline date、procurement date 和 unwanted_replenish 几层边界。本文把这套“为什么系统暂时不建议补”的机制讲透。
很多人以为 Odoo 撤销盘点就是把 quant 再改回原来的数量。但官方源码里,action_revert_inventory 走的是生成反向 inventory move 再 done 的路线。这说明系统要保留的是一条可审计的库存事实,而不是覆盖历史。本文把这层设计讲透。