Class: Dorsale::ExpenseGun::ExpensesController

Inherits:
ApplicationController show all
Defined in:
app/controllers/dorsale/expense_gun/expenses_controller.rb

Instance Method Summary collapse

Methods inherited from ApplicationController

#set_form_variables

Methods inherited from ApplicationController

#filters_jar, #scope

Instance Method Details

#copyObject



58
59
60
61
62
63
64
65
# File 'app/controllers/dorsale/expense_gun/expenses_controller.rb', line 58

def copy
  authorize @expense, :copy?

  @original = @expense
  @expense  = ::Dorsale::ExpenseGun::Expense::Copy.(@original)

  render :new
end

#createObject



24
25
26
27
28
29
30
31
32
33
34
35
# File 'app/controllers/dorsale/expense_gun/expenses_controller.rb', line 24

def create
  authorize model, :create?

  @expense ||= scope.new(expense_params_for_create)

  if @expense.save
    set_succress_flash
    redirect_to dorsale.expense_gun_expense_path(@expense)
  else
    render :new
  end
end

#editObject



41
42
43
44
45
# File 'app/controllers/dorsale/expense_gun/expenses_controller.rb', line 41

def edit
  authorize @expense, :update?

  @expense.expense_lines.build if @expense.expense_lines.empty?
end

#go_to_canceledObject



83
84
85
86
87
88
89
# File 'app/controllers/dorsale/expense_gun/expenses_controller.rb', line 83

def go_to_canceled
  authorize @expense, :go_to_canceled?

  @expense.update!(state: "canceled")
  set_succress_flash
  redirect_to dorsale.expense_gun_expenses_path
end

#go_to_paidObject



75
76
77
78
79
80
81
# File 'app/controllers/dorsale/expense_gun/expenses_controller.rb', line 75

def go_to_paid
  authorize @expense, :go_to_paid?

  @expense.update!(state: "paid")
  set_succress_flash
  redirect_to dorsale.expense_gun_expenses_path
end

#go_to_pendingObject



67
68
69
70
71
72
73
# File 'app/controllers/dorsale/expense_gun/expenses_controller.rb', line 67

def go_to_pending
  authorize @expense, :go_to_pending?

  @expense.update!(state: "pending")
  set_succress_flash
  redirect_to dorsale.expense_gun_expenses_path
end

#indexObject



5
6
7
8
9
10
11
12
13
14
15
# File 'app/controllers/dorsale/expense_gun/expenses_controller.rb', line 5

def index
  authorize model, :list?

  @expenses ||= scope.all.preload(:user, :expense_lines)
  @filters ||= Dorsale::ExpenseGun::SmallData::FilterForExpenses.new(filters_jar)
  @expenses = @filters.apply(@expenses)
  @expenses = Dorsale::ExpenseGun::ExpensesSorter.call(@expenses, params[:sort] ||= "-created_at")
  @expenses = @expenses.page(params[:page]).per(25)

  @total_payback = @expenses.limit(nil).to_a.sum(&:total_employee_payback)
end

#newObject



17
18
19
20
21
22
# File 'app/controllers/dorsale/expense_gun/expenses_controller.rb', line 17

def new
  authorize model, :create?

  @expense ||= scope.new
  @expense.expense_lines.build if @expense.expense_lines.empty?
end

#showObject



37
38
39
# File 'app/controllers/dorsale/expense_gun/expenses_controller.rb', line 37

def show
  authorize @expense, :read?
end

#updateObject



47
48
49
50
51
52
53
54
55
56
# File 'app/controllers/dorsale/expense_gun/expenses_controller.rb', line 47

def update
  authorize @expense, :update?

  if @expense.update(expense_params_for_update)
    set_succress_flash
    redirect_to dorsale.expense_gun_expense_path(@expense)
  else
    render :edit
  end
end