在特定 res.partner 位置查找产品数量 - Odoo v8

Look for product quantities on a specific res.partner location - Odoo v8

我正在尝试在指定的合作伙伴位置寻找 qty_available 产品,我有三个 Many2one 字段到 res.partner

    printer_book_block = fields.Many2one('res.partner', string="Printer Book Block")
    printer_binding = fields.Many2one('res.partner', string="Printer Binding")
    printer_edging = fields.Many2one('res.partner', string="Printer Edging")

所以,根据这个模型,我应该根据选择的 res.partner Many2one 寻找这些数量:

    order_lines = fields.One2many('bsi.print.order.lines', 'print_order', string="Order lines")

    @api.multi
    @api.constrains('order_lines', 'order_lines.isbn')
    def check_quantity(self):
        location = self.printer_book_block.property_stock_supplier.id
        for rec in self:
            if rec.order_lines:
                for line in rec.order_lines:
                    if line.qty > line.isbn.qty_available in location:
                        rec.write({'state': 'awaitingraw'})
                    else:
                        rec.write({'state': 'work_in_progress',},)

此方法应该在 printer_book_block.property_stock_supplier 上查找 qty_available,但它似乎并没有真正查找该特定位置。

字段 property_stock_supplierres.partner 模型的一部分,它指定每个合作伙伴作为供应商在系统中的位置。

此外,如何指定是否已选择一个 res.partner 来专门查找它?

有什么想法吗?

PS = isbnMany2oneproduct.product.

您可以告诉 odoo 计算您可以在上下文中指定位置或仓库:

  if line.qty > line.isbn.with_context({
                     'location' : location, # here id must be an integer not object
                     # 'warehouse': warehouse_id, # integer value 
                }).qty_available >= 0: