Class: Comable::Order
- Inherits:
-
ActiveRecord::Base
- Object
- ActiveRecord::Base
- Comable::Order
- Includes:
- Checkout, Morrisable, Ransackable
- Defined in:
- app/models/comable/order.rb,
app/models/comable/order/morrisable.rb
Defined Under Namespace
Modules: Morrisable
Instance Method Summary collapse
- #complete ⇒ Object
- #complete! ⇒ Object
- #completed? ⇒ Boolean
-
#completing? ⇒ Boolean
TODO: switch to state_machine.
-
#current_item_total_price ⇒ Object
時価商品合計を取得.
-
#current_shipment_fee ⇒ Object
時価送料を取得.
-
#current_total_price ⇒ Object
時価合計を取得.
-
#item_total_price ⇒ Object
売価商品合計を取得.
- #stocked_items ⇒ Object (also: #soldout_stocks)
Methods included from Checkout
#delivery_required?, #orderer_required?, #payment_required?, #shipment_required?, #stated?
Instance Method Details
#complete ⇒ Object
35 36 37 38 39 40 41 |
# File 'app/models/comable/order.rb', line 35 def complete ActiveRecord::Base.transaction do run_callbacks :complete do save_to_complete.tap { |completed| self.completed_at = nil unless completed } end end end |
#complete! ⇒ Object
43 44 45 46 47 |
# File 'app/models/comable/order.rb', line 43 def complete! Rails.logger.debug '[DEPRECATED] #complete! is deprecated. Please use #next_state method.' fail Comable::InvalidOrder unless complete self end |
#completed? ⇒ Boolean
49 50 51 |
# File 'app/models/comable/order.rb', line 49 def completed? !completed_at.nil? end |
#completing? ⇒ Boolean
TODO: switch to state_machine
54 55 56 |
# File 'app/models/comable/order.rb', line 54 def completing? completed_at && completed_at_was.nil? end |
#current_item_total_price ⇒ Object
時価商品合計を取得
66 67 68 |
# File 'app/models/comable/order.rb', line 66 def current_item_total_price order_details.to_a.sum(&:current_subtotal_price) end |
#current_shipment_fee ⇒ Object
時価送料を取得
76 77 78 |
# File 'app/models/comable/order.rb', line 76 def current_shipment_fee shipment_method.try(:fee) || 0 end |
#current_total_price ⇒ Object
時価合計を取得
81 82 83 |
# File 'app/models/comable/order.rb', line 81 def current_total_price current_item_total_price + current_shipment_fee end |
#item_total_price ⇒ Object
売価商品合計を取得
71 72 73 |
# File 'app/models/comable/order.rb', line 71 def item_total_price order_details.to_a.sum(&:subtotal_price) end |
#stocked_items ⇒ Object Also known as: soldout_stocks
58 59 60 |
# File 'app/models/comable/order.rb', line 58 def stocked_items order_details.to_a.select(&:unstocked?) end |