企业 质检生成

Odoo 企业版库存质检为什么常在录数量时突然冒出来:move line 建检逻辑、数量触发点与 lot 上下文

quality_control 不是等你点“做质检”才开始。stock.move.line.create/write() 会在数量落下时按 picking type、产品和分类匹配 quality point,并把 move_line_id、lot_name、picking_id 一起写进质检记录。

企业 库存
进阶 开发者 1 分钟阅读
0 评论 0 点赞 0 收藏 5 阅读

很多仓库用户会问:我只是录了数量,为什么系统突然多出几条质检?答案在 stock.move.line,不在质检按钮本身。

这篇文章主要参考:

  • enterprise/quality_control/models/stock_move_line.py
  • enterprise/quality_control/models/quality.py

一、企业版把“数量出现”当成质检候选时刻

stock.move.line.create() 里,记录创建完就会调用 _filter_move_lines_applicable_for_quality_check()._create_check()。默认过滤条件很简单:quantity != 0。写操作也一样,只要改动里带了 quantity,且当前 move line 还没被拣、也没有已有检查,就会尝试建检。

二、quality point 匹配并不是只看产品

_create_check() 先通过 quality.point._get_domain(..., measure_on='move_line') 拿到候选点,再做三层归并:明确绑定具体产品、通过产品分类命中的规则,以及没限定产品/分类但限定作业类型的“全产品规则”。所以现实中看到“这条货为什么也出了质检”,很多时候不是误触发,而是被分类级或全局级质检点覆盖到了。

三、生成的质检记录为什么和 lot 关系这么紧

_get_check_values() 在创建时会直接写入 product_idpicking_idmove_line_idlot_namecompany_id。后续 quality.check 又会通过 move_line_id 计算 lot、数量与抽检字段。库存质检不是挂在“商品概念”上,而是挂在一次具体数量登记事实上。

四、结论

企业版库存质检的设计思路很清楚:不是等人“想起来要检”,而是在库存 move line 真正带上数量的那一刻,把质检义务自动绑定上去。

DISCUSSION

评论区

想参与讨论?先 登录 再发表评论。
还没有评论,你可以成为第一个留言的人。