~acsone-openerp/hr-timesheet/improvements

« back to all changes in this revision

Viewing changes to timesheet_task/tmp_file_for_project_indicator.py

  • Committer: Guewen Baconnier
  • Author(s): Laetitia Gangloff
  • Date: 2013-04-10 09:27:40 UTC
  • mfrom: (40.1.9 migration_hr_timesheet_taskV7)
  • Revision ID: guewen.baconnier@camptocamp.com-20130410092740-qjxsqutev1narcd3
[MIGR] timesheet_task: migration V7

Show diffs side-by-side

added added

removed removed

Lines of Context:
1
 
def _progress_rate(self, cr, uid, ids, names, arg, context=None):
2
 
    """As OpenERP SA made a query for this function field (perf. reason obviously), 
3
 
    I must overide it all."""
4
 
    result = {}.fromkeys(ids, 0.0)
5
 
    progress = {}
6
 
    if not ids:
7
 
        return res
8
 
    cr.execute('''SELECT project_id,
9
 
                         sum(planned_hours) as sum_planned_hours,
10
 
                         sum(total_hours) as sum_total_hours,
11
 
                         sum(effective_hours) as sum_effective_hours,
12
 
                         sum(remaining_hours) as remaining_hours,
13
 
                         sum(deduced_hours) as deduced_hours
14
 
                  FROM project_task
15
 
                  WHERE  project_id in %s 
16
 
                   AND state<>'cancelled'
17
 
                  GROUP BY project_id''', (tuple(ids),))
18
 
                 
19
 
    res = cr.dictfetchall()
20
 
    for stat in res:
21
 
        project = self.browse(cr, uid, res['project_id'], context=context)
22
 
        progr = (stat['sum_planned_hours'] and 
23
 
                 round(100.0 * stat['sum_total_hours'] / stat['sum_planned_hours'], 2) or 0.0),
24
 
        result[project.id] = {'planned_hours': stat['sum_planned_hours'],
25
 
                              'effective_hours': stat['sum_effective_hours'],
26
 
                              'total_hours': stat['sum_total_hours'],
27
 
                              'progress_rate': progr,
28
 
                              'deduced_hours': stat['sum_deduced_hours']}
29
 
    return res
 
 
b'\\ No newline at end of file'