首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >得到一个错误,因为“为薪水规则定义了错误的python代码”odoo 11

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

Stack Overflow用户
提问于 2018-08-17 12:01:08
回答 1查看 976关注 0票数 3

调用代码中定义的函数时,我从ODOO 11工资单中调用函数时出现错误。错误消息是:“为工资规则加班工资(OT)定义了错误的python代码。”

我写的代码如下-

代码语言:javascript
复制
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

加班工资的工资规则内代码如下:

代码语言:javascript
复制
result = payslip.env['hr.payslip'].get_overtime_salary()

我不确定这个函数是否被调用过。我尝试在我的函数中添加一些消息,以了解函数代码是否有错误。但是,这些消息都没有出现,这表明该函数从未被调用过,错误是从工资规则本身抛出的。

是不是环境变量在Odoo 11中不可用?还是别的什么?

提前感谢大家的帮助。

EN

回答 1

Stack Overflow用户

发布于 2018-11-29 22:20:13

解决方案是使用可变合同而不是工资单。

代码语言:javascript
复制
result = contract.env['hr.payslip'].get_overtime_salary()
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/51888221

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档