Skip to main content
 首页 » 编程设计

python-2.7之如何获取产品可用数量(Odoo v8 和 v9)

2025年12月25日38xiaohuochai

我需要从 odoo 库存中获取可用数量的产品。

我有几个模型stock_quant、stock_move、stock_location。

我想要实现的是两件事:

  • 产品总可用数量
  • 基于位置的产品可用数量

  • 任何人都可以指导我吗?

    请您参考如下方法:

    库存相关字段在产品(功能字段)中定义,您可以直接从产品中获取所有仓库/位置或单个位置/仓库的库存。

    示例:

    所有仓库/地点

    product = self.env['product.product'].browse(PRODUCT_ID) 
    available_qty = product.qty_available 
    

    个别地点/仓库 (WAREHOUSE_ID/LOCATION_ID 应替换为实际 ID)
    product = self.env['product.product'].browse(PRODUCT_ID) 
    available_qty = product.with_context({'warehouse' : WAREHOUSE_ID}).qty_available 
     
    available_qty = product.with_context({'location' : LOCATION_ID}).qty_available 
    

    其他领域也有。
    Forecasted Stock => virtual_available 
    Incoming Stock => incoming 
    Outgoing Stock => outgoing 
    

    您可以以类似的方式访问所有这些字段。如果您不会在上下文中传递任何仓库/位置,那么它将一起返回所有仓库的库存。

    For more details you may refer product.py in stock module.



    解决方案:
    @api.onchange('product_id','source_location')  
    def product_qty_location_check(self):  
        if self.product_id and self.source_location:  
            product = self.product_id 
            available_qty = product.with_context({'location' : self.source_location.id}).qty_‌​available  
            print available_qty