Odoo 10:如何根据薪水规则调用函数?
Odoo 10 : How to make a call to a function on a salary rule?
我需要从对象 payslip
调用一个名为 salaryfunction
:
的函数
class HrNicPaySlip(models.Model):
_inherit = 'hr.payslip'
@api.multi
def salaryfunction(self):
return 100.00
我需要从工资规则中调用这个函数,像这样:
result = payslip.salaryfunction()
但是我在计算pay sheep的时候出现如下错误:
Wrong python code defined for salary rule
日志中的错误是:
ValueError: : "'float' object is not callable" while evaluating u'result = 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()
如果你在你的模型中('hr.payslip')你只需要以这种方式调用你的函数self.salaryfunction()
如果你在其他模型中以这种方式调用它self.env['hr.payslip'].salaryfunction()
,希望对你有所帮助
在阅读了工资单模型的所有代码后,我终于解决了我的问题。
工资规则中使用的工资单对象有一个环境变量引用,因此调用其他模型函数的正确方法class如下(根据我的示例):
result = payslip.env['hr.payslip'].salaryfunction()
我希望这对另一个人有用
调用函数 salaryfunction()
对 payslip.salaryfunction()
不起作用,因为以前在声明局部变量字典时,其中 'payslip': Payslips (employee.id, self, self.env)
是一个特殊对象,它不允许访问方法那个对象。
我建议您在 class hr.payslip
的方法 _get_base_local_dict
中创建一个新的局部变量 'self': self
,这样您就可以在工资规则中调用该方法,例如此 self.salaryfunction()
是 salaryfunction()
class 'hr.payslip'
的一种方法。
我需要从对象 payslip
调用一个名为 salaryfunction
:
class HrNicPaySlip(models.Model):
_inherit = 'hr.payslip'
@api.multi
def salaryfunction(self):
return 100.00
我需要从工资规则中调用这个函数,像这样:
result = payslip.salaryfunction()
但是我在计算pay sheep的时候出现如下错误:
Wrong python code defined for salary rule
日志中的错误是:
ValueError: : "'float' object is not callable" while evaluating u'result = 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()
如果你在你的模型中('hr.payslip')你只需要以这种方式调用你的函数self.salaryfunction()
如果你在其他模型中以这种方式调用它self.env['hr.payslip'].salaryfunction()
,希望对你有所帮助
在阅读了工资单模型的所有代码后,我终于解决了我的问题。
工资规则中使用的工资单对象有一个环境变量引用,因此调用其他模型函数的正确方法class如下(根据我的示例):
result = payslip.env['hr.payslip'].salaryfunction()
我希望这对另一个人有用
调用函数 salaryfunction()
对 payslip.salaryfunction()
不起作用,因为以前在声明局部变量字典时,其中 'payslip': Payslips (employee.id, self, self.env)
是一个特殊对象,它不允许访问方法那个对象。
我建议您在 class hr.payslip
的方法 _get_base_local_dict
中创建一个新的局部变量 'self': self
,这样您就可以在工资规则中调用该方法,例如此 self.salaryfunction()
是 salaryfunction()
class 'hr.payslip'
的一种方法。