2
Created on 29 juil. 2014
6
from osv import osv,fields
7
from datetime import datetime
9
class maintenance_element_timeofuse_wizard_detail(osv.osv_memory):
10
_name = 'maintenance.element.timeofuse.wizard.detail'
13
'wizard_id':fields.many2one('maintenance.element.timeofuse.wizard.time_of_use', 'Wizard'),
14
'date':fields.datetime('Date'),
15
'time_of_use':fields.float('Time of Use'),
19
maintenance_element_timeofuse_wizard_detail()
21
class import_timeofuse(osv.osv_memory):
22
_name = 'maintenance.element.timeofuse.wizard'
24
def calculate(self,cr,uid,ids,context=None):
26
res={'nodestroy':True}
29
for element in self.browse(cr,uid,ids,context=context):
30
if (len(element.history) == 2):
31
days_diff = abs((datetime.strptime(element.history[0]['date'],'%Y-%m-%d %H:%M:%S')-datetime.strptime(element.history[1]['date'],'%Y-%m-%d %H:%M:%S')).days)
32
counters_diff = abs(element.history[0]['time_of_use']-element.history[1]['time_of_use'])
33
real_hours = int((counters_diff/days_diff) * 365)
37
self.write(cr,uid,ids,{'calc_time':real_hours},context=context)
41
def _get_history(self,cr,uid,context=None):
44
if(context and context.has_key('active_ids')):
45
element_ids = context['active_ids']
46
elements = self.pool.get('maintenance.element').browse(cr,uid,element_ids,context=context)
48
for element in elements:
49
for timeofuse in element.timeofuse_history:
50
tmp.append({'date':timeofuse.date,'time_of_use':timeofuse.time_of_use})
53
res.sort(key=lambda x: x['date'],reverse=True)
60
'history':fields.one2many('maintenance.element.timeofuse.wizard.detail','wizard_id','Time of Use'),
61
'calc_time':fields.float('Calculated Time')
65
'history':_get_history,
68
def import_time(self,cr,uid,ids,context=None):
71
for el in self.browse(cr,uid,ids,context=context):
72
self.pool.get('maintenance.element').write(cr,uid,context['active_ids'],{'expected_time_of_use':el.calc_time})