2016-06-30 6 views
1

現在、私はodoo8を使っています。私は新しいAPIで書かれた関数を持っています。私は古いapi関数を呼び出しています。古いapi関数は以下に与えられますodooの新しいapiメソッドから古いapiメソッドを呼び出す際にid引数を渡す方法

@api.v7 
    def calx_amount_line_tax(self, cr, uid, ids, context=None): 
     for order in self.pool('sale.order').browse(cr, uid, ids, context=context): 
      for line in order.order_line: 
       val = 0.0 
       line_obj = self.pool['sale.order.line'] 
       price = line_obj._calc_line_base_price(cr, uid, line, context=context) 
       qty = line_obj._calc_line_quantity(cr, uid, line, context=context) 
       for c in self.pool['account.tax'].compute_all(
         cr, uid, line.tax_id, price, qty, line.product_id, 
        line.order_id.partner_id)['taxes']: 
        val += c.get('amount', 0.0) 
     return val 

ここで私は古いapi関数を呼び出す際にidを渡すことができますか?

答えて

0

最後に長い検索の後、私は答えを見つけました。私がやった何 ... api.cr_uid_ids_context @

@api.onchange('scheme','product_id','product_uos_qty') 
@api.constrains('scheme','product_id','product_uos_qty') 
def change_sale_price_scheme(self): 
    if self.scheme: 
     self.foo() 


@api.cr_uid_ids_context 
def foo(self,cr,uid,ids,context=None): 
    get_product_wise_tax = self.pool.get('sale.order.line').calx_amount_line_tax(cr,uid,ids,context) 

@api.v7 
def calx_amount_line_tax(self, cr, uid, ids, context=None): 
    ......... 

:これは、パラメータとして は 'CR' を取る伝統的なスタイルの方法、 'UID'、 'IDS'、 'コンテキスト' を飾るだろう。このような方法:

ので、機能は自動的に、さらに知識のすべてのパラメータ

が参照とります:http://abhishek-jaiswal.github.io/blog/odoov8/2014/11/15/odoo-v8-decorator.html

関連する問題