我有两种型号: 第一个(‘hr.多价’)
class Polyvalence(models.Model):
_name = 'hr.polyvalence'
job_id = fields.Many2one('hr.job', string='Job')
skill_id = fields.Many2one('hr.skill', string='Skills')
weight = fields.Integer(string='Weight')
例如:
Job | skills | weight
------|------- |--------
job1 | skill1 |3
------|--------|--------
| skill2 |2
------------------------
job2 | skill1 |1
------|--------|--------
| skill3 |2
第二个(_inherit='hr.employee')
class EmployeePolyvalence(models.Model):
_inherit = 'hr.employee'
rate_skill = fields.Float(string="Rate", compute="_compute_rate_skill")
@api.multi
@api.depends('job_id', 'employee_skill_ids')
def _compute_rate_skill(self):
somme = 0
for rec in self:
if rec.job_id and rec.employee_skill_ids:
for skill in rec.employee_skill_ids:
if skill.level == '0':
level = 1
elif skill.level == '1':
level = 2
elif skill.level == '2':
level = 3
elif skill.level == '3':
level = 4
versatility = self.env['hr.polyvalence'].search([('job_id', '=', rec.job_id.id)])
if versatility:
weight = versatility.weight
rate = level * weight
somme += rate
rec.rate_skill = somme
例如:
Employee | skills | level
----------|------- |--------
employee1 | skill1 |1
----------|--------|--------
| skill2 |3
----------|--------|---------
我想用以下两个公式计算通用性指数:
*Score of employee1:
job1= (1*3 + 3*2) / (3+2) = 1.8 Sum (level*Weight) / Sum(Weight)
job2=.....= 2
job3=.....= 3
*Versatility index= (3+2+1.8)/ (3*3) = 75 % Sum (Job Note) /( Number of Jobs * 3)
但当在hr_多价中添加多个技能时,我会得到一个错误提升值错误(“预期的单例::%s”%self) ValueError:预期的单态:hr.多价(15,16)
有人能帮我找到正确的结石吗
那是因为你得到了多条记录。所以试着替换这个代码
谢谢
相关问题 更多 >
编程相关推荐