[IMP] hr: improved recruitement
bzr revid: qdp-launchpad@openerp.com-20110311134136-jal186xbwpjf4hba
This commit is contained in:
parent
7cb99c6031
commit
03c8e8b36a
|
@ -81,29 +81,20 @@ class hr_job(osv.osv):
|
|||
def _no_of_employee(self, cr, uid, ids, name, args, context=None):
|
||||
res = {}
|
||||
for job in self.browse(cr, uid, ids, context=context):
|
||||
res[job.id] = len(job.employee_ids or [])
|
||||
nb_employees = len(job.employee_ids or [])
|
||||
res[job.id] = {
|
||||
'no_of_employee': nb_employees,
|
||||
'expected_employees': nb_employees + job.no_of_recruitment,
|
||||
}
|
||||
return res
|
||||
|
||||
def _no_of_recruitement(self, cr, uid, ids, name, args, context=None):
|
||||
res = {}
|
||||
for job in self.browse(cr, uid, ids, context=context):
|
||||
res[job.id] = job.expected_employees - job.no_of_employee
|
||||
return res
|
||||
|
||||
def _no_of_expected_employees(self, cr, uid, ids, name, value, arg, context=None):
|
||||
if context is None:
|
||||
context = {}
|
||||
job =self.browse(cr, uid, ids, context=context)
|
||||
result = value + job.no_of_employee
|
||||
return self.write(cr,uid, ids, {'expected_employees': result}, context=context)
|
||||
|
||||
_name = "hr.job"
|
||||
_description = "Job Description"
|
||||
_columns = {
|
||||
'name': fields.char('Job Name', size=128, required=True, select=True),
|
||||
'expected_employees': fields.integer('Expected Employees', help='Required number of Employees in total for that job.'),
|
||||
'no_of_employee': fields.function(_no_of_employee, method=True, string="No of Employee", help='Number of employee with that job.'),
|
||||
'no_of_recruitment': fields.function(_no_of_recruitement,fnct_inv=_no_of_expected_employees, method=True, string='Expected in Recruitment'),
|
||||
'expected_employees': fields.function(_no_of_employee, method=True, string='Expected Employees', help='Required number of Employees in total for that job.', multi="no_of_employee"),
|
||||
'no_of_employee': fields.function(_no_of_employee, method=True, string="No of Employee", help='Number of employee with that job.', multi="no_of_employee"),
|
||||
'no_of_recruitment': fields.float('Expected in Recruitment'),
|
||||
'employee_ids': fields.one2many('hr.employee', 'job_id', 'Employees'),
|
||||
'description': fields.text('Job Description'),
|
||||
'requirements': fields.text('Requirements'),
|
||||
|
@ -117,24 +108,23 @@ class hr_job(osv.osv):
|
|||
'state': 'open',
|
||||
}
|
||||
|
||||
def on_change_expected_employee(self, cr, uid, ids, expected_employee, no_of_employee, context=None):
|
||||
def on_change_expected_employee(self, cr, uid, ids, no_of_recruitment, no_of_employee, context=None):
|
||||
if context is None:
|
||||
context = {}
|
||||
result = {}
|
||||
if expected_employee:
|
||||
result['no_of_recruitment'] = expected_employee - no_of_employee
|
||||
return {'value': result}
|
||||
return {'value': {'expected_employees': no_of_recruitment + no_of_employee}}
|
||||
|
||||
def job_old(self, cr, uid, ids, *args):
|
||||
self.write(cr, uid, ids, {'state': 'old'})
|
||||
self.write(cr, uid, ids, {'state': 'old', 'no_of_recruitment': 0})
|
||||
return True
|
||||
|
||||
def job_recruitement(self, cr, uid, ids, *args):
|
||||
self.write(cr, uid, ids, {'state': 'recruit'})
|
||||
for job in self.browse(cr, uid, ids):
|
||||
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):
|
||||
self.write(cr, uid, ids, {'state': 'open'})
|
||||
self.write(cr, uid, ids, {'state': 'open', 'no_of_recruitment': 0})
|
||||
return True
|
||||
|
||||
hr_job()
|
||||
|
|
|
@ -333,9 +333,10 @@
|
|||
<field name="name" />
|
||||
<field name="department_id" />
|
||||
<field name="company_id" widget="selection" groups="base.group_multi_company"/>
|
||||
<field name="expected_employees" on_change="on_change_expected_employee(expected_employees,no_of_employee)"/>
|
||||
<newline/>
|
||||
<field name="no_of_recruitment" on_change="on_change_expected_employee(no_of_recruitment,no_of_employee)"/>
|
||||
<field name="no_of_employee"/>
|
||||
<field name="no_of_recruitment"/>
|
||||
<field name="expected_employees"/>
|
||||
</group>
|
||||
<newline/>
|
||||
<notebook colspan="4">
|
||||
|
|
Loading…
Reference in New Issue