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
_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",
'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'),
('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