出库时的 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 Transfer、退货单、Repair Order 绑定、维修部件 stock.move、完工落库存,到返还客户的标准边界与二开设计,讲清 Odoo 维修场景里“客户发回待维修产品”到底是怎么流转的。
很多开发者知道 @api.depends,却低估了 @api.depends_context 的分量。它不是给代码加点语义说明,而是直接决定字段缓存怎样按上下文分桶、何时必须重算,以及为什么同一条记录会在不同语言、公司或用户下读出不同结果。
很多人一看到 Odoo 里出现负库存,就直觉觉得数据坏了。更准确的理解是:系统在用 negative quant 显性表达“这笔出入库的时间顺序还没补齐”。本文把负库存的生成、对冲与修复逻辑讲透。
看懂 ir.ui.view 如何把继承链拼成最终 arch,为什么 XPath 找不到、position 失效,往往不是 Odoo 随机坏了。
从官方源码讲清 Odoo 打开向导或新建表单时,默认值为何会来自 context、ir.default、field.default,active_model/active_id/active_ids 又是怎样参与初始化的。
从 ir.ui.view 的 inherit_id、mode、_compute_invalid_locators 和 _check_xml 讲清楚,为什么一个 xpath 写错会让整张视图校验失败。