得到一个错误“为薪水规则定义了错误的python代码”odoo 11

问题描述 投票:2回答:1

我在调用我的代码中定义的函数时从ODOO 11 Payslip调用函数时出错。错误说,“为薪资规则加班费(OT)定义了错误的python代码。”

我写的代码如下 -

class SalaryRuleFunctions(models.Model):

    _inherit = 'hr.payslip'

    @api.multi
    def get_overtime_salary(self):

        emp_id = self.employee_id
        dt_from = self.date_from
        dt_to = self.date_to
        emp_rec = self.env['x_attendance_summary'].search([('employee_id', '=', emp_id), ('start_date', '=', dt_from), ('end_date', '=', dt_to)])[0]

        g_sal = (self.contract_id.x_ctc_gross / emp_rec.max_days)
        o_day = emp_rec.x_overtime_days_normal

        result = g_sal * o_day
        return result

加班工资规则内的守则如下 -

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

我不确定是否曾调用该函数。我尝试在我的函数中输入一些消息来知道函数代码是否有错误。但是,这些消息都没有显示出来,表明该函数从未被调用过,并且该错误是从工资规则本身引发的。

是否在Odoo 11中没有env变量?或者是其他东西?

在此先感谢您的帮助。

python odoo rules
1个回答
0
投票

解决方案是使用可变合约而不是薪资单。

result = contract.env['hr.payslip'].get_overtime_salary()
© www.soinside.com 2019 - 2024. All rights reserved.