Class: HrLite::Admin::CompOffRequestsController

Inherits:
BaseController show all
Defined in:
app/controllers/hr_lite/admin/comp_off_requests_controller.rb

Instance Method Summary collapse

Instance Method Details

#approveObject



13
14
15
16
17
18
19
20
21
22
# File 'app/controllers/hr_lite/admin/comp_off_requests_controller.rb', line 13

def approve
  request = CompOffRequest.find(params[:id])
  request.approve!(actor: hr_current_user, note: params[:decision_note].presence)
  redirect_to admin_comp_off_requests_path,
              notice: "Approved — #{request.credit_days.to_f} day credited."
rescue CompOffRequest::MissingCompOffType, CompOffRequest::StaleOffDay => e
  redirect_to admin_comp_off_request_path(request), alert: e.message
rescue ActiveRecord::RecordInvalid
  redirect_to admin_comp_off_request_path(request), alert: "Only pending requests can be decided."
end

#indexObject



4
5
6
7
# File 'app/controllers/hr_lite/admin/comp_off_requests_controller.rb', line 4

def index
  @status = params[:status].presence_in(CompOffRequest::STATUSES) || "pending"
  @requests = paginate(CompOffRequest.includes(:user).where(status: @status).recent_first)
end

#rejectObject



24
25
26
27
28
29
30
31
32
33
34
35
# File 'app/controllers/hr_lite/admin/comp_off_requests_controller.rb', line 24

def reject
  request = CompOffRequest.find(params[:id])
  note = params[:decision_note].to_s.strip
  if note.blank?
    return redirect_to admin_comp_off_request_path(request), alert: "A note is required to reject."
  end

  request.reject!(actor: hr_current_user, note: note)
  redirect_to admin_comp_off_requests_path, notice: "Request rejected."
rescue ActiveRecord::RecordInvalid
  redirect_to admin_comp_off_request_path(request), alert: "Only pending requests can be decided."
end

#showObject



9
10
11
# File 'app/controllers/hr_lite/admin/comp_off_requests_controller.rb', line 9

def show
  @request = CompOffRequest.find(params[:id])
end