企业 库存 / 波次条码

Odoo 企业版批量拣货为什么要先挑单再开扫:allowed_pickings、group_lines_by_product 与 batch client action 链路

从 stock_barcode_picking_batch 讲清新建波次后为什么先经历挑单确认,再把批次、拣货类型和 grouped lines 一起送进条码界面。

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

波次条码不是“把几张 picking 丢进一个大页面就开始扫”。stock_barcode_picking_batch 的主链路很清楚:先新建空批次,再挑允许进入的 picking,确认后才把批次数据包装成条码端能执行的初始状态。

open_new_batch_picking() 创建的是一个空 stock.picking.batch,它的价值在于先拿到批次容器,而不是立刻决定拣哪些单。随后 action_get_new_batch_status() / action_confirm_batch_picking() 会围绕 allowed_picking_ids 做选择和确认,这一步保证条码端拿到的是一批状态合格、拣货类型相容的单据。

真正送进移动端的是 _get_stock_barcode_data()。这里系统不仅会带上批次本身,还会把 users、partners、picking types、source/destination locations 等关联记录一并打包。条码端因此不是临时再去后端零散抓数据,而是拿到一份准备好的执行快照。

stock.picking.type._get_barcode_config() 里的 group_lines_by_product 又决定了界面是不是按产品聚行。这个配置虽然出现在拣货类型上,但它直接改变条码端看到的执行颗粒度:是按单据行拣,还是按产品与库位合并后拣。

于是跨模块链路就出来了:批次模型负责组织 picking 集合,拣货类型负责注入执行规则,条码客户端负责消费这份批次快照。没有前两段,第三段就不是高效执行,而是现场补课。

如果波次条码表现异常,最先该查的不是扫码枪,而是 allowed_picking_ids 为什么不对、批次确认是否成功、以及 picking type 的 group_lines_by_product 是否把现场希望看到的粒度改掉了。

DISCUSSION

评论区

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