Class: Spree::Admin::PaymentsController
- Inherits:
-
ResourceController
- Object
- BaseController
- BaseController
- ResourceController
- Spree::Admin::PaymentsController
- Includes:
- OrderBreadcrumbConcern
- Defined in:
- app/controllers/spree/admin/payments_controller.rb
Constant Summary
Constants included from LocaleConcern
LocaleConcern::ADMIN_LOCALE_COOKIE
Instance Method Summary collapse
Methods inherited from ResourceController
belongs_to, #destroy, #edit, #index, #update
Methods included from TableConcern
#apply_table_sort, #custom_sort_active?, #process_table_query_state, #table, #table_key, #table_registered?
Methods included from BreadcrumbConcern
#add_breadcrumb_icon_instance_var
Instance Method Details
#capture ⇒ Object
60 61 62 63 64 65 66 67 68 69 70 71 72 |
# File 'app/controllers/spree/admin/payments_controller.rb', line 60 def capture if @payment.capture! flash[:success] = Spree.t(:payment_updated) # move order to next state if possible while @order.next; end else flash[:error] = @payment.errors..to_sentence end redirect_to location_after_save rescue Spree::Core::GatewayError => ge flash[:error] = ge..to_s redirect_to location_after_save end |
#create ⇒ Object
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 49 50 51 52 53 54 55 56 57 58 |
# File 'app/controllers/spree/admin/payments_controller.rb', line 22 def create invoke_callbacks(:create, :before) @order.transaction do @object.attributes = permitted_resource_params @object.build_source @object.save! if @order.billing_address.nil? @order.clone_shipping_address @order.save! end end @object.process! # Transition order as far as it will go. while @order.next; end # If "@order.next" didn't trigger payment processing already (e.g. if the order was # already complete) then trigger it manually now invoke_callbacks(:create, :after) redirect_to location_after_save rescue Spree::Core::GatewayError => e @object.failure if defined?(@object) && @object.persisted? invoke_callbacks(:create, :fails) flash[:error] = e..to_s render :new, status: :unprocessable_content rescue ActiveRecord::RecordInvalid => _e @object.failure if defined?(@object) && @object.persisted? invoke_callbacks(:create, :fails) flash[:error] = @object.errors..to_sentence render :new, status: :unprocessable_content end |
#new ⇒ Object
11 12 13 14 15 16 17 18 19 20 |
# File 'app/controllers/spree/admin/payments_controller.rb', line 11 def new payment_method = params[:payment_method_id] ? @payment_methods.find { |pm| pm.id.to_s == params[:payment_method_id].to_s } : @payment_methods.first @payment = @order.payments.build(payment_method: payment_method) if payment_method.try(:source_required?) source_class = (payment_method.try(:payment_source_class) || Spree::CreditCard) @payment.source = source_class&.new end end |
#void ⇒ Object
74 75 76 77 78 79 80 81 82 83 84 |
# File 'app/controllers/spree/admin/payments_controller.rb', line 74 def void if @payment.void_transaction! flash[:success] = Spree.t(:payment_updated) else flash[:error] = Spree.t(:cannot_perform_operation) end redirect_to location_after_save rescue Spree::Core::GatewayError => ge flash[:error] = ge..to_s redirect_to location_after_save end |