Odoo 10:如何在薪资规则上调用函数?

时间:2018-01-03 23:56:18

标签: python-2.7 odoo-10 odoo

我需要从名为payslip的对象salaryfunction创建一个调用函数:

class HrNicPaySlip(models.Model):
    _inherit = 'hr.payslip'

    @api.multi
    def salaryfunction(self):
       return 100.00

我需要从薪资规则中调用此函数,如下所示:

result = payslip.salaryfunction()

但是在计算工资羊时我得到以下错误:

  

为薪资规则

定义了错误的python代码

在日志中错误是:

  

ValueError ::"' float'对象不可调用"在评估你的结果= payslip.salaryfunction()'

你可以帮忙吗?

我搜索了一些类似的问题,但没有成功

更多信息:

我想调用我的模型中定义的函数,该函数继承自hr.payslip

class MyModelTest(models.Model):
  _inherit = 'hr.payslip'

  @api.multi
  def salaryfunction(self):
    return 100.00

在我的薪水规则中,我写了amount_python_compute:

result = payslip.salaryfunction()

2 个答案:

答案 0 :(得分:1)

在阅读完薪资单模型的所有代码后,我终于解决了我的问题。

薪资规则中使用的薪资单对象有一个env变量引用,所以调用其他模型类的函数的正确方法如下(根据我的例子):

result = payslip.env['hr.payslip'].salaryfunction()

我希望这适用于另一个家伙

答案 1 :(得分:0)

如果您在模型中(' hr.payslip'),您只需要以这种方式调用您的函数self.salaryfunction(),如果您在其他模型中,则以这种方式调用它{{1} 1}},我希望这可以帮到你。