comparison app/controllers/timelog_controller.rb @ 14:1d32c0a0efbf

* Update to SVN trunk (revisions 3892-4040)
author Chris Cannam
date Wed, 25 Aug 2010 16:30:24 +0100
parents 513646585e45
children 40f7cfd4df19
comparison
equal deleted inserted replaced
4:9cc62779c13a 14:1d32c0a0efbf
53 sql_condition = "#{Issue.table_name}.root_id = #{@issue.root_id} AND #{Issue.table_name}.lft >= #{@issue.lft} AND #{Issue.table_name}.rgt <= #{@issue.rgt}" 53 sql_condition = "#{Issue.table_name}.root_id = #{@issue.root_id} AND #{Issue.table_name}.lft >= #{@issue.lft} AND #{Issue.table_name}.rgt <= #{@issue.rgt}"
54 end 54 end
55 55
56 sql = "SELECT #{sql_select}, tyear, tmonth, tweek, spent_on, SUM(hours) AS hours" 56 sql = "SELECT #{sql_select}, tyear, tmonth, tweek, spent_on, SUM(hours) AS hours"
57 sql << " FROM #{TimeEntry.table_name}" 57 sql << " FROM #{TimeEntry.table_name}"
58 sql << " LEFT JOIN #{Issue.table_name} ON #{TimeEntry.table_name}.issue_id = #{Issue.table_name}.id" 58 sql << time_report_joins
59 sql << " LEFT JOIN #{Project.table_name} ON #{TimeEntry.table_name}.project_id = #{Project.table_name}.id"
60 sql << " WHERE" 59 sql << " WHERE"
61 sql << " (%s) AND" % sql_condition 60 sql << " (%s) AND" % sql_condition
62 sql << " (spent_on BETWEEN '%s' AND '%s')" % [ActiveRecord::Base.connection.quoted_date(@from), ActiveRecord::Base.connection.quoted_date(@to)] 61 sql << " (spent_on BETWEEN '%s' AND '%s')" % [ActiveRecord::Base.connection.quoted_date(@from), ActiveRecord::Base.connection.quoted_date(@to)]
63 sql << " GROUP BY #{sql_group_by}, tyear, tmonth, tweek, spent_on" 62 sql << " GROUP BY #{sql_group_by}, tyear, tmonth, tweek, spent_on"
64 63
312 end 311 end
313 312
314 call_hook(:controller_timelog_available_criterias, { :available_criterias => @available_criterias, :project => @project }) 313 call_hook(:controller_timelog_available_criterias, { :available_criterias => @available_criterias, :project => @project })
315 @available_criterias 314 @available_criterias
316 end 315 end
316
317 def time_report_joins
318 sql = ''
319 sql << " LEFT JOIN #{Issue.table_name} ON #{TimeEntry.table_name}.issue_id = #{Issue.table_name}.id"
320 sql << " LEFT JOIN #{Project.table_name} ON #{TimeEntry.table_name}.project_id = #{Project.table_name}.id"
321 call_hook(:controller_timelog_time_report_joins, {:sql => sql} )
322 sql
323 end
317 end 324 end