Bike database interface
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

79 lines
2.0 KiB

class ClientsController < ApplicationController
before_action :set_client, only: [:edit, :update]
before_action :authenticate_user!
def index
@waiting_list = Client.waiting_list
@clients = Client.all.reverse_order
end
def new
@client = Client.new
end
def edit; end
def create
@client = Client.new(client_params)
if @client.save
redirect_to edit_client_url(@client), notice: 'Client was successfully created.'
else
render action: 'new'
end
end
def update
@client.update(client_params)
if @client.save
redirect_to edit_client_url(@client), notice: "Client was successfully updated"
else
render action: 'edit', notice: "Unable to update client"
end
end
def print_select
@clients = Client.includes(:bike, :agency)
.where.not(bike_id: nil, agency_id: nil)
.order(application_date: :desc)
.paginate(:page => params[:page], :per_page => 30)
end
def print_receipts
client_ids = print_params.map{|key, value| key if value == "1"}.compact
@clients = Client.find(client_ids)
end
private
def set_client
@client = Client.find(params[:id])
end
def client_params
params["client"]["application_date"] = Date.strptime(params["client"]["application_date"], '%m/%d/%Y') if params["client"]["application_date"].present?
params["client"]["pickup_date"] = Date.strptime(params["client"]["pickup_date"], '%m/%d/%Y') if params["client"]["pickup_date"].present?
params.require(:client).permit(
:first_name,
:last_name,
:application_date,
:gender,
:age,
:height,
:weight,
:helmet,
:lock,
:bike_id,
:will_pay,
:bike_type_requested,
:agency_id,
:notes,
:bike_fixed,
:application_voided,
:pickup_date,
:volunteer_at_pickup)
end
def print_params
params.require(:print_clients)
end
end