Sha256: 19f33232c29c46e90de8d21357a369ee99281dffd3bddd58eff644250d27412c

Contents?: true

Size: 1.71 KB

Versions: 7

Compression:

Stored size: 1.71 KB

Contents

class Admin::CreditcardPaymentsController < Admin::BaseController
  before_filter :load_data
  before_filter :load_amount, :except => :country_changed
  resource_controller
  belongs_to :order
  ssl_required

  update do
    wants.html { redirect_to edit_object_url }
  end

  def country_changed
  end
         
  def capture       
    if @creditcard_payment.can_capture?      
      creditcard = @creditcard_payment.creditcard
      authorization = @creditcard_payment.find_authorization
      Creditcard.transaction do 
        creditcard.order.state_events.create(:name => t('pay'), :user => current_user, :previous_state => creditcard.order.state)
        creditcard.capture(authorization)
        @creditcard_payment.amount = authorization.amount
        @creditcard_payment.save
      end
      flash[:notice] = t("credit_card_capture_complete")
    else  
      flash[:error] = t("unable_to_capture_credit_card")    
    end 
    redirect_to edit_object_url
  end  
  
  private
  def load_data 
    load_object
    @selected_country_id = params[:payment_presenter][:address_country_id].to_i if params.has_key?('payment_presenter')
    @selected_country_id ||= @order.bill_address.country_id if @order and @order.bill_address
    @selected_country_id ||= Spree::Config[:default_country_id]
 
    @states = State.find_all_by_country_id(@selected_country_id, :order => 'name')  
    @countries = Country.find(:all)
  end

  def load_amount
    @amount = params[:amount] || @order.total
  end
           
  def build_object
    @object ||= end_of_association_chain.send parent? ? :build : :new, object_params
    @object.creditcard = Creditcard.new(:address => @object.order.bill_address.clone) unless @object.creditcard
    @object
  end
  
end

Version data entries

7 entries across 7 versions & 2 rubygems

Version Path
kdmny-spree-0.0.1 app/controllers/admin/creditcard_payments_controller.rb
spree-0.8.4 app/controllers/admin/creditcard_payments_controller.rb
spree-0.8.5 app/controllers/admin/creditcard_payments_controller.rb
spree-0.8.0 app/controllers/admin/creditcard_payments_controller.rb
spree-0.8.1 app/controllers/admin/creditcard_payments_controller.rb
spree-0.8.2 app/controllers/admin/creditcard_payments_controller.rb
spree-0.8.3 app/controllers/admin/creditcard_payments_controller.rb