Sha256: 7c42a371e1ae6e4f1ff0c0dd543462b7a0e7c795bdca13f004499fa07f247ae5

Contents?: true

Size: 1.21 KB

Versions: 5

Compression:

Stored size: 1.21 KB

Contents

class OrderList < ActiveRecord::Base
  attr_accessible :user_id, :bookstore_id, :title, :note, :ordered_at
  scope :not_ordered, where(:state => 'pending')

  has_many :orders, :dependent => :destroy
  has_many :purchase_requests, :through => :orders
  belongs_to :user, :validate => true
  belongs_to :bookstore, :validate => true
  has_many :subscriptions

  validates_presence_of :title, :user, :bookstore
  validates_associated :user, :bookstore

  state_machine :initial => :pending do
    before_transition :pending => :ordered, :do => :order

    event :sm_order do
      transition :pending => :ordered
    end
  end

  def self.per_page
    10
  end

  def total_price
    self.purchase_requests.sum(:price)
  end

  def order
    self.ordered_at = Time.zone.now
  end

  def ordered?
    true if self.ordered_at.present?
  end
end

# == Schema Information
#
# Table name: order_lists
#
#  id           :integer         not null, primary key
#  user_id      :integer         not null
#  bookstore_id :integer         not null
#  title        :text            not null
#  note         :text
#  ordered_at   :datetime
#  deleted_at   :datetime
#  state        :string(255)
#  created_at   :datetime
#  updated_at   :datetime
#

Version data entries

5 entries across 5 versions & 1 rubygems

Version Path
enju_purchase_request-0.0.14 app/models/order_list.rb
enju_purchase_request-0.0.13 app/models/order_list.rb
enju_purchase_request-0.0.12 app/models/order_list.rb
enju_purchase_request-0.0.10 app/models/order_list.rb
enju_purchase_request-0.0.9 app/models/order_list.rb