Advertisement
Guest User

Untitled

a guest
Jan 19th, 2018
275
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Rails 2.20 KB | None | 0 0
  1. def create
  2.     @ticket = current_user.tickets.build(ticket_params)
  3.     @ticket.to_be_returned = false
  4.  
  5.     @event = Event.find(@ticket.event_id)
  6.     if @event.event_date.today?
  7.       @ticket.price = 1.2 * @event.price_high
  8.     else
  9.       @ticket.price = (@event.price_low + (DateTime.now..@event.event_date).count*(@event.price_high-@event.price_low)/30).round(2)
  10.     end
  11.  
  12.     sum = 0
  13.     if @ticket.count!=nil
  14.         current_user.tickets.each do |t|
  15.           if t.event_id==@ticket.event_id
  16.               sum+=t.count
  17.           end
  18.         end
  19.     end
  20.  
  21.     event = Event.find(@ticket.event_id)
  22.  
  23.     respond_to do |format|
  24.       if @ticket.count!=nil && @ticket.count>event.available_tickets
  25.         flash[:alert] = "Pozostało tylko " + (event.available_tickets).to_s + " wolnych miejsc na wydarzeniu."
  26.         format.html { render :action => 'new', :id => @ticket.event_id }
  27.         format.json { render json: @ticket.errors, status: :unprocessable_entity }
  28.       elsif sum > 5
  29.         flash[:alert] = "Maksymalna liczba wszystkich biletów zakupiona przez użytkownika na pojedyńcze wydarzenie to 5 sztuk. Dotychczas użytkownik zakupił już " + (sum - @ticket.count).to_s + " sztuk."
  30.         format.html { render :action => 'new', :id => @ticket.event_id }
  31.         format.json { render json: @ticket.errors, status: :unprocessable_entity }
  32.       elsif @ticket.count && @ticket.price > current_user.cash
  33.         flash[:alert] = "Brak wystarczających srodków na koncie."
  34.         format.html { render :action => 'new', :id => @ticket.event_id }
  35.         format.json { render json: @ticket.errors, status: :unprocessable_entity }
  36.       else
  37.         if @ticket.save
  38.           current_user.cash -=@ticket.price
  39.           current_user.save
  40.  
  41.           event.available_tickets -=@ticket.count
  42.           event.save
  43.  
  44.           format.html { redirect_to :action => 'index', notice: 'Ticket was successfully created.' }
  45.           format.json { render :show, status: :created, location: @ticket }
  46.         else
  47.           format.html { render :action => 'new', :id => @ticket.event_id }
  48.           format.json { render json: @ticket.errors, status: :unprocessable_entity }
  49.         end
  50.       end
  51.     end
  52.   end
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement