diff --git a/addons/hr/hr.py b/addons/hr/hr.py index 0b8037e35db..471d6f153b9 100644 --- a/addons/hr/hr.py +++ b/addons/hr/hr.py @@ -81,7 +81,7 @@ class hr_job(osv.osv): nb_employees = len(job.employee_ids or []) res[job.id] = { 'no_of_employee': nb_employees, - 'no_of_recruitment': max(0, (job.expected_employees or nb_employees) - nb_employees), + 'expected_employees': nb_employees + job.no_of_recruitment, } return res @@ -97,11 +97,11 @@ class hr_job(osv.osv): _inherit = ['mail.thread'] _columns = { 'name': fields.char('Job Name', size=128, required=True, select=True), - 'no_of_recruitment': fields.function(_no_of_employee, string='Expected in Recruitment', - help='Number of new employees you expect to recruit.', + 'expected_employees': fields.function(_no_of_employee, string='Total Forecasted Employees', + help='Expected number of employees for this job position after new recruitment.', store = { - 'hr.job': (lambda self,cr,uid,ids,c=None: ids, ['expected_employees'], 10), - 'hr.employee': (_get_job_position, ['job_id'], 11), + 'hr.job': (lambda self,cr,uid,ids,c=None: ids, ['no_of_recruitment'], 10), + 'hr.employee': (_get_job_position, ['job_id'], 10), }, type='integer', multi='no_of_employee'), 'no_of_employee': fields.function(_no_of_employee, string="Current Number of Employees", @@ -110,8 +110,7 @@ class hr_job(osv.osv): 'hr.employee': (_get_job_position, ['job_id'], 10), }, type='integer', multi='no_of_employee'), - 'expected_employees': fields.integer('Total Forecasted Employees', - help='Expected number of employees for this job position after new recruitment.'), + 'no_of_recruitment': fields.float('Expected in Recruitment', help='Number of new employees you expect to recruit.'), 'employee_ids': fields.one2many('hr.employee', 'job_id', 'Employees', groups='base.group_user'), 'description': fields.text('Job Description'), 'requirements': fields.text('Requirements'), @@ -130,15 +129,20 @@ class hr_job(osv.osv): ('name_company_uniq', 'unique(name, company_id, department_id)', 'The name of the job position must be unique per department in company!'), ] + + def on_change_expected_employee(self, cr, uid, ids, no_of_recruitment, no_of_employee, context=None): + if context is None: + context = {} + return {'value': {'expected_employees': no_of_recruitment + no_of_employee}} + def job_recruitement(self, cr, uid, ids, *args): for job in self.browse(cr, uid, ids): - expected = max(job.no_of_employee + 1, job.expected_employees) - self.write(cr, uid, [job.id], {'state': 'recruit', 'expected_employees': expected}) + no_of_recruitment = job.no_of_recruitment == 0 and 1 or job.no_of_recruitment + self.write(cr, uid, [job.id], {'state': 'recruit', 'no_of_recruitment': no_of_recruitment}) return True def job_open(self, cr, uid, ids, *args): - for job in self.browse(cr, uid, ids): - self.write(cr, uid, ids, {'state': 'open', 'expected_employees': job.no_of_employee}) + self.write(cr, uid, ids, {'state': 'open', 'no_of_recruitment': 0}) return True diff --git a/addons/hr/hr_view.xml b/addons/hr/hr_view.xml index 0ce99d95b09..4922a53bcbf 100644 --- a/addons/hr/hr_view.xml +++ b/addons/hr/hr_view.xml @@ -343,9 +343,9 @@ - - - + + +