Sha256: 85850fcc14feedc77a5a893534cba8bab123cc1a95736eb6bb0b204fde7cebb5

Contents?: true

Size: 864 Bytes

Versions: 28

Compression:

Stored size: 864 Bytes

Contents

module Valuation

  #
  # Anything with a :lifetime_value column and has_many orders can use this module.
  #
  module LifetimeValue
    extend ActiveSupport::Concern
    
    #
    # Includers can define a method called lifetime_orders which
    # will override this method.
    #
    # lifetime_orders should return the orders that this model wants to include in the calculation
    #  
    def lifetime_orders
      orders
    end
    
    #
    # Calculate the lifetime value of this model by summing the price of all items 
    # attached to orders attached to this person.  Save the value in lifetime_value.
    # Return the value
    #
    def calculate_lifetime_value
      self.lifetime_value = Item.where(:order_id => self.lifetime_orders).sum(Item.total_price_sql_sum).to_i
      self.save(:validate => false)
      self.lifetime_value
    end
  end
end

Version data entries

28 entries across 28 versions & 1 rubygems

Version Path
artfully_ose-1.2.0 app/models/valuation/lifetime_value.rb
artfully_ose-1.2.0.beta.1 app/models/valuation/lifetime_value.rb
artfully_ose-1.2.0.alpha.2 app/models/valuation/lifetime_value.rb
artfully_ose-1.2.0.alpha.1 app/models/valuation/lifetime_value.rb
artfully_ose-1.2.0.pre.27 app/models/valuation/lifetime_value.rb
artfully_ose-1.2.0.pre.26 app/models/valuation/lifetime_value.rb
artfully_ose-1.2.0.pre.24 app/models/valuation/lifetime_value.rb
artfully_ose-1.2.0.pre.23 app/models/valuation/lifetime_value.rb
artfully_ose-1.2.0.pre.21 app/models/valuation/lifetime_value.rb
artfully_ose-1.2.0.pre.20 app/models/valuation/lifetime_value.rb
artfully_ose-1.2.0.pre.19 app/models/valuation/lifetime_value.rb
artfully_ose-1.2.0.pre.18 app/models/valuation/lifetime_value.rb
artfully_ose-1.2.0.pre.17 app/models/valuation/lifetime_value.rb
artfully_ose-1.2.0.pre.16 app/models/valuation/lifetime_value.rb
artfully_ose-1.2.0.pre.15 app/models/valuation/lifetime_value.rb
artfully_ose-1.2.0.pre.12 app/models/valuation/lifetime_value.rb
artfully_ose-1.2.0.pre.11 app/models/valuation/lifetime_value.rb
artfully_ose-1.2.0.pre.10 app/models/valuation/lifetime_value.rb
artfully_ose-1.2.0.pre.9 app/models/valuation/lifetime_value.rb
artfully_ose-1.2.0.pre.8 app/models/valuation/lifetime_value.rb