2016-09-26 173 views
1

我有一個父模型和子模型總結使用onchange事件在樹狀線的值,這裏是代碼:如何odoo 9

class parent_model(osv.osv): 
    _name = 'parent_model' 
    _columns = { 
     'line_ids'  : fields.one2many('child_model', 'line_id', 'Line ID', ondelete='cascade'), 
     'description' : fields.text('Description', required=True), 
     'grand_total' : fields.float('Grand Total'), 
    } 

class child_model(osv.osv): 
    _name = 'child_model' 
    _columns = { 
     'line_id'  : fields.many2one('parent_model', string='Line ID', required=True), 
     'item'   : fields.char('Item', required=True), 
     'amount'  : fields.float('Amount', required=True), 
     'qty'   : fields.integer('Qty', required=True), 
     'subtotal'  : fields.float('Total', readonly=True), 
    } 

    def get_subtotal(self, cr, uid, ids, num1, num2, context=None): 
     res = {} 
     if num1 and num2: 
      res['subtotal'] = num1 * num2 
     return {'value': res} 

在child_model我成功地乘以「量」和「數量」在事件的onchange get_subtotal,這裏是XML:

<tree > 
    <field name="item" /> 
    <field name="amount" on_change="get_subtotal(amount, qty)" /> 
    <field name="qty" on_change="get_subtotal(amount, qty)" /> 
    <field name="subtotal" /> 
</tree> 

我的問題是如何計算(和)小計在child_model和使用onchange事件的值存儲到grand_total領域parent_model。 需要幫助,謝謝

回答

1

1st:將所有內容移動到新的API。

添加一個onchange 來鉤住line_ids父模型,如: @api.onchange('line_ids') def _onchange_line_ids(self):