avrj/eventTicketing

View on GitHub
app/views/shopping_cart/index.html.erb

Summary

Maintainability
Test Coverage
<div class="container">
  <div class="row">
    <div class="col-sm-12 col-md-10 col-md-offset-1">
      <h1 class="page-header">Shopping Cart</h1>

      <% if shopping_cart.tickets or shopping_cart.seats.count > 0 %>
          <table class="table table-hover">
            <thead>
            <tr>
              <th>Product</th>
              <th>Quantity</th>
              <th class="text-center">Price</th>
              <th class="text-center">Total</th>
              <th> </th>
            </tr>
            </thead>
            <tbody>
            <% if shopping_cart.seats.count > 0 %>
                <% shopping_cart.seats.each do |seat| %>
                    <tr>
                      <td class="col-sm-8 col-md-6">
                        <div class="media">
                          <div class="media-body">
                            <h4 class="media-heading"><%= seat.ticket.ticket_type.name %></h4>
                            <span>position at </span><span><strong><%= seat.table %>.<%= seat.seat %></strong></span>
                          </div>
                        </div>
                      </td>
                      <td class="col-sm-1 col-md-1" style="text-align: center">1</td>
                      <td class="col-sm-1 col-md-1 text-center"><%= number_to_currency(seat.ticket.ticket_type.price) %></td>
                      <td class="col-sm-1 col-md-1 text-center">
                        <strong><%= number_to_currency(seat.ticket.ticket_type.price) %></strong></td>
                      <td class="col-sm-1 col-md-1">
                        <%= button_to shopping_cart_delete_seat_path(id: seat), :confirm => 'Are you sure?', :method => :delete, class: 'btn btn-danger' do %>
                            <span class="glyphicon glyphicon-remove"></span> Remove
                        <% end %></td>
                    </tr>
                <% end %>
            <% end %>
            <% if shopping_cart.tickets %>
                <% shopping_cart.ticket_types.each do |ticket_type| %>
                    <tr>
                      <td class="col-sm-8 col-md-6">
                        <div class="media">
                          <div class="media-body">
                            <h4 class="media-heading"><%= ticket_type.name %></h4>
                          </div>
                        </div>
                      </td>
                      <%= form_tag shopping_cart_add_tickets_path do %>
                      <td class="col-sm-1 col-md-1" style="text-align: center">
                        <% if session[:tickets] %>
                            <input type="number" name="tickets[<%= ticket_type.id %>]" min="0" max="<%= ticket_type.free.count %>" value="<%= session[:tickets][ticket_type.id.to_s] %>" class="form-control"/>
                        <% else %>
                            <input type="number" name="tickets[<%= ticket_type.id %>]" min="0" max="<%= ticket_type.free.count %>" value="0" class="form-control"/>
                        <% end %>
                      </td>
                      <td class="col-sm-1 col-md-1 text-center"><%= number_to_currency(ticket_type.price) %></td>
                      <td class="col-sm-1 col-md-1 text-center">
                        <strong><%= number_to_currency(ticket_type.price * session[:tickets][ticket_type.id.to_s].to_i) %></strong>
                      </td>
                      <td class="col-sm-1 col-md-1">
                        <%= button_to shopping_cart_update_qty_path(id: ticket_type), :class => "btn btn-primary" do %>
                            <span class="glyphicon glyphicon-refresh"></span> Update qty
                        <% end %></td>
                          <% end %>
                    </tr>
                <% end %>
            <% end %>
            <tr>
              <td>  </td>
              <td>  </td>
              <td>  </td>
              <td><h3>Total</h3></td>
              <td class="text-right"><h3><strong><%= number_to_currency(shopping_cart.total_price) %></strong></h3>
              </td>
            </tr>
            <tr>
              <td>  </td>
              <td>  </td>
              <td>  </td>
              <td>
                <%= button_to shopping_cart_path, :confirm => 'Are you sure?', :method => :delete, class: 'btn btn-danger' do %>
                    <span class="glyphicon glyphicon-remove"></span> Empty Cart
                <% end %></td>
              <td>
                <%= button_to shopping_cart_checkout_path, :method => :get, class: 'btn btn-success' do %>
                    Checkout <span class="glyphicon glyphicon-play"></span>
                <% end %></td>
            </tr>
            </tbody>
          </table>
      <% else %>
          <p>Looks like the Shopping Cart is empty.</p>
      <% end %>
    </div>
  </div>
</div>

<%= render 'shopping_cart_steps' %>