Sha256: 6aa2d97a5dee1c89ba8f627583bd5f7309f348d9779b328279469af3280141a2

Contents?: true

Size: 1.23 KB

Versions: 5

Compression:

Stored size: 1.23 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

  paginates_per 10

  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         not null
#  updated_at   :datetime         not null
#

Version data entries

5 entries across 5 versions & 1 rubygems

Version Path
enju_purchase_request-0.1.0.pre9 app/models/order_list.rb
enju_purchase_request-0.1.0.pre8 app/models/order_list.rb
enju_purchase_request-0.1.0.pre7 app/models/order_list.rb
enju_purchase_request-0.1.0.pre6 app/models/order_list.rb
enju_purchase_request-0.1.0.pre5 app/models/order_list.rb