出库时的 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 拆行。
可以顺着继续读的相邻方向
先看 stock.rule._run_buy 如何把补货需求变成 RFQ,再看 purchase_stock 怎样把已确认采购单接回 incoming picking。
从 purchase.order.button_approve、_create_or_update_picking 到 _prepare_qty_received 和 receipt_status,讲清采购、收货、退货与发票之间的连接。
销售单确认只做一件事:把订单推进到可履约状态。真正的履约分成补货/出库和开票两条链,分别由 sale_stock 和开票逻辑接管。
从 purchase.order.button_confirm 和 purchase_stock._create_picking 看 Odoo 如何把采购确认变成收货单、stock.move 和后续预留。
很多人排库存补货问题时,只看到界面上一句“找不到规则”或“无法补货”,于是沿着单条错误去追。可在 stock_rule.py 里,run() 的职责其实是把一批 procurement 统一分流、统一执行、统一收集失败项,最后再决定抛给用户什么信息。本文结合 stock_rule.py 与 stock_orderpoint.py 把这条链路讲透。
很多人理解 Odoo 落地成本,只停留在库存估值增加、会计分录生成这一步。但在项目化物流里,源码还会把 landed cost 沿着 picking 对应的 `project_id` 回写到分析分摊。本文把 `stock.landed.cost`、`stock.valuation.adjustment.lines` 与项目分析账户的接力链路讲透。