[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:
Vir (Open ERP)
2010-10-14 16:13:56 +05:30
parent 4a72d3a745
commit 1be14671a4
4 changed files with 21 additions and 27 deletions
+13 -8
View File
@@ -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
+3 -1
View File
@@ -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>
+4 -17
View File
@@ -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>