Sha256: fd00781df171fbb7fe64052e271ab2e6f52bf29eee6653d250ebc7e679d7777b

Contents?: true

Size: 1.62 KB

Versions: 30

Compression:

Stored size: 1.62 KB

Contents

class Provider < ActiveRecord::Base
  include Redis::Objects::RMap

  has_rmap({:id => lambda{|x| x.to_s}}, :title)
  has_paper_trail

  mount_uploader :icon, IconUploader

  after_save do
    TerminalProfile.invalidate_all_cached_providers!
  end

  after_destroy do
    TerminalProfile.invalidate_all_cached_providers!
  end

  #
  # RELATIONS
  #
  belongs_to :provider_profile
  belongs_to :provider_group
  belongs_to :provider_receipt_template
  has_many   :provider_gateways
  has_many   :gateways, :through => :provider_gateways
  has_many   :payments, :order => 'id DESC'
  has_many   :commissions, :through => :provider_profile
  has_many   :limits, :through => :provider_profile
  has_many   :provider_fields, :dependent => :destroy, :order => :priority
  has_many   :terminal_profile_providers, :dependent => :destroy, :order => :priority
  has_many   :terminal_profile_promotions, :dependent => :destroy, :order => :priority

  accepts_nested_attributes_for :provider_gateways, :allow_destroy => true
  accepts_nested_attributes_for :provider_fields, :allow_destroy => true

  scope :gateway_ids_eq, lambda{|x| includes(:gateways).where(:gateways => {:id => x})}
  search_method :gateway_ids_eq

  scope :after, lambda{|x|
    x.blank? ? scoped
             : where(arel_table[:updated_at].gt x)
  }

  #
  # VALIDATIONS
  #
  validates :provider_profile, :presence => true
  validates :provider_group, :presence => true
  validates :keyword, :presence => true
  validates :keyword, :uniqueness => true

  #
  # METHODS
  #
  def fields_dump
    provider_fields.as_json(:only => [:keyword, :title, :kind, :mask, :values, :priority])
  end
end

Version data entries

30 entries across 30 versions & 1 rubygems

Version Path
smartkiosk-server-0.11.10 app/models/provider.rb
smartkiosk-server-0.11.9 app/models/provider.rb
smartkiosk-server-0.11.8 app/models/provider.rb
smartkiosk-server-0.11.7 app/models/provider.rb
smartkiosk-server-0.11.6 app/models/provider.rb
smartkiosk-server-0.11.5 app/models/provider.rb
smartkiosk-server-0.11.4 app/models/provider.rb
smartkiosk-server-0.11.3 app/models/provider.rb
smartkiosk-server-0.11.2 app/models/provider.rb
smartkiosk-server-0.11.1 app/models/provider.rb
smartkiosk-server-0.11 app/models/provider.rb
smartkiosk-server-0.10.19 app/models/provider.rb
smartkiosk-server-0.10.18 app/models/provider.rb
smartkiosk-server-0.10.17 app/models/provider.rb
smartkiosk-server-0.10.16 app/models/provider.rb
smartkiosk-server-0.10.15 app/models/provider.rb
smartkiosk-server-0.10.14 app/models/provider.rb
smartkiosk-server-0.10.13 app/models/provider.rb
smartkiosk-server-0.10.12 app/models/provider.rb
smartkiosk-server-0.10.11 app/models/provider.rb