X-Git-Url: https://irasnyder.com/gitweb/?a=blobdiff_plain;f=app%2Fmodels%2Fcustomer.rb;h=b9e6ab9da15da1e1a6544c8f0abde078c4e0b178;hb=refs%2Ftags%2Fturned-in;hp=e56eafe0151a16c8443ff8a9b86e9983d77a0618;hpb=9218748c58d552432e7bd4a34383589eb17ac331;p=cs356-p2-videostore.git diff --git a/app/models/customer.rb b/app/models/customer.rb index e56eafe..b9e6ab9 100644 --- a/app/models/customer.rb +++ b/app/models/customer.rb @@ -1,8 +1,9 @@ class Customer < ActiveRecord::Base has_many :coitems - has_many :bitems has_many :merchandise_purchases has_many :rentable_purchases + has_many :bonus_purchases + has_many :late_fee_purchases validates_presence_of :name, :email, :phone, :address validates_numericality_of :debt @@ -33,10 +34,38 @@ class Customer < ActiveRecord::Base return game_count end + def overdue_videos + coitems = Coitem.find_all_by_customer_id(id) + overdue_video_count = 0 + + for item in coitems + if item.rentable.class == Video and item.overdue? + overdue_video_count += 1 + end + end + + return overdue_video_count + end + + def overdue_games + coitems = Coitem.find_all_by_customer_id(id) + overdue_game_count = 0 + + for item in coitems + if item.rentable.class == Game and item.overdue? + overdue_game_count += 1 + end + end + + return overdue_game_count + end + protected def validate errors.add(:debt, "should be non-negative") if debt.nil? || debt < 0.00 + errors.add(:email, "is invalid") unless email =~ /.+@.+\..+/ + errors.add(:phone, "has invalid format, use XXX-XXX-XXXX") unless phone =~ /^\d{3}-\d{3}-\d{4}$/ end end