~yolanda.robla/+junk/ceilometer_openerp

« back to all changes in this revision

Viewing changes to canonical_employee_employee.py

  • Committer: yolanda.robla at canonical
  • Date: 2013-01-08 13:51:06 UTC
  • Revision ID: yolanda.robla@canonical.com-20130108135106-5q9wf1nopjwf50uy
first beta version

Show diffs side-by-side

added added

removed removed

Lines of Context:
1
 
from osv import fields, osv
2
 
 
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'}
7
 
    _columns = {
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',
18
 
                                           'Emergency Contact',
19
 
                                           ),
20
 
         'dependant_id': fields.one2many('canonical.employee.dependant',
21
 
                                           'canonical_employee_id',
22
 
                                           'Dependant',
23
 
                                           ),
24
 
        'work_hours': fields.char('Working Hours', size = 32),
25
 
        'contract_type': fields.selection ([('employee','Employee'),
26
 
                                            ('intern','Intern'),
27
 
                                            ('contractor','Contractor'),
28
 
                                            ('agency','Agency Staff'),
29
 
                                            ('apprenticeship', 'Apprenticeship'),
30
 
                                            ('temporarie', 'Temporary'),
31
 
                                            ('detachment', 'Detachment')
32
 
                                            ],'Contract Type'),
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)
40
 
    }
41
 
    
42
 
    _defaults = {
43
 
        'work_hours':'09:00-18:00',
44
 
        'contract_type':'employee',
45
 
        'prob_duration': 3,
46
 
    }
47
 
    
48
 
 
49
 
    def onchange_workingday (self, cr, uid, ids, day, context=None):
50
 
        return {'value': {'work_mon_to_fri':False}}
51
 
    
52
 
    def onchange_montofri (self, cr, uid, ids, day, context=None):
53
 
        res = {}
54
 
        if day:
55
 
            res['value'] = {'work_on_mon':False,
56
 
                            'work_on_tue':False,
57
 
                            'work_on_wed':False,
58
 
                            'work_on_thu':False,
59
 
                            'work_on_fri':False,
60
 
                            'work_on_sat':False,
61
 
                            'work_on_sun':False,}
62
 
        return res
63
 
 
64
 
canonical_employee_employee()
65
 
 
66
 
 
67
 
class canonical_employee_emergcontact(osv.osv):
68
 
    _name = 'canonical.employee.emergcontact'
69
 
    _desciption = 'Emergency contacts for an employee'
70
 
    _columns = {
71
 
        'name': fields.char('Name', size=128, required=True),
72
 
        'relationship': fields.selection([('spouse','Spouse'),                                       
73
 
                                        ('parent','Parent'),
74
 
                                        ('child','Child'),
75
 
                                        ('sibling','Sibling'),
76
 
                                        ('partner','Partner'),
77
 
                                        ('other','Other'),
78
 
                                        ],'Relationship'),
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),
89
 
    }
90
 
    
91
 
 
92
 
    def _default_value(self, cr, uid, field, context=None):
93
 
        if field:
94
 
            value = context.get(field)
95
 
        return value
96
 
    
97
 
    _defaults = {
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),
104
 
    }
105
 
 
106
 
 
107
 
canonical_employee_emergcontact()
108
 
 
109
 
 
110
 
class canonical_employee_dependant(osv.osv):
111
 
    _name = 'canonical.employee.dependant'
112
 
    _desciption = 'Dependant of an employee'
113
 
    _columns = {
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'),
119
 
                                ('ms','Ms'),
120
 
                                ('mrs','Mrs'),
121
 
                                ('miss','Miss'),
122
 
                                ('dr','Dr')],
123
 
                                'Title'),
124
 
        'gender':fields.selection([('male','Male'),
125
 
                                ('female','Female')],
126
 
                                'Gender'),
127
 
        'relationship': fields.selection([('partner','Partner'),                                       
128
 
                                        ('child','Child'),
129
 
                                        ('parent','Parent'),
130
 
                                        ('sibling','Sibling'),
131
 
                                        ('spouse','Spouse'),
132
 
                                        ('friend','Friend'),
133
 
                                        ('relative','Relative'),
134
 
                                        ('other','Other'),
135
 
                                        ],'Relationship'),
136
 
       'marital_status':fields.selection([('single','Single'),
137
 
                                        ('married','Married'),
138
 
                                        ('divorced','Divorced'),
139
 
                                        ('widower','Widower')],
140
 
                                        'Marital Status'),
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),
145
 
    }
146
 
 
147
 
    def _default_value(self, cr, uid, field, context=None):
148
 
        if field:
149
 
            value = context.get(field)
150
 
        return value
151
 
 
152
 
    _defaults = {
153
 
         'chinese_options': lambda self, cr, uid, context: self._default_value(cr, uid, 'chinese_options', context=context),
154
 
            }
155
 
 
156
 
canonical_employee_dependant()
157
 
 
158