Class: MechanizeStore::Order

Inherits:
ActiveRecord::Base
  • Object
show all
Defined in:
app/models/mechanize_store/order.rb

Constant Summary collapse

STATUSES =
{
    1 => :accomplished,
    2 => :submited, 
    3 => :delivered,
    4 => :canceled
}

Class Method Summary collapse

Instance Method Summary collapse

Class Method Details

.statuses_collectionObject



31
32
33
34
35
36
37
38
39
# File 'app/models/mechanize_store/order.rb', line 31

def self.statuses_collection
    statuses_collection = []

    STATUSES.each_pair do |key, value|
        statuses_collection << [I18n.t(value, scope: "order_statuses"), key]
    end

    return statuses_collection
end

Instance Method Details

#after_createObject



45
46
47
48
49
50
# File 'app/models/mechanize_store/order.rb', line 45

def after_create
    p = self.payment
    p.value = self.total_value
    p.value += self.freight.value.to_f if self.freight
    p.save!
end

#confirm!Object



52
53
54
55
56
57
58
59
60
# File 'app/models/mechanize_store/order.rb', line 52

def confirm!
    Order.transaction do
        unless self.generated?           
            paid_in = self.payment.paid_in
            self.generated_at = paid_in ||= DateTime.now
            self.save
        end
    end
end

#generated?Boolean

Returns:

  • (Boolean)


62
63
64
# File 'app/models/mechanize_store/order.rb', line 62

def generated?
    return true if self.generated_at
end

#order_status_strObject



27
28
29
# File 'app/models/mechanize_store/order.rb', line 27

def order_status_str
    return I18n.t(STATUSES[self.order_status], scope: "order_statuses")
end

#set_defaultsObject



41
42
43
# File 'app/models/mechanize_store/order.rb', line 41

def set_defaults
    self.order_status = STATUSES.invert[:submited]
end

#total_valueObject



66
67
68
# File 'app/models/mechanize_store/order.rb', line 66

def total_value
    self.order_items.collect{|o| o.total }.inject(0){|a, b| a+b }
end