Sha256: 394cbda293e2fe40d8759f5a15f28fa6064ba397465ca65dbe978ef0a863c022
Contents?: true
Size: 1.53 KB
Versions: 2
Compression:
Stored size: 1.53 KB
Contents
require 'active_support/concern' module Canmoia module Order extend ActiveSupport::Concern included do include ::Workflow include CalculationMethods # extend Notification # Fields field :total, type: Float field :state, type: Symbol # Relations embeds_many :items has_one :client, :class_name => "::User" # States workflow_column :state workflow do state :opened do event :close , transitions_to: :reviewing event :cancel, transitions_to: :canceled end state :reviewing do event :accept, transitions_to: :accepted event :reject, transitions_to: :rejected event :cancel, transitions_to: :canceled end state :accepted do event :complete, transitions_to: :completed event :cancel , transitions_to: :canceled end state :rejected do event :complete, transitions_to: :completed event :cancel , transitions_to: :canceled end state :completed state :canceled end end module CalculationMethods def total @total ||= super or items.sum(&:value) end end # - on :open , close: :reviewing, cancel: :canceled, notify: :responsible # V on :review, reject: :rejected, accept: :accepted # - on :accept, notify: :buyer # - on :reject, notify: :buyer # - on :cancel, notify: [:buyer, via: :email] } # - on :finish, notify: [:buyer, via: :email] } end end
Version data entries
2 entries across 2 versions & 1 rubygems
Version | Path |
---|---|
canmoia-0.0.2 | lib/canmoia/concerns/order.rb~ |
canmoia-0.0.1 | lib/canmoia/concerns/order.rb~ |