Class: Spree::Admin::PaymentsController
- Inherits:
-
BaseController
- Object
- BaseController
- BaseController
- Spree::Admin::PaymentsController
- Defined in:
- app/controllers/spree/admin/payments_controller.rb
Instance Method Summary collapse
Instance Method Details
#create ⇒ Object
20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 |
# File 'app/controllers/spree/admin/payments_controller.rb', line 20 def create @payment = @order.payments.build(object_params) if @payment.payment_method.is_a?(Spree::Gateway) && @payment.payment_method.payment_profiles_supported? && params[:card].present? and params[:card] != 'new' @payment.source = CreditCard.find_by_id(params[:card]) end begin unless @payment.save redirect_to admin_order_payments_path(@order) return end if @order.completed? @payment.process! flash[:success] = (@payment, :successfully_created) else #This is the first payment (admin created order) until @order.completed? @order.next! end flash[:success] = Spree.t(:new_order_completed) end redirect_to admin_order_payments_path(@order) rescue Spree::Core::GatewayError => e flash[:error] = "#{e.}" redirect_to new_admin_order_payment_path(@order) end end |
#fire ⇒ Object
50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 |
# File 'app/controllers/spree/admin/payments_controller.rb', line 50 def fire return unless event = params[:e] and @payment.payment_source # Because we have a transition method also called void, we do this to avoid conflicts. event = "void_transaction" if event == "void" if @payment.send("#{event}!") flash[:success] = Spree.t(:payment_updated) else flash[:error] = Spree.t(:cannot_perform_operation) end rescue Spree::Core::GatewayError => ge flash[:error] = "#{ge.}" ensure redirect_to admin_order_payments_path(@order) end |
#index ⇒ Object
11 12 13 14 |
# File 'app/controllers/spree/admin/payments_controller.rb', line 11 def index @payments = @order.payments redirect_to new_admin_order_payment_url(@order) if @payments.empty? end |
#new ⇒ Object
16 17 18 |
# File 'app/controllers/spree/admin/payments_controller.rb', line 16 def new @payment = @order.payments.build end |