我正在尝试将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_supplier
是res.partner
模型的一部分,它指定每个合作伙伴在系统上作为供应商的位置。
另外,如何指定是否已选择一个res.partner
来专门查找它?
有什么想法吗?
PS = isbn
是Many2one
到product.product
。
答案 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: