1
from osv import fields, osv
3
class canonical_employee_employee(osv.osv):
4
_name = 'canonical.employee.employee'
5
_description = 'Canonical Employee Registry only accessible by emp and P&C'
6
_inherits = {'hr.employee': 'hr_employee_id'}
8
'street1': fields.char('Street 1', size=128),
9
'street2': fields.char('Street 2', size=128),
10
'zip': fields.char('Zip/Postal Code', size=24),
11
'city': fields.char('City', size=64),
12
'mobile_phone': fields.char('Mobile Phone', size=32),
13
'home_phone': fields.char('Home Phone', size=32),
14
'birth_date': fields.date('Date of Birth'),
15
'nationality_id': fields.many2one('res.country','Nationality', widget='selection'),
16
'emergcontact_id': fields.one2many('canonical.employee.emergcontact',
17
'canonical_employee_id',
20
'dependant_id': fields.one2many('canonical.employee.dependant',
21
'canonical_employee_id',
24
'work_hours': fields.char('Working Hours', size = 32),
25
'contract_type': fields.selection ([('employee','Employee'),
27
('contractor','Contractor'),
28
('agency','Agency Staff'),
29
('apprenticeship', 'Apprenticeship'),
30
('temporarie', 'Temporary'),
31
('detachment', 'Detachment')
33
'start_date': fields.date('Start Date'),
34
'prob_start_date': fields.date('Prob Start Date'),
35
'prob_end_date': fields.date('Prob End Date'),
36
'prob_duration':fields.integer('Probation length(months)'),
37
'laptop_refresh':fields.date('Laptop Refresh'),
38
'personal_email':fields.char('Personal Email', size=240),
39
#'manager': fields.related('department_id', 'manager_id', 'name', type="char", relation="hr.employee", string="Manager", store=False)
43
'work_hours':'09:00-18:00',
44
'contract_type':'employee',
49
def onchange_workingday (self, cr, uid, ids, day, context=None):
50
return {'value': {'work_mon_to_fri':False}}
52
def onchange_montofri (self, cr, uid, ids, day, context=None):
55
res['value'] = {'work_on_mon':False,
64
canonical_employee_employee()
67
class canonical_employee_emergcontact(osv.osv):
68
_name = 'canonical.employee.emergcontact'
69
_desciption = 'Emergency contacts for an employee'
71
'name': fields.char('Name', size=128, required=True),
72
'relationship': fields.selection([('spouse','Spouse'),
75
('sibling','Sibling'),
76
('partner','Partner'),
79
'phone1': fields.char('Phone 1', size=32),
80
'phone2': fields.char('Phone 2', size=32),
81
'street1': fields.char('Street 1', size=128),
82
'street2': fields.char('Street 2', size=128),
83
'zip': fields.char('Zip/Postal Code', size=24),
84
'city': fields.char('City', size=64),
85
'state': fields.char('State/Province', size=64),
86
'country_id': fields.many2one('res.country', 'Country', widget='selection'),
87
'canonical_employee_id':fields.many2one('canonical.employee.employee','Employee',
88
required=True, ondelete="cascade", change_default=True),
92
def _default_value(self, cr, uid, field, context=None):
94
value = context.get(field)
98
'state': lambda self, cr, uid, context: self._default_value(cr, uid, 'state', context=context),
99
'street1': lambda self, cr, uid, context: self._default_value(cr, uid, 'street1', context=context),
100
'street2': lambda self, cr, uid, context: self._default_value(cr, uid, 'street2', context=context),
101
'zip': lambda self, cr, uid, context: self._default_value(cr, uid, 'zip', context=context),
102
'city': lambda self, cr, uid, context: self._default_value(cr, uid, 'city', context=context),
103
'country_id': lambda self, cr, uid, context: self._default_value(cr, uid, 'country_id', context=context),
107
canonical_employee_emergcontact()
110
class canonical_employee_dependant(osv.osv):
111
_name = 'canonical.employee.dependant'
112
_desciption = 'Dependant of an employee'
114
'eng_first_name': fields.char('Eng First Name', size=64, required=False),
115
'eng_last_name': fields.char('Eng Last Name', size=64, required=False),
116
'chi_first_name': fields.char('Chi First Name', size=64, required=False),
117
'chi_last_name': fields.char('Chi Last Name', size=64, required=False),
118
'title':fields.selection([('mr','Mr'),
124
'gender':fields.selection([('male','Male'),
125
('female','Female')],
127
'relationship': fields.selection([('partner','Partner'),
130
('sibling','Sibling'),
133
('relative','Relative'),
136
'marital_status':fields.selection([('single','Single'),
137
('married','Married'),
138
('divorced','Divorced'),
139
('widower','Widower')],
141
'birth_date': fields.date('Date of Birth'),
142
'dep_id': fields.char('Id', size=20, ),
143
'canonical_employee_id':fields.many2one('canonical.employee.secure','Employee',required=True, ondelete="cascade"),
144
'chinese_options':fields.related('canonical_employee_id','chinese_options',type='boolean',relation='canonical.employee.secure', string='Chinese opt',store=False),
147
def _default_value(self, cr, uid, field, context=None):
149
value = context.get(field)
153
'chinese_options': lambda self, cr, uid, context: self._default_value(cr, uid, 'chinese_options', context=context),
156
canonical_employee_dependant()