Module: RailsTrade::Order
- Extended by:
- ActiveSupport::Concern
- Includes:
- RailsTrade::Ordering::Payment, RailsTrade::Ordering::Refund
- Included in:
- Order
- Defined in:
- app/models/rails_trade/order.rb
Instance Method Summary collapse
- #amount_money ⇒ Object
- #compute_promote ⇒ Object
- #compute_received_amount ⇒ Object
- #confirm_ordered! ⇒ Object
- #metering_attributes ⇒ Object
- #subject ⇒ Object
- #sync_from_cart ⇒ Object
- #user_name ⇒ Object
Instance Method Details
#amount_money ⇒ Object
69 70 71 |
# File 'app/models/rails_trade/order.rb', line 69 def amount_money amounto_money(self.currency) end |
#compute_promote ⇒ Object
73 74 |
# File 'app/models/rails_trade/order.rb', line 73 def compute_promote end |
#compute_received_amount ⇒ Object
92 93 94 95 96 |
# File 'app/models/rails_trade/order.rb', line 92 def compute_received_amount _received_amount = self.payment_orders.where(state: 'confirmed').sum(:check_amount) _refund_amount = self.refunds.where.not(state: 'failed').sum(:total_amount) _received_amount - _refund_amount end |
#confirm_ordered! ⇒ Object
88 89 90 |
# File 'app/models/rails_trade/order.rb', line 88 def confirm_ordered! self.trade_items.each(&:confirm_ordered!) end |
#metering_attributes ⇒ Object
76 77 78 |
# File 'app/models/rails_trade/order.rb', line 76 def metering_attributes attributes.slice 'quantity', 'amount' end |
#subject ⇒ Object
61 62 63 |
# File 'app/models/rails_trade/order.rb', line 61 def subject trade_items.map { |oi| oi.good&.name || 'Goods' }.join(', ') end |
#sync_from_cart ⇒ Object
80 81 82 83 84 85 86 |
# File 'app/models/rails_trade/order.rb', line 80 def sync_from_cart cart.trade_items.checked.default_where(myself: myself).update_all(trade_type: self.class.name, trade_id: self.id) cart.trade_promotes.update_all(trade_type: self.class.name, trade_id: self.id) self.compute_amount self.save end |
#user_name ⇒ Object
65 66 67 |
# File 'app/models/rails_trade/order.rb', line 65 def user_name user&.name.presence || "#{user&.id}" end |