Я хочу вызвать свою функцию для правила зарплаты, но получаю сообщение об ошибке типа "Неправильный код 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