appraisal result

This commit is contained in:
Esraa-Exp 2025-02-27 12:47:51 +02:00
parent 63c5f125b4
commit cdba343a2c
2 changed files with 3 additions and 41 deletions

View File

@ -144,15 +144,14 @@ class Appraisal(models.Model):
raise exceptions.Warning(
_('There is No percentage result for employee appraisal Greater than 100%'))
# Determine which appraisal result from appraisal percentage
appraisal_result = self.env['appraisal.result'].search([
('result_from', '<=', item.level_achieved_percentage),
('result_to', '>=', item.level_achieved_percentage)])
appraisal_result = self.appraisal_plan_id.mapped('appraisal_result_ids').filtered(lambda
r: r.result_from <= item.level_achieved_percentage and r.result_to >= item.level_achieved_percentage)
if len(appraisal_result) > 1:
for line in appraisal_result:
appraisal_result_list.append(line.name)
raise exceptions.Warning(
_('Please check appraisal result configuration , there is more than result for percentage %s are %s ') % (
round(item.level_achieved_percentage, 2), appraisal_result_list))
round(item.level_achieved_percentage, 2), appraisal_result_list))
else:
item.appraisal_result = appraisal_result.id

View File

@ -16,42 +16,5 @@ class EmployeeAppraisal(models.Model):
return {'domain': {'employee_id': [('id', 'in', employee_list)]}}
@api.onchange('standard_appraisal_employee_line_ids', 'appraisal_plan_id')
def onchange_appraisal_lines(self):
if self.appraisal_type == 'training' and self.mission_id:
for item in self:
# Initialize
total_greed, total_great_level, item.level_achieved, item.great_level, item.level_achieved_percentage = \
0.0, 0.0, 0.0, 0.0, 0.0
appraisal_result_list = []
if not item.is_manager:
for line in item.standard_appraisal_employee_line_ids:
# Update level achieved values when changed in lines
total_greed += line.greed
total_great_level += line.great_level
item.great_level = total_great_level
item.level_achieved = total_greed
# Update level achieved percentage when changed in lines
if item.level_achieved > 0.0 and item.great_level > 0.0:
item.level_achieved_percentage = (item.level_achieved * 100) / item.great_level
if item.level_achieved_percentage > 100:
raise exceptions.Warning(
_('There is No percentage result for employee appraisal Greater than 100%'))
# Determine which appraisal result from appraisal percentage
appraisal_result = self.appraisal_plan_id.mapped('appraisal_result_ids').filtered(lambda r: r.result_from <= item.level_achieved_percentage and r.result_to >= item.level_achieved_percentage)
if len(appraisal_result) > 1:
for line in appraisal_result:
appraisal_result_list.append(line.name)
raise exceptions.Warning(
_('Please check appraisal result configuration , there is more than result for percentage %s are %s ') % (
round(item.level_achieved_percentage, 2), appraisal_result_list))
else:
item.appraisal_result = appraisal_result.id
else:
res = super(EmployeeAppraisal, self).onchange_appraisal_lines()
return res