Sha256: 2fbef83e48c419d56b35a0f4b19bc9b2274c37d000a16bf4e280ac0411ceaffc
Contents?: true
Size: 1.26 KB
Versions: 1
Compression:
Stored size: 1.26 KB
Contents
class Serve < ApplicationRecord attr_accessor :price serialize :extra, Array belongs_to :deal, polymorphic: true, optional: true has_many :charges, class_name: 'ServeCharge', dependent: :delete_all has_many :serve_goods, dependent: :delete_all scope :verified, -> { where(verified: true) } scope :special, -> { where(verified: true, overall: false) } scope :overall, -> { where(verified: true, overall: true) } scope :default, -> { where(verified: true, default: true) } scope :for_sale, -> { where(verified: true, default: false) } enum scope: { 'total': 'total', 'single': 'single' } def compute_price(amount, extra_hash = {}) extra_hash.stringify_keys! if self.contain_max range = { 'min-lte': amount.to_d, 'max-gte': amount.to_d } else range = { 'min-lte': amount.to_d, 'max-gt': amount.to_d } end query = range.merge(extra_hash.slice(*extra)) charge = self.charges.default_where(query).first if charge charge.subtotal = charge.final_price(amount) charge.default_subtotal = charge.subtotal else charge = self.charges.build charge.subtotal = 0 end charge end end unless RailsTrade.config.disabled_models.include?('Serve') # :start_at, :datetime # :finish_at, :datetime
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
rails_trade-0.0.1 | app/models/rails_trade/serve.rb |