From 1be14671a4306a20ef1db0927db92db8326abffe Mon Sep 17 00:00:00 2001 From: "Vir (Open ERP)" Date: Thu, 14 Oct 2010 16:13:56 +0530 Subject: [PATCH] [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 --- addons/hr/hr.py | 21 ++++++++++++------- addons/hr/hr_view.xml | 4 +++- addons/hr_recruitment/hr_recruitment.py | 21 ++++--------------- addons/hr_recruitment/hr_recruitment_view.xml | 2 +- 4 files changed, 21 insertions(+), 27 deletions(-) diff --git a/addons/hr/hr.py b/addons/hr/hr.py index c05836c393a..3e789709195 100644 --- a/addons/hr/hr.py +++ b/addons/hr/hr.py @@ -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 diff --git a/addons/hr/hr_view.xml b/addons/hr/hr_view.xml index 2b1cd596024..eb0601002f1 100644 --- a/addons/hr/hr_view.xml +++ b/addons/hr/hr_view.xml @@ -324,8 +324,9 @@ - + + @@ -360,6 +361,7 @@ + diff --git a/addons/hr_recruitment/hr_recruitment.py b/addons/hr_recruitment/hr_recruitment.py index 3dbcd946e87..11b3dc06650 100644 --- a/addons/hr_recruitment/hr_recruitment.py +++ b/addons/hr_recruitment/hr_recruitment.py @@ -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 diff --git a/addons/hr_recruitment/hr_recruitment_view.xml b/addons/hr_recruitment/hr_recruitment_view.xml index 033fd68052c..cf2097b2454 100644 --- a/addons/hr_recruitment/hr_recruitment_view.xml +++ b/addons/hr_recruitment/hr_recruitment_view.xml @@ -297,7 +297,7 @@ form - +