2017-11-19 16 views
1
私は指定されたパートナーの場所に製品の qty_availableを探すためにしようとしている

、私はres.partnerに3つのMany2oneフィールド、ルック - OdooのV8

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を探す必要しかし、それは実際にその特定の場所を探すのではないようです。

フィールドproperty_stock_supplierは、res.partnerモデルの一部で、すべてのパートナーのシステム上のサプライヤとしての位置を指定します。

res.partnerが具体的に表示されるように選択されている場合、どうすれば指定できますか?

アイデア?

PS = isbnは、Many2one~product.productです。

答えて

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: 
+0

非常にありがとうございました! :) – NeoVe

関連する問題