~openerp-community/+junk/hr_extension_V6

« back to all changes in this revision

Viewing changes to hr_extension/hr_extension.py

  • Committer: manu
  • Date: 2012-02-14 13:39:33 UTC
  • Revision ID: esamyn@gmail.com-20120214133933-7lgwqq4w6rs2l0jq
[UPGRADE] age calculation function ; merge Yves Forkl code

Show diffs side-by-side

added added

removed removed

Lines of Context:
38
38
 
39
39
#--- job level ---
40
40
class hr_job_level(osv.osv):
41
 
        _name = "hr.job.level"
42
 
        _description = "qualification/seniority/minimum wage"
43
 
        _columns = {
44
 
                'job_id': fields.many2one('hr.job', 'Job'),
45
 
                'name' : fields.char('Label', size=128, required=True),
46
 
                'job_level': fields.char('Level', size=128),
47
 
                'mini_wage': fields.float('Level minimum wage',digits=(10,2)),
48
 
        }
 
41
    _name = "hr.job.level"
 
42
    _description = "qualification/seniority/minimum wage"
 
43
    _columns = {
 
44
        'job_id': fields.many2one('hr.job', 'Job'),
 
45
        'name' : fields.char('Label', size=128, required=True),
 
46
        'job_level': fields.char('Level', size=128),
 
47
        'mini_wage': fields.float('Level minimum wage',digits=(10,2)),
 
48
    }
49
49
hr_job_level()
50
50
 
51
51
class hr_employee(osv.osv):
52
 
        _name = "hr.employee"
53
 
        _description = "Employee extension"
54
 
        _inherit = "hr.employee"
 
52
    _name = "hr.employee"
 
53
    _description = "Employee extension"
 
54
    _inherit = "hr.employee"
55
55
 
56
 
        def _current_employee_age(self,cr,uid,ids,field_name,arg,context):
57
 
                res = {}
58
 
                today = datetime.date.today()
59
 
                dob = today
60
 
                for employee in self.browse(cr, uid, ids):                      
61
 
                        if employee.birthday:
62
 
                                dob = DateTime.strptime(employee.birthday,'%Y-%m-%d')                   
63
 
                        res[employee.id] = today.year - dob.year
64
 
                return res
65
 
                                                                                                
66
 
        _columns = {
67
 
                'age' : fields.function(_current_employee_age,method=True,string='Age',type='integer',store=True),
68
 
                'can_use_perso_email' : fields.boolean('Can use personal email'),
69
 
                'emergency_contact' : fields.char('Emergency contact', size=128),
70
 
                'emergency_phone' : fields.char('Emergency phone', size=128),   
71
 
                'current_job_level' : fields.many2one('hr.job.level','Current job level'),
72
 
        }
73
 
                
 
56
    def _current_employee_age(self,cr,uid,ids,field_name,arg,context):
 
57
        res = {}
 
58
        today = datetime.date.today()
 
59
        dob = today
 
60
        for employee in self.browse(cr, uid, ids):
 
61
            if employee.birthday:
 
62
                dob = DateTime.strptime(employee.birthday,'%Y-%m-%d')
 
63
                res[employee.id] = today.year - dob.year
 
64
                dob = DateTime.strptime(employee.birthday,'%Y-%m-%d')
 
65
                birthday_this_year = \
 
66
                    datetime.date(today.year, dob.month, dob.day)
 
67
                if birthday_this_year > today: # Improved function by Yives Forkl
 
68
                    res[employee.id] = today.year - dob.year - 1
 
69
                else:
 
70
                    res[employee.id] = today.year - dob.year
 
71
        return res
 
72
                                                
 
73
    _columns = {
 
74
         'age' : fields.function(_current_employee_age,method=True,string='Age',type='integer',store=True),
 
75
         'can_use_perso_email' : fields.boolean('Can use personal email'),
 
76
        'emergency_contact' : fields.char('Emergency contact', size=128),
 
77
        'emergency_phone' : fields.char('Emergency phone', size=128),    
 
78
        'current_job_level' : fields.many2one('hr.job.level','Current job level'),
 
79
    }
 
80
        
74
81
hr_employee()