库存规则 stock.rule 的入口方法是
self.env['procurement.group'].run(procurements)
它会判断当前数据库 stock.rule 支持的方法,例如
_run_pull()
_run_pull_push()
_run_push()
_run_manufacture()
_run_buy()
这些 action 的方法签名都一样, 例如
@api.model
def _run_manufacture(self, procurements):
procurements 是传递进去的参数,最基本的数据包括
name, product_id, qty, product_uom, location_id, company_id, date_planned, warehouse_id
procurements 都是使用 _prepare_procurement_values() 生成的
运行 stock rule 的时机
- 库存移动确认 action_confirm()
- 订货点运行 _procure_orderpoint_confirm()
- 销售订单创建、修改,以及确认
- mps 运行补给动作