Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- def create
- @ticket = current_user.tickets.build(ticket_params)
- @ticket.to_be_returned = false
- @event = Event.find(@ticket.event_id)
- if @event.event_date.today?
- @ticket.price = 1.2 * @event.price_high
- else
- @ticket.price = (@event.price_low + (DateTime.now..@event.event_date).count*(@event.price_high-@event.price_low)/30).round(2)
- end
- sum = 0
- if @ticket.count!=nil
- current_user.tickets.each do |t|
- if t.event_id==@ticket.event_id
- sum+=t.count
- end
- end
- end
- event = Event.find(@ticket.event_id)
- respond_to do |format|
- if @ticket.count!=nil && @ticket.count>event.available_tickets
- flash[:alert] = "Pozostało tylko " + (event.available_tickets).to_s + " wolnych miejsc na wydarzeniu."
- format.html { render :action => 'new', :id => @ticket.event_id }
- format.json { render json: @ticket.errors, status: :unprocessable_entity }
- elsif sum > 5
- 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."
- format.html { render :action => 'new', :id => @ticket.event_id }
- format.json { render json: @ticket.errors, status: :unprocessable_entity }
- elsif @ticket.count && @ticket.price > current_user.cash
- flash[:alert] = "Brak wystarczających srodków na koncie."
- format.html { render :action => 'new', :id => @ticket.event_id }
- format.json { render json: @ticket.errors, status: :unprocessable_entity }
- else
- if @ticket.save
- current_user.cash -=@ticket.price
- current_user.save
- event.available_tickets -=@ticket.count
- event.save
- format.html { redirect_to :action => 'index', notice: 'Ticket was successfully created.' }
- format.json { render :show, status: :created, location: @ticket }
- else
- format.html { render :action => 'new', :id => @ticket.event_id }
- format.json { render json: @ticket.errors, status: :unprocessable_entity }
- end
- end
- end
- end
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement