bus_booking/app/controllers/admin/bus_bookings_controller.rb

103 lines
2.3 KiB
Ruby

class Admin::BusBookingsController < OrbitMemberAppController
layout "bus_booking"
def index
@buses = Bus.all.desc(:departure_time).page(params[:page]).per(15)
end
def edit
@bus = Bus.find(params[:id])
end
def new
@bus = Bus.new
end
def destroy
bus = Bus.find(params[:id])
bus.destroy
redirect_to admin_bus_bookings_path
end
def update
bus = Bus.find(params[:id])
bus.update_attributes(bus_params)
redirect_to admin_bus_bookings_path
end
def create
bus = Bus.new(bus_params)
bus.save
redirect_to admin_bus_bookings_path
end
def duplicate
bus = Bus.find(params[:bus_booking_id])
newbus = bus.clone
newbus.created_at = Time.now
newbus.updated_at = Time.now
newbus.created_by = current_user.id.to_s
d = DateTime.now
d = d.change(:hour => newbus.departure_time.strftime("%H").to_i, :min => newbus.departure_time.strftime("%M").to_i)
newbus.departure_time = d
d = DateTime.now
d = d.change(:hour => newbus.reservation_end_time.strftime("%H").to_i, :min => newbus.reservation_end_time.strftime("%M").to_i)
newbus.reservation_end_time = d
newbus.save
redirect_to admin_bus_bookings_path
end
def show
@bus = Bus.find(params[:id])
end
def cancel
booking = Booking.find(params[:bus_booking_id]) rescue nil
booking.destroy if !booking.nil?
redirect_to admin_bus_bookings_path
end
def export
@bus = Bus.find(params[:bus_booking_id])
filename = "#{@bus.bus_route}_#{@bus.departure_time.strftime("%Y_%m_%d_%H_%M")}"
respond_to do |format|
format.xlsx {
response.headers['Content-Disposition'] = 'attachment; filename="' + filename + '.xlsx"'
}
end
end
def reserve
@bus_booking = Booking.new
@bus = Bus.find(params[:bus_booking_id])
@already_booked = Booking.where(:user_id => current_user.id.to_s, :bus_id => @bus.id)
@already_reserved = (@already_booked.count > 0) rescue false
end
def bookbus
bookbus = Booking.new(book_params)
bookbus.save
redirect_to admin_bus_bookings_path
end
def deletebookings
bookings = Booking.find(params[:bookings]) rescue nil
if !bookings.nil?
bookings.each do |booking|
booking.destroy
end
end
render :json => {"succes" => true}.to_json
end
private
def bus_params
params.require(:bus).permit!
end
def book_params
params.require(:booking).permit!
end
end