[IMP] hr_recruitment : new field added as no_of_recuirtment and functionality changed one expected employee and no_of_employee
bzr revid: vir@tinyerp.com-20101014104356-hgqehpxa0bwv9dzi
This commit is contained in:
+13
-8
@@ -80,18 +80,13 @@ hr_employee_marital_status()
|
||||
|
||||
class hr_job(osv.osv):
|
||||
|
||||
def _no_of_employee(self, cr, uid, ids, name, args, context=None):
|
||||
res = {}
|
||||
for emp in self.browse(cr, uid, ids):
|
||||
res[emp.id] = len(emp.employee_ids or [])
|
||||
return res
|
||||
|
||||
_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'),
|
||||
'no_of_employee': fields.function(_no_of_employee, method=True, string='No of Employees', type='integer', help='Number of Employees selected'),
|
||||
'no_of_employee': fields.integer('No of Employees', help='Number of employee there are already in the department', readonly=True),
|
||||
'no_of_recruitment': fields.integer('No of Recruitment'),
|
||||
'employee_ids': fields.one2many('hr.employee', 'job_id', 'Employees'),
|
||||
'description': fields.text('Job Description'),
|
||||
'requirements': fields.text('Requirements'),
|
||||
@@ -102,9 +97,19 @@ class hr_job(osv.osv):
|
||||
_defaults = {
|
||||
'expected_employees': 1,
|
||||
'company_id': lambda self,cr,uid,c: self.pool.get('res.company')._company_default_get(cr, uid, 'hr.job', context=c),
|
||||
'state': 'open'
|
||||
'state': 'open',
|
||||
'no_of_recruitment': 1,
|
||||
}
|
||||
|
||||
def on_change_expected_employee(self, cr, uid, ids, expected_employee, context=None):
|
||||
if context is None:
|
||||
context = {}
|
||||
result={}
|
||||
if expected_employee:
|
||||
xx = self.browse(cr, uid, ids, context)[0]
|
||||
result['no_of_recruitment'] = expected_employee - xx['no_of_employee']
|
||||
return {'value': result}
|
||||
|
||||
def job_old(self, cr, uid, ids, *args):
|
||||
self.write(cr, uid, ids, {'state': 'old'})
|
||||
return True
|
||||
|
||||
@@ -324,8 +324,9 @@
|
||||
<field name="name" />
|
||||
<field name="department_id" />
|
||||
<field name="company_id" widget="selection" groups="base.group_multi_company"/>
|
||||
<field name="expected_employees"/>
|
||||
<field name="expected_employees" on_change="on_change_expected_employee(expected_employees)"/>
|
||||
<field name="no_of_employee"/>
|
||||
<field name="no_of_recruitment"/>
|
||||
</group>
|
||||
<newline/>
|
||||
<notebook colspan="4">
|
||||
@@ -360,6 +361,7 @@
|
||||
<field name="company_id" groups="base.group_multi_company"/>
|
||||
<field name="expected_employees"/>
|
||||
<field name="no_of_employee"/>
|
||||
<field name="no_of_recruitment"/>
|
||||
<field name="state"/>
|
||||
</tree>
|
||||
</field>
|
||||
|
||||
@@ -429,17 +429,13 @@ class hr_applicant(crm.crm_case, osv.osv):
|
||||
message = _('Applicant ') + " '" + name + "' "+ _("is Hired.")
|
||||
self.log(cr, uid, id, message)
|
||||
|
||||
stage_id = self.pool.get('hr.recruitment.stage').search(cr, uid, [('name','=','Contract Signed')])
|
||||
self.write(cr, uid, ids,{'stage_id':stage_id[0]})
|
||||
|
||||
applicant = self.browse(cr, uid, ids)[0]
|
||||
if applicant.job_id :
|
||||
emp_id = employee_obj.create(cr,uid,{'name':applicant.name,'job_id':applicant.job_id.id})
|
||||
job_data = job_obj.browse(cr,uid, applicant.job_id.id)
|
||||
expected_emp = job_data['expected_employees'] - 1
|
||||
if expected_emp == 0:
|
||||
job_obj.write(cr,uid, [applicant.job_id.id],{'state':'old'})
|
||||
job_obj.write(cr,uid, [applicant.job_id.id],{'expected_employees':expected_emp})
|
||||
no_of_emp = job_data['no_of_employee'] + 1
|
||||
no_of_recruit = job_data['no_of_recruitment'] - 1
|
||||
job_obj.write(cr,uid, [applicant.job_id.id],{'no_of_employee':no_of_emp,'no_of_recruitment':no_of_recruit})
|
||||
return res
|
||||
|
||||
def case_reset(self, cr, uid, ids, *args):
|
||||
@@ -450,18 +446,9 @@ class hr_applicant(crm.crm_case, osv.osv):
|
||||
@param ids: List of case Ids
|
||||
@param *args: Tuple Value for additional Params
|
||||
"""
|
||||
applicant = self.browse(cr, uid, ids)[0]
|
||||
if applicant.job_id :
|
||||
job_obj = self.pool.get('hr.job')
|
||||
emp_obj = self.pool.get('hr.employee')
|
||||
job_data = job_obj.browse(cr,uid, applicant.job_id.id)
|
||||
expected_emp = job_data['expected_employees'] + 1
|
||||
emp_id = emp_obj.search(cr,uid, [('job_id','=',applicant.job_id.id),('name','=',applicant.name)])
|
||||
emp_obj.unlink(cr, uid, emp_id)
|
||||
job_obj.write(cr,uid, [applicant.job_id.id],{'expected_employees':expected_emp})
|
||||
|
||||
res = super(hr_applicant, self).case_reset(cr, uid, ids, *args)
|
||||
self.write(cr, uid, ids, {'date_open': False, 'date_closed':False})
|
||||
|
||||
return res
|
||||
|
||||
|
||||
|
||||
@@ -297,7 +297,7 @@
|
||||
<field name="type">form</field>
|
||||
<field name="inherit_id" ref="hr.view_hr_job_form"/>
|
||||
<field name="arch" type="xml">
|
||||
<field name="no_of_employee" position="after">
|
||||
<field name="department_id" position="after">
|
||||
<field name="survey_id"/>
|
||||
</field>
|
||||
</field>
|
||||
|
||||
Reference in New Issue
Block a user