Odoo 物料到底在哪道工序消耗:BOM Line 绑定 Operation、副产品回填与工单领料边界讲透
Odoo 不是所有原料都在整张 MO 上一起消耗。BOM line 和 by-product 可以绑定到具体 operation,系统会把 move 挂到对应 work order。本文把这层设计讲清楚。
TOPIC PICKS
Odoo 不是所有原料都在整张 MO 上一起消耗。BOM line 和 by-product 可以绑定到具体 operation,系统会把 move 挂到对应 work order。本文把这层设计讲清楚。
可以顺着继续读的相邻方向
很多团队看到序列号产品的制造单,既能做多数量,又总被要求逐件生成序列号。本文结合 mrp.production 源码,讲清 qty_producing、lot_producing_ids、自动生成序列号和完工校验之间的关系。
很多人把销售驱动制造理解成“销售单确认以后就建 manufacturing order”;但标准 Odoo 真正重视的是把 sale_line_id、截止日期、仓库、路线和变体上下文沿着 procurement 一路传下去,直到 MO 和 stock move 都还能回指销售行,kit 场景还会额外补 bom_line_id。本文把这条可追踪链讲透。
从 mrp.production._get_autoprint_done_report_actions、_autoprint_generated_lot、_autoprint_mass_generated_lots 到 action_open_label_layout / action_open_label_type,理解 Odoo 制造标签并不是单一按钮,而是按触发时机、打印对象和格式能力拆成几条独立链路。
结合 test_multicompany.py 与 stock_rule.py 看 Odoo 多公司制造的真实边界:产品、BOM、lot、route、warehouse 与 kit 识别都不是简单共享,而是按公司上下文和 company-specific 配置细粒度隔离。
mrp_mps 不只是算一个建议数量。它先结合规则提前期算 procurement_date,再用 to_launch / to_relaunch / to_correct / launched 和 forced_replenish / to_replenish 判断哪个时段该立刻动作。
quality_mrp 把质检嵌进制造主链路:pre_button_mark_done() 会在完工前检查 quality_state,MO 拆回单后又会对原料和成品 move 重新生成质检,取消时则清掉未完成检查。