2017-01-09 10 views
0

私は wizard orderline継承product_id_changeと追加の新しい引数odoo 8

lot = fields.Many2one('stock.production.lot','lot') 

と私は継承されたメソッドに引数としてこのフィールドを渡したい(のonchangeの新しいフィールドの多くを追加し、sale.order.lineに取り組んでいます数量)

def product_id_change(self, cr, uid, ids, pricelist, product, qty=0,                 
         uom=False, qty_uos=0, uos=False, name='', partner_id=False,             
         lang=False, update_tax=True, date_order=False, packaging=False,            
         fiscal_position=False, flag=False, lot=False,context=None):             

    res = super(order_line, self).product_id_change(cr, uid, ids,                 
                pricelist, product,                
                qty,uom, qty_uos,                
                uos, name, partner_id,               
                lang, update_tax,                
                date_order, packaging,               
                fiscal_position,                 
                flag, context=context)               


    if product:                              
     print "----------------------------------------------"                  
     print lot                             
     print "----------------------------------------------"                 
     # res['value']['changement_prix'] = lot.change_prix                   
     # res['value']['old_price'] = res['value']['price_unit']                  
     # res['value']['price_unit'] = res['value']['old_price'] + lot.change_prix             
    return res 

しかし、私は私のプリントで得たすべてがたくさん ためFalseですので、この関数に引数として多くを渡すか疑問イム のthnx

答えて

0

このように新しい引数を関数に渡すことはできません。

オブジェクトの呼び出しスーパーメソッドは、それもスーパーメソッドで問題を作成します。だから、どちらかあなたはあなたが多くを通過し得る

文脈でそう

<field name="product_id" 
context="{'partner_id':parent.partner_id, 
'quantity':product_uom_qty, 
'pricelist':parent.pricelist_id, 
'uom':product_uom, 'company_id': parent.company_id, 
'lot': lot}" <====== 
groups="base.group_user" 
on_change="product_id_change(parent.pricelist_id, product_id, product_uom_qty, False, product_uos_qty, False, name, parent.partner_id, False, True, parent.date_order, False, parent.fiscal_position, False, context)"/> 

のように、XML側のコンテキストで多くのことを渡すことができます。

lot = context.get('lot') 

あなたはコンテキストから取得してコードを実行します。

そうしないと、これはあなたを助けるのonchange

希望のarguementsのためのXML側に新しいモジュール 変化のonchangeの全機能を上書きする必要があります。

+0

のthnxを参照して、後でそれを取り戻すイムエラーを得ていないが、 よりも、私は、ウィザードの組版でオーダーラインを使用していますので、=なし はそれではない?かもしれ? –

0

よく私はコンテクストで多くを得ることができませんでした。 したがって、私はproduct.product内の目に見えないフィールドmany2oneを作ってそこに保存しました。 私の印刷ショーをたくさん,,答えは私の物 のthnx

関連する問題