diff --git a/app/components/user_stats.rb b/app/components/user_stats.rb index beec72c..896120f 100644 --- a/app/components/user_stats.rb +++ b/app/components/user_stats.rb @@ -2,15 +2,26 @@ class UserStats < Netzke::Base def body_content(user) bike = user.bike - %Q( -
+ completed = user.completed_build_bikes + #I think it's time to switch to a template + body = "" + body += %Q(
) + body += %Q(

Username: #{user.username}

Total Hours Worked: #{user.total_hours}

Hours worked in #{Time.now.strftime('%B')}: #{user.current_month_hours}

Current bike Shop ID: #{bike.shop_id if bike}

Current bike S/N: #{bike.serial_number if bike}

-
) + unless completed.empty? + body += %Q(

Previously built bikes (#{completed.count}):

) + body += %Q() + end + body += %Q(
) end js_configure do |c| diff --git a/app/models/user.rb b/app/models/user.rb index 338afd5..b9fbc39 100644 --- a/app/models/user.rb +++ b/app/models/user.rb @@ -43,6 +43,19 @@ class User < ActiveRecord::Base ### TODO methods below probably belong somewhere else + def completed_build_bikes + status_id = BikeStatus.find_by_status("BUILDBIKE").id + Bike.find_by_sql(" + SELECT * + FROM bikes + LEFT JOIN( + SELECT * + FROM transactions + WHERE customer_id = #{self.id} + ) AS transactions ON bikes.id = transactions.bike_id + WHERE bike_status_id = #{status_id}") + end + def total_hours log_action = ::ActsAsLoggable::UserAction.find_by_action("CHECKIN") logs.where("log_action_id != ? AND log_action_type = ?", log_action.id, log_action.class.to_s).sum { |l| (l.end_date - l.start_date)/3600 }.round(2)