工资单上工资规则的调用功能

时间:2019-01-11 16:42:50

标签: python odoo

我想为工资规则调用我的函数,但是却收到诸如“为工资规则定义的错误python代码”之类的错误

我在“ hr.payslip”模型中的python代码是:

@api.multi
def _get_project_split(self, project):
    for line in self.all_project_hours:
        if line.project_id.name == project:
            project_split = line.project_split
    return project_split

例如,我的工资规则python代码是:

result = payslip.env['hr.payslip']._get_project_split('API')

“ API”是我的项目名称。

感谢您的帮助

---编辑---

我使用Odoo 12,并从odoo控制台尝试运行,当出于故障排除目的而运行时,它可以正常工作:

payslip = env['hr.payslip'].search([('id', '=', '6')])
payslip._get_project_split('API')

输出:83.3333333333333

这也可以从控制台进行:

payslip.pool.get("hr.payslip")._get_project_split(payslip, 'API')

输出:83.3333333333333

但是当我将其中之一放在我的工资规则中

1:

split = payslip.pool.get("hr.payslip")._get_project_split(payslip, 'API')
result = contract.wage * split / 100

2:

split = payslip._get_project_split('API')
result = contract.wage * split / 100

我对这条工资规则有误。我怀疑这是一个错误。

我在“ hr.payslip”模型中的代码就像

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


    @api.multi
    def _get_project_split(self, project):
        for line in self.all_project_hours:
            if line.project_id.name == project:
                project_split = line.project_split
        return project_split

1 个答案:

答案 0 :(得分:0)

您可以使用function custom_head_cleanup(){ if( ! is_admin() ){ wp_deregister_script( 'jquery' ); } } add_action( 'init', 'custom_head_cleanup' ); 来获取pool并调用hr.paysplip方法。

_get_project_split

def _get_project_split(self, cr, uid, payslip, project): # Your code # return a number 中的python code应该是:

salary rule