Вызов функции для правила заработной платы в Payroll - PullRequest
0 голосов
/ 11 января 2019

Я хочу вызвать свою функцию для правила зарплаты, но получаю сообщение об ошибке типа "Неправильный код Python, определенный для правила зарплаты"

Мой код Python в модели '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

И мой код Python правила зарплаты, например:

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

«API» - это название моего проекта.

Любая помощь приветствуется

--- EDIT ---

Я использую 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 голосов
/ 14 января 2019

Вы можете использовать pool, чтобы получить hr.paysplip и вызвать _get_project_split метод.

    def _get_project_split(self, cr, uid, payslip, project):
        # Your code
        # return a number

И python code из salary rule должно быть:

payslip.pool.get("hr.payslip")._get_project_split(payslip.cr, payslip.uid, payslip,'API')
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...