Class: HrLite::RegularizationRequestsController

Inherits:
ApplicationController show all
Defined in:
app/controllers/hr_lite/regularization_requests_controller.rb

Overview

Employee-side regularization tickets: propose punch times for a day you forgot to check in/out. Scoping to hr_current_user IS the authorization.

Instance Method Summary collapse

Instance Method Details

#cancelObject



22
23
24
25
26
27
28
# File 'app/controllers/hr_lite/regularization_requests_controller.rb', line 22

def cancel
  request = RegularizationRequest.where(user_id: hr_current_user.id).find(params[:id])
  request.cancel!(actor: hr_current_user)
  redirect_to regularization_requests_path, notice: "Ticket cancelled."
rescue ActiveRecord::RecordInvalid
  redirect_to regularization_requests_path, alert: "Only pending tickets can be cancelled."
end

#createObject



13
14
15
16
17
18
19
20
# File 'app/controllers/hr_lite/regularization_requests_controller.rb', line 13

def create
  @request = RegularizationRequest.new(request_params.merge(user_id: hr_current_user.id))
  if @request.save
    redirect_to regularization_requests_path, notice: "Ticket raised — an admin will review it."
  else
    render :new, status: :unprocessable_entity
  end
end

#indexObject



5
6
7
# File 'app/controllers/hr_lite/regularization_requests_controller.rb', line 5

def index
  @requests = paginate(RegularizationRequest.where(user_id: hr_current_user.id).recent_first)
end

#newObject



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

def new
  @request = RegularizationRequest.new(date: parse_date_param(params[:date]))
end