diff --git a/app/models/user.rb b/app/models/user.rb index 1da102d..58a4846 100644 --- a/app/models/user.rb +++ b/app/models/user.rb @@ -90,42 +90,22 @@ class User < ActiveRecord::Base end def member_status - case self.member_level.to_i - when 0 - if self.payments.count > 0 then - 2 - else - -1 - end - when 1 - 1 - when 10..24 - 10 - when 25..999 - if self.payments.count > 0 then - if self.payments.last.date < (DateTime.now - 45.days) - 3 - else - case self.member_level.to_i - when 25..49 - 25 - when 50..99 - 50 - when 100..999 - 100 - end - end - else - return 0 - end - end + member_status_calculation[:rank] end def member_status_symbol + results = member_status_calculation + return "" + end + + private + + def member_status_calcuation # Begin output buffer message = "" icon = "" flair = "" + rank = 0 # First status item is level case self.member_level.to_i @@ -133,22 +113,28 @@ class User < ActiveRecord::Base if self.payments.count > 0 then message = "Former Member (#{(DateTime.now - self.payments.last.date).to_i} days ago)" icon = :timeout + rank = 1 else message = "Not a Member" icon = :no + rank = 0 end when 10..24 message = "Volunteer" icon = :heart + rank = 100 when 25..49 message = member_level_string icon = :copper + rank = 250 when 50..99 message = member_level_string icon = :silver + rank = 500 when 100..999 message = member_level_string icon = :gold + rank = 1000 end # Second status item is payment status @@ -161,15 +147,17 @@ class User < ActiveRecord::Base flair = "-paid" else message = "Last Payment (#{(DateTime.now - self.payments.last.date).to_i} days ago)" + rank = rank/10 end + else + message = "No Payments Recorded" + rank = rank/10 end end - return "" + return [:message => message, :icon => icon, :flair => flair, :rank => rank] end - private - def send_new_user_email Rails.logger.info UserMailer.new_user_email(self).deliver end