Class: Spree::Admin::TicketTransfersController

Inherits:
ResourceController
  • Object
show all
Defined in:
app/controllers/spree/admin/ticket_transfers_controller.rb

Instance Method Summary collapse

Instance Method Details

#cancelObject



20
21
22
23
24
25
26
27
28
29
30
31
32
33
# File 'app/controllers/spree/admin/ticket_transfers_controller.rb', line 20

def cancel
  @ticket_transfer = model_class.find(params[:id])
  result = SpreeCmCommissioner::TicketTransfers::Cancel.call(
    ticket_transfer: @ticket_transfer,
    acting_user: try_spree_current_user
  )

  if result.success?
    flash[:success] = 'Ticket transfer has been cancelled' # rubocop:disable Rails/I18nLocaleTexts
  else
    flash[:error] = result.error.value
  end
  redirect_to admin_ticket_transfer_path(@ticket_transfer)
end

#indexObject



6
7
8
9
# File 'app/controllers/spree/admin/ticket_transfers_controller.rb', line 6

def index
  @search = model_class.includes(:from_user, :to_user, :from_guest).ransack(params[:q])
  @ticket_transfers = @search.result.order(created_at: :desc).page(params[:page]).per(15)
end

#showObject



11
12
13
# File 'app/controllers/spree/admin/ticket_transfers_controller.rb', line 11

def show
  @ticket_transfer = model_class.includes(:order, from_guest: [:event, { line_item: :order }]).find(params[:id])
end

#state_changesObject



15
16
17
18
# File 'app/controllers/spree/admin/ticket_transfers_controller.rb', line 15

def state_changes
  @ticket_transfer = model_class.find(params[:id])
  @state_changes = @ticket_transfer.state_changes.includes(:user).order(created_at: :desc)
end

#update_settlement_statusObject



35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
# File 'app/controllers/spree/admin/ticket_transfers_controller.rb', line 35

def update_settlement_status
  @ticket_transfer = model_class.find(params[:id])
  new_status = params[:settlement_status]

  unless @ticket_transfer.purchase? && @ticket_transfer.completed?
    flash[:error] = 'Settlement status can only be updated for completed purchase transfers' # rubocop:disable Rails/I18nLocaleTexts
    redirect_to admin_ticket_transfer_path(@ticket_transfer)
    return
  end

  if @ticket_transfer.update(settlement_status: new_status)
    @ticket_transfer.log_settlement_status_changes(user_id: try_spree_current_user&.id)
    flash[:success] = "Settlement status updated to #{new_status}"
  else
    flash[:error] = @ticket_transfer.errors.full_messages.to_sentence.presence || 'Failed to update settlement status'
  end
  redirect_to admin_ticket_transfer_path(@ticket_transfer)
end