Openerp覆盖product_id_change函数以进行销售订单

时间:2014-06-05 17:17:13

标签: override openerp onchange

我需要覆盖sale.order.line中定义的product_id_change函数,因此每次更新数量时都不会更改unit_price。

我知道我必须使用超级,但我不确定它是如何工作的。

有人可以帮忙吗?

谢谢。

1 个答案:

答案 0 :(得分:0)

这很简单,但你需要做一些事情(假设是OpenERP 7)

  1. 创建新模块。
  2. 创建一个继承osv.Model
  3. 的类
  4. 添加_inherit ='sale.order.line'
  5. 实施新的product_id_change方法。
  6. 安装你的模块,它应该可以工作。
  7. 典型的模式是调用super然后处理结果。

    class MyModel(osv.Model):
    
       _inherit = 'sale.order.line'
    
       def product_id_change(self, cr, uid, ids, ...):
          res = super(MyModel, self).product_id_change(cr, uid, ids...)
    
          # do stuff with res.
    
          return res
    

    在sale_margin.py文件的OpenERP sale_margin模块中有一个这样的例子。