[FIX] Schedule jobs even if their next time has passed.
[odoo/odoo.git] / addons / report_analytic_planning / report_analytic_planning.py
index 3a5a9c1..04ae316 100644 (file)
@@ -2,7 +2,7 @@
 ##############################################################################
 #
 #    OpenERP, Open Source Management Solution  
-#    Copyright (C) 2004-2008 Tiny SPRL (<http://tiny.be>). All Rights Reserved
+#    Copyright (C) 2004-2009 Tiny SPRL (<http://tiny.be>). All Rights Reserved
 #    $Id$
 #
 #    This program is free software: you can redistribute it and/or modify
@@ -73,7 +73,7 @@ class report_account_analytic_planning_stat_account(osv.osv):
     def _sum_amount_real(self, cr, uid, ids, name, args, context):
         result = {}
         for line in self.browse(cr, uid, ids, context):
-            cr.execute('select sum(unit_amount) from account_analytic_line where account_id=%d and date>=%s and date<=%s', (line.account_id.id,line.planning_id.date_from,line.planning_id.date_to))
+            cr.execute('select sum(unit_amount) from account_analytic_line where account_id=%s and date>=%s and date<=%s', (line.account_id.id,line.planning_id.date_from,line.planning_id.date_to))
             result[line.id] = cr.fetchone()[0]
         return result
     _columns = {
@@ -110,30 +110,32 @@ class report_account_analytic_planning_stat(osv.osv):
         result = {}
         for line in self.browse(cr, uid, ids, context):
             if line.user_id:
-                cr.execute('select sum(unit_amount) from account_analytic_line where user_id=%d and account_id=%d and date>=%s and date<=%s', (line.user_id.id,line.account_id.id,line.planning_id.date_from,line.planning_id.date_to))
+                cr.execute('select sum(unit_amount) from account_analytic_line where user_id=%s and account_id=%s and date>=%s and date<=%s', (line.user_id.id,line.account_id.id,line.planning_id.date_from,line.planning_id.date_to))
             else:
-                cr.execute('select sum(unit_amount) from account_analytic_line where account_id=%d and date>=%s and date<=%s', (line.account_id.id,line.planning_id.date_from,line.planning_id.date_to))
+                cr.execute('select sum(unit_amount) from account_analytic_line where account_id=%s and date>=%s and date<=%s', (line.account_id.id,line.planning_id.date_from,line.planning_id.date_to))
             result[line.id] = cr.fetchone()[0]
         return result
     def _sum_amount_tasks(self, cr, uid, ids, name, args, context):
         result = {}
         for line in self.browse(cr, uid, ids, context):
             where = ''
+            sqlarg = ()
             if line.user_id:
-                where='user_id='+str(line.user_id.id)+' and '
+                where='user_id=%s and '
+                sqlarg = (line.user_id.id,)
             cr.execute('''select
                     sum(planned_hours)
                 from
                     project_task
                 where
                 '''+where+'''
-                    project_id in (select id from project_project where category_id=%d) and
+                    project_id in (select id from project_project where category_id=%s) and
                     date_close>=%s and
-                    date_close<=%s''', (
-                line.account_id.id,
-                line.planning_id.date_from,
-                line.planning_id.date_to)
-            )
+                    date_close<=%s''',
+                        sqlarg + (
+                           line.account_id.id,
+                           line.planning_id.date_from,
+                           line.planning_id.date_to))
             result[line.id] = cr.fetchone()[0]
         return result
     _columns = {
@@ -179,7 +181,7 @@ class report_account_analytic_planning_stat_user(osv.osv):
         for line in self.browse(cr, uid, ids, context):
             result[line.id] = 0.0
             if line.user_id:
-                cr.execute('select sum(unit_amount) from account_analytic_line where user_id=%d and date>=%s and date<=%s', (line.user_id.id,line.planning_id.date_from,line.planning_id.date_to))
+                cr.execute('select sum(unit_amount) from account_analytic_line where user_id=%s and date>=%s and date<=%s', (line.user_id.id,line.planning_id.date_from,line.planning_id.date_to))
                 result[line.id] = cr.fetchone()[0]
         return result
     _columns = {