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

时间:2017-11-19 01:02:52

标签: python openerp odoo-8

我正在尝试将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',},)

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

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

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

有什么想法吗?

PS = isbnMany2oneproduct.product

1 个答案:

答案 0 :(得分:1)

您可以告诉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: