Commit 7eb1cfec authored by Chanelle Lunod's avatar Chanelle Lunod

initial commit

parents 9c21722b 6e675488
...@@ -5,6 +5,4 @@ ...@@ -5,6 +5,4 @@
@import "bootstrap"; @import "bootstrap";
#container { padding-top: 5rem; } #container { padding-top: 5rem; }
body { body {background-color: #d9e6f2;}
background-color: #d9e6f2;
}
...@@ -6,21 +6,21 @@ class OrdersController < ApplicationController ...@@ -6,21 +6,21 @@ class OrdersController < ApplicationController
def new def new
@product = Product.find_by(id: params[:product_id]) @product = Product.find_by(id: params[:product_id])
@order = @order.transactions.new @order = @order.transactions.new
end end
def create def create
@product = Product.find_by(id: params[:product_id]) @product = Product.find_by(id: params[:product_id])
@order = @order.transactions.new(supply_params) @order = @order.transactions.new(supply_params)
@order.mode = "Order" @order.mode = "Order"
@order.user_id = current_user.id @order.user_id = current_user.id
@order.quantity = @order.quantity * -1 @order.quantity = @order.quantity * -1
if @product.save if @product.save
redirect_to authenticated_user_root_path, notice: "You have successfully placed a new order" redirect_to authenticated_user_root_path, notice: "You have successfully placed a new order"
else else
render 'new' render 'new'
end end
end end
private private
......
...@@ -3,6 +3,7 @@ class ProductsController < ApplicationController ...@@ -3,6 +3,7 @@ class ProductsController < ApplicationController
def index def index
@products = Product.all @products = Product.all
@products = Product.where(["name LIKE ?","%#{params[:search]}%"])
end end
def show def show
...@@ -17,9 +18,9 @@ class ProductsController < ApplicationController ...@@ -17,9 +18,9 @@ class ProductsController < ApplicationController
@product = Product.new(product_params) @product = Product.new(product_params)
if @product.save if @product.save
redirect_to products_path, notice: "You have successfully created a new product!" redirect_to products_path, notice: "You have successfully created a new product!"
else else
render 'new' render 'new'
end end
end end
...@@ -37,13 +38,24 @@ class ProductsController < ApplicationController ...@@ -37,13 +38,24 @@ class ProductsController < ApplicationController
end end
end end
def destroy
@product = Product.find_by(id: params[:id])
if @product.status == "Inactive"
@product.status = "Active"
else
@product.status = "Inactive"
end
@product.save
redirect_to products_path, alert: alert
end
def count def count
@products.count @products.count
end end
private private
def product_params def product_params
params.require(:product).permit! params.require(:product).permit!
end end
end end
class SuppliesController < ApplicationController class SuppliesController < ApplicationController
def index def index
@products = Product.all @products = Product.all
end end
def new def new
@product = Product.find_by(id: params[:product_id]) @product = Product.find_by(id: params[:product_id])
@supply = @product.transactions.new @supply = @product.transactions.new
end end
def create def create
@product = Product.find_by(id: params[:product_id]) @product = Product.find_by(id: params[:product_id])
@supply = @product.transactions.new(supply_params) @supply = @product.transactions.new(supply_params)
@supply.mode = "Supply" @supply.mode = "Supply"
@supply.user_id = current_user.id @supply.user_id = current_user.id
@supply.quantity =@supply.quantity @supply.quantity =@supply.quantity
if @product.save if @product.save
redirect_to authenticated_user_root_path, notice: "You have successfully added a new supply." redirect_to authenticated_user_root_path, notice: "You have successfully added a new supply."
else else
render 'new' render 'new'
end end
end end
private private
......
class Transaction < ApplicationRecord class Transaction < ApplicationRecord
has_many :supplies
has_many :orders
belongs_to :product belongs_to :product
belongs_to :user belongs_to :user
has_many :supplies has_many :supplies
......
...@@ -48,9 +48,18 @@ ...@@ -48,9 +48,18 @@
<input class="form-control mr-sm-2" type="search" placeholder="Search"> <input class="form-control mr-sm-2" type="search" placeholder="Search">
<button class="btn btn-outline-info my-2 my-sm-0" type="submit">Search</button> <button class="btn btn-outline-info my-2 my-sm-0" type="submit">Search</button>
</form> </form>
<%= form_tag products_path, :method => 'get' do %>
<%= text_field_tag :search, params[:search] %>
<%= submit_tag "Search" %>
<% end %>
</div> </div>
</nav> </nav>
<div id="google_translate_element"></div><script type="text/javascript">
function googleTranslateElementInit() {
new google.translate.TranslateElement({pageLanguage: 'en', includedLanguages: 'af,ar,da,de,en,es,fi,fr,hi,id,is,ja,ko,mi,ms,my,nl,no,pt,sw,tl,zh-CN', layout: google.translate.TranslateElement.InlineLayout.HORIZONTAL}, 'google_translate_element');
}
</script><script type="text/javascript" src="//translate.google.com/translate_a/element.js?cb=googleTranslateElementInit"></script>>
<div class="container" id="container"> <div class="container" id="container">
<% if notice %> <% if notice %>
......
<%= if admin_user_signed_in? %> <% if admin_user_signed_in? %>
<h1>Products</h1>
<h2>Inventory System</h1> <div>
<div> <%= link_to "Add new Product", new_product_path, class: "btn btn-primary" %>
<%= link_to "Create new product", new_product_path, class: "btn btn-primary" %> </div>
</div>
<br> <br>
<% if @products.empty? %>
<small> <% if @products.empty? %>
No products have been created. <small>
</small> No products have been added.
<% else %> </small>
<table class="table", cellspacing="0", cellpadding="0"> <% else %>
<thead> <table class = "table", cellspacing="0", cellpadding="0">
<th>Name</th> <thead style="background-color: #333">
<th>Description</th> <th>Name</th>
<th>Status</th> <th>Description</th>
<th>Supply</th> <th>Status</th>
<th>Order</th> <th>Supply</th>
<th>Total</th> <th>Order</th>
<th>Created</th> <th>Total</th>
<th colspan="7"></th> <th>Created At</th>
</thead> <th colspan="6"></th>
<tbody> </thead>
<% @products.each do |product| %> <tbody>
<% if product.status == "Active" %> <% @products.each do |product| %>
<tr> <tr>
<td> <td>
<%= link_to product.name, product_path(product) %> <%= product.name %>
</td> </td>
<td> <td>
<%= product.description %> <%= product.description %>
</td> </td>
<td> <td>
<%= product.status %> <%= product.status%>
</td> </td>
<td> <td>
<%= time_ago_in_words(product.created_at) %> ago <% @supplies = 0 %>
</td> <% product.transactions.each do |transaction| %>
<% if trans.mode == "Supply" %>
<td> <% if trans.quantity == nil %>
<% supplies = 0 %> <% trans.quantity == 0 %>
<% product.transactions.each do |transaction| <% end %>
<% if transaction.mode == "Supply" %>
<% supplies = supplies + transaction.quantity %> <% @supplies += trans.quantity %>
<% end %> <% end %>
<% end %> <% end %>
<%= supplies %> <%= @supplies %>
</td> </td>
<td> <td>
<% orders = 0 %> <% @orders = 0 %>
<% product.transactions.each do |transaction| <% product.transactions.each do |transaction| %>
<% if transaction.mode == "Order" %> <% if trans.mode == "ORDER" %>
<% orders = orders + transaction.quantity %>
<% end %> <% if trans.quantity == nil %>
<% end %> <% transaction.quantity == 0 %>
<%= orders %> <% end %>
</td>
<td> <% @orders += trans.quantity %>
<%= link_to "Add Supply", new_product_supply_path(product), class: "btn btn-info" %> <% end %>
</td> <% end %>
<td> <%= "(#{@orders.abs})" %>
<%= link_to "Add Order", new_product_order_path(product), class: "btn btn-info" %> </td>
</td> <td>
<td> <% @total = 0 %>
<%= link_to "Edit", edit_product_path(product), class: "btn btn-primary" %> <% product.transactions.each do |transaction| %>
</td> <% if trans.quantity == nil %>
</tr> <% trans.quantity == 0 %>
<% end %>
<% @total += trans.quantity %>
<% end %>
<%= @total %>
</td>
<td>
<%= time_ago_in_words(product.created_at) %> ago
</td>
<td>
<%= link_to "Edit", edit_product_path(product), class: "btn btn-primary" %>
</td>
<td>
<% if product.status == "Active" %>
<%= link_to "Deactivate", product_path(product), method: :delete, class: "btn btn-danger" %>
<% else %>
<%= link_to "Activate", product_path(product), method: :delete, class: "btn btn-success"%>
<% end %>
</td>
<!-- <td>
<%= link_to "Delete", product_path(product), class: "btn btn-danger", method: :post, data: { confirm: "Are you sure you want to delete?" } %>
</td> -->
<td>
<%= link_to "View", product_path(product), class: "btn btn-primary" %>
</td>
</tr>
<% end%>
</tbody> </tbody>
</table> </table>
<% end %> <% end %>
<% end %>
<% else %> <% else %>
<% if @products.empty? %> <h1>Transactions</h1>
<small> <br>
No products available.
</small> <% if @products.empty? %>
<% else %> <small>
<table class="table", cellspacing="0", cellpadding="0"> No products have been added.
<thead> </small>
<th>Name</th> <% else %>
<th>Description</th> <table class = "table", cellspacing="0", cellpadding="0">
<th>Status</th> <thead style="background-color: #333">
<th>Supply</th> <th>Name</th>
<th>Order</th> <th>Description</th>
<th>Total</th> <th>Status</th>
<th>Created</th> <th>Supply</th>
<th colspan="7"></th> <th>Order</th>
</thead> <th>Total</th>
<tbody> <th>Created At</th>
<% @products.each do |product| %> <th colspan="6"></th>
<tr> </thead>
<td> <tbody>
<%= link_to product.name, product_path(product) %> <% @products.each do |product| %>
</td> <tr>
<td> <td>
<%= product.description %> <%= product.name %>
</td> </td>
<td> <td>
<%= product.status %> <%= product.description %>
</td> </td>
<td> <td>
<% supplies = 0 %> <%= product.status%>
<% product.transactions.each do |transaction| </td>
<% if transaction.mode == "Supply" %> <td>
<% if transaction.quantity == nil %> <% @supplies = 0 %>
<% transaction.quantity == 0 %> <% product.transactions.each do |trans| %>
<% end %> <% if trans.mode == "Supply" %>
<% @supplies = @supplies + transaction.quantity %> <% if trans.quantity == nil %>
<% end %> <% trans.quantity == 0 %>
<% end %> <% end %>
<%= supplies %>
</td> <% @supplies += trans.quantity %>
<td> <% end %>
<% orders = 0 %> <% end %>
<% product.transactions.each do |transaction| <%= @supplies %>
<% if transaction.mode == "Order" %> </td>
<% if transaction.quantity == nil %> <td>
<% transaction.quantity == 0 %> <% @orders = 0 %>
<% product.transactions.each do |trans| %>
<% if trans.mode == "ORDER" %>
<% if trans.quantity == nil %>
<% transaction.quantity == 0 %>
<% end %>
<% @orders += trans.quantity %>
<% end %>
<% end %>
<%= "(#{@orders.abs})" %>
</td>
<td>
<% @total = 0 %>
<% product.transactions.each do |trans| %>
<% if trans.quantity == nil %>
<% trans.quantity == 0 %>
<% end %>
<% @total += trans.quantity %>
<% end %>
<%= @total %>
</td>
<td>
<%= link_to "Add Supply", new_product_supply_path(product), class: "btn btn-primary" %>
</td>
<td>
<%= link_to "Add Order", new_product_order_path(product), class: "btn btn-primary" %>
</td>
</tr>
<% end %> <% end %>
<% @orders = @orders + transaction.quantity %>
<% end %>
<% end %>
<%= "(#{@orders.abs}" %>
</td>
<td>
<% @total = 0 %>
<% product.transactions.each do |transaction| %>
<% if transactions.quantity == nil %>
<% transaction.quantity == 0 %>
<% end %>
<% @total = @total + transaction.quantity %>
<% end %>
<%= @total %>
</td>
<td>
<%= product.comments.count %>
</td>
<td>
<%= link_to "Add Supply", new_product_supply_path(product), class: "btn btn-info" %>
</td>
<td>
<%= link_to "Add Order", new_product_order_path(product), class: "btn btn-info" %>
</td>
<td>
<%= link_to "Add Comment", edit_product_comment_path(product), class: "btn btn-info" %>
</td>
</tr>
</tbody> </tbody>
</table> </table>
<% end %> <% end %>
<% end %> <% end %>
>>>>>>> 6e6754882451c54a2f4e7f2bf5f24cb6d6b1d826
...@@ -4,20 +4,18 @@ Rails.application.routes.draw do ...@@ -4,20 +4,18 @@ Rails.application.routes.draw do
authenticated :admin_user do authenticated :admin_user do
resources :products resources :products
root to: 'products#index', as: :authenticated_admin_user_root root to: 'products#index', as: :authenticated_admin_user_root
end
end end
end
devise_for :users devise_for :users
devise_scope :user do devise_scope :user do
authenticated :user do authenticated :user do
resources :products, only: [] do resources :products, only: [:new, :show] do
resources :orders, only: [:new, :create] resources :orders, only: [:new, :create]
resources :supplies, only: [:new, :create] resources :supplies, only: [:new, :create]
resources :comments, only: [:new, :create]
end end
root to: 'products#index', as: :authenticated_user_root root to: 'products#index', as: :authenticated_user_root
end end
end end
root to: 'publics#index' root to: 'publics#index'
end end
\ No newline at end of file
if AdminUser.count == 0 if AdminUser.count == 0
AdminUser.create!([ AdminUser.create!([
{
email: 'andrea.dolendo@obf.ateneo.edu',
password: 'Andrea25'
},
{ {
email: 'chanelle.lunod@obf.ateneo.edu', email: 'chanelle.lunod@obf.ateneo.edu',
password: 'December5' password: 'December5'
......
...@@ -4,8 +4,12 @@ ...@@ -4,8 +4,12 @@
# model remove the '{}' from the fixture names and add the columns immediately # model remove the '{}' from the fixture names and add the columns immediately
# below each fixture, per the syntax in the comments below # below each fixture, per the syntax in the comments below
# #
one: {} admin_user:
# column: value name: Andrea Dolendo
# email: andrea.dolendo@obf.ateneo.edu
two: {} password: Andrea25
# column: value
user:
name: Chanelle Lunod
email: chanelle.lunod@obf.ateneo.edu
password: December5
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment