Sha256: 5418334fa2c9a051368de96225f962c57224e1c173a3952f2395c3c4af30ca42
Contents?: true
Size: 1.41 KB
Versions: 3
Compression:
Stored size: 1.41 KB
Contents
class OrderList < ActiveRecord::Base include Statesman::Adapters::ActiveRecordQueries scope :not_ordered, -> {in_state(:not_ordered)} has_many :orders, dependent: :destroy has_many :purchase_requests, through: :orders belongs_to :user, validate: true belongs_to :bookstore, validate: true has_many :subscriptions after_create do transition_to(:not_ordered) end validates_presence_of :title, :user, :bookstore validates_associated :user, :bookstore attr_accessor :edit_mode paginates_per 10 def state_machine OrderListStateMachine.new(self, transition_class: OrderListTransition) end has_many :order_list_transitions, autosave: false delegate :can_transition_to?, :transition_to!, :transition_to, :current_state, to: :state_machine def total_price purchase_requests.sum(:price) end def order self.ordered_at = Time.zone.now end def ordered? true if current_state == 'ordered' end private def self.transition_class OrderListTransition end def self.initial_state :pending 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 # created_at :datetime # updated_at :datetime #
Version data entries
3 entries across 3 versions & 1 rubygems
Version | Path |
---|---|
enju_purchase_request-0.3.1 | app/models/order_list.rb |
enju_purchase_request-0.3.0.beta.1 | app/models/order_list.rb |
enju_purchase_request-0.2.1 | app/models/order_list.rb |