Class: Comable::Order

Inherits:
ActiveRecord::Base
  • Object
show all
Includes:
Checkout, Associations, Callbacks, Morrisable, Scopes, Validations, Ransackable
Defined in:
app/models/comable/order.rb,
app/models/comable/order/scopes.rb,
app/models/comable/order/callbacks.rb,
app/models/comable/order/morrisable.rb,
app/models/comable/order/validations.rb,
app/models/comable/order/associations.rb

Defined Under Namespace

Modules: Associations, Callbacks, Morrisable, Scopes, Validations

Instance Method Summary collapse

Methods included from Callbacks

#clone_addresses_from_user, #clone_addresses_to_user, #generate_code, #generate_guest_token

Methods included from Checkout

#allow_cancel?, #allow_return?, #delivery_required?, #orderer_required?, #payment_required?, #shipment_required?, #stated?

Instance Method Details

#can_ship?Boolean

Returns:

  • (Boolean)


106
107
108
# File 'app/models/comable/order.rb', line 106

def can_ship?
  shipment && shipment.ready? && paid? && completed?
end

#complete!Object Also known as: complete



26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
# File 'app/models/comable/order.rb', line 26

def complete!
  ActiveRecord::Base.transaction do
    run_callbacks :complete do
      self.attributes = current_attributes

      order_items.each(&:complete)
      save!

      payment.next_state! if payment
      shipment.next_state! if shipment

      touch(:completed_at)
    end
  end
end

#completed?Boolean

Returns:

  • (Boolean)


94
95
96
# File 'app/models/comable/order.rb', line 94

def completed?
  completed_at?
end

#current_item_total_priceObject

時価商品合計を取得



60
61
62
# File 'app/models/comable/order.rb', line 60

def current_item_total_price
  order_items.to_a.sum(&:current_subtotal_price)
end

#current_payment_feeObject

Get the current payment fee



75
76
77
# File 'app/models/comable/order.rb', line 75

def current_payment_fee
  payment.try(:fee) || 0
end

#current_shipment_feeObject

時価送料を取得



70
71
72
# File 'app/models/comable/order.rb', line 70

def current_shipment_fee
  shipment.try(:fee) || 0
end

#current_total_priceObject

時価合計を取得



80
81
82
# File 'app/models/comable/order.rb', line 80

def current_total_price
  current_item_total_price + current_payment_fee + current_shipment_fee
end

#inherit!(order) ⇒ Object

Inherit from other Order



85
86
87
88
89
90
91
92
# File 'app/models/comable/order.rb', line 85

def inherit!(order)
  self.bill_address ||= order.bill_address
  self.ship_address ||= order.ship_address
  self.payment ||= order.payment
  self.shipment ||= order.shipment

  stated?(order.state) ? save! : next_state!
end

#item_total_priceObject

売価商品合計を取得



65
66
67
# File 'app/models/comable/order.rb', line 65

def item_total_price
  order_items.to_a.sum(&:subtotal_price)
end

#paid?Boolean

Returns:

  • (Boolean)


98
99
100
# File 'app/models/comable/order.rb', line 98

def paid?
  payment ? payment.completed? : true
end

#restock!Object



45
46
47
48
# File 'app/models/comable/order.rb', line 45

def restock!
  order_items.each(&:restock)
  save!
end

#shipped?Boolean

Returns:

  • (Boolean)


102
103
104
# File 'app/models/comable/order.rb', line 102

def shipped?
  shipment ? shipment.completed? : true
end

#stocked_itemsObject



55
56
57
# File 'app/models/comable/order.rb', line 55

def stocked_items
  order_items.to_a.select(&:unstocked?)
end

#unstock!Object



50
51
52
53
# File 'app/models/comable/order.rb', line 50

def unstock!
  order_items.each(&:unstock)
  save!
end