Skip to main content
 首页 » 编程设计

python之Openerp : onChange event to create lines on account move

2025年05月04日10bonelee

我在日记帐分录(帐户移动表单)上有一个字段 amount,我需要定义一个 onChange 事件,它会在我填写金额后自动插入这些行。但我不确定如何。

请您参考如下方法:

昨天我不得不做一些与您的要求类似的事情。我在采购中有一个 salo order(m2o) 字段 ...on_change of sale_order 我必须填写采购订单行 ...看到希望它可以帮助你。

class purchase_order(osv.osv): 
    _inherit = 'purchase.order' 
 
    _columns = { 
        'sale_order':fields.many2one('sale.order','Sale Order'), 
        'purchase_type': 
            fields.selection([ 
                ('order','Purchase Order'), 
                ('job','Job Order') 
                ], 
            'Purchase Type', 
            required=True, 
            states={ 
                'confirmed':[('readonly',True)], 
                'approved':[('readonly',True)], 
                }, 
            select=True, 
            help="Define type of purchase order.", 
         ), 
     } 
 
def onchange_saleorder(self,cr,uid,ids,order,context=None): 
    res={} 
    lis=[] 
    sorder_id=self.pool.get('sale.order').browse(cr,uid,order) 
    for line in sorder_id.order_line: 
        print "uom",line.product_id.uom_id.id 
        res={'product_id':line.product_id.id, 
             'name':line.product_id.name, 
             'product_qty':1, 
             'product_uom':line.product_id.uom_id.id, 
             'price_unit':line.price_unit, 
             'date_planned':time.strftime('%Y-%m-%d'),} 
        lis.append(res) 
    print "list is .........",lis 
    res={'value':{'order_line':lis}} // here order_line is o2m field of purchase. 
    return res