inventorymaster 0.0.9 → 0.1.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/app/controllers/inventorymaster/products_controller.rb +17 -1
- data/app/controllers/inventorymaster/reports_controller.rb +123 -0
- data/app/helpers/inventorymaster/products_helper.rb +5 -1
- data/app/helpers/inventorymaster/reports_helper.rb +17 -0
- data/app/models/inventorymaster/product.rb +3 -1
- data/app/models/inventorymaster/transaction.rb +1 -0
- data/app/views/inventorymaster/areas/index.html.erb +2 -2
- data/app/views/inventorymaster/locations/index.html.erb +2 -2
- data/app/views/inventorymaster/manufacturers/index.html.erb +2 -2
- data/app/views/inventorymaster/products/index.html.erb +6 -3
- data/app/views/inventorymaster/products/new.html.erb +1 -1
- data/app/views/inventorymaster/products/show.html.erb +8 -5
- data/app/views/inventorymaster/products/show.pdf.erb +76 -0
- data/app/views/inventorymaster/reports/current_stock_list.pdf.erb +52 -0
- data/app/views/inventorymaster/reports/index.html.erb +84 -0
- data/app/views/inventorymaster/reports/low_stock_list.pdf.erb +52 -0
- data/app/views/inventorymaster/reports/moviments_by_months.pdf.erb +38 -0
- data/app/views/inventorymaster/reports/out_stock_list.pdf.erb +52 -0
- data/app/views/inventorymaster/transaction_types/index.html.erb +2 -2
- data/app/views/inventorymaster/transactions/_form.html.erb +2 -2
- data/config/routes.rb +9 -0
- metadata +46 -38
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 39188e3daa3ed88ed7ece16fcfbc9b9f8d7dce9e
|
4
|
+
data.tar.gz: ccdd24592a651549a671ebc8de3f51a0b275d207
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: a5c3110201c12121dd13ec72fcacf67387e809ecf600b122d4e76de32e2e8e39fd651f45ad808326822d729a2b9b55eab518078d9f9077d15ebe0e329e75459f
|
7
|
+
data.tar.gz: 0f18dbffef3181690b858522177d81a785e0f592b1c70d2495887612ffce48c30c85f337422cd73602b9187a8abb813ac92da2281d0d75a66db3c441169b7456
|
@@ -11,6 +11,9 @@ module Inventorymaster
|
|
11
11
|
# end
|
12
12
|
|
13
13
|
def index
|
14
|
+
@locations = Location.all
|
15
|
+
@areas = Area.all
|
16
|
+
@manufacturers = Manufacturer.all
|
14
17
|
if params[:query].present?
|
15
18
|
@products = Product.search(params[:query], page: params[:page])
|
16
19
|
else
|
@@ -20,6 +23,19 @@ module Inventorymaster
|
|
20
23
|
|
21
24
|
# GET /products/1
|
22
25
|
def show
|
26
|
+
respond_to do |format|
|
27
|
+
format.html
|
28
|
+
format.pdf do
|
29
|
+
@pdf = WickedPdf.new.pdf_from_string(
|
30
|
+
render_to_string('show.pdf.erb'),
|
31
|
+
:encoding => "UTF-8",
|
32
|
+
:orientation => 'Landscape',
|
33
|
+
:footer => { :right => 'Pagina [page] de [topage]' }
|
34
|
+
)
|
35
|
+
send_data(@pdf, :filename => "relatorio_detalhado_#{@product.name}_para_a_data_#{DateTime.now.strftime('%d-%m-%Y_as_%H-%M')}.pdf", :type=>"application/pdf")
|
36
|
+
|
37
|
+
end
|
38
|
+
end
|
23
39
|
end
|
24
40
|
|
25
41
|
# GET /products/new
|
@@ -89,7 +105,7 @@ module Inventorymaster
|
|
89
105
|
|
90
106
|
# Only allow a trusted parameter "white list" through.
|
91
107
|
def product_params
|
92
|
-
params.require(:product).permit(:name, :sku, :upc, :summary, :labels, :area_id
|
108
|
+
params.require(:product).permit(:name, :sku, :upc, :summary, :labels, :area_id,:location_id ,:manufacturer_id, :minimum_stock_count,:transactions_attributes=>[:id,:kind, :date, :location_id, :user_id, :upc, :unit_cost, :unit_sale, :ammount, :average_cost, :reason, :comment, :serial_number, :transaction_type_id,:product_id])
|
93
109
|
end
|
94
110
|
end
|
95
111
|
end
|
@@ -0,0 +1,123 @@
|
|
1
|
+
module Inventorymaster
|
2
|
+
class ReportsController < ApplicationController
|
3
|
+
|
4
|
+
def index
|
5
|
+
@locations = Location.all
|
6
|
+
@areas = Area.all
|
7
|
+
@manufacturers = Manufacturer.all
|
8
|
+
|
9
|
+
end
|
10
|
+
|
11
|
+
def current_stock_list
|
12
|
+
if params[:location].blank? and params[:area].blank? and params[:manufacturer].blank?
|
13
|
+
@products = Product.all
|
14
|
+
elsif params[:location].blank? and params[:area].blank?
|
15
|
+
@products = Product.where(:manufacturer_id=>params[:manufacturer])
|
16
|
+
elsif params[:location].blank? and params[:manufacturer].blank?
|
17
|
+
@products = Product.where(:area_id=>params[:area])
|
18
|
+
elsif params[:area].blank? and params[:manufacturer].blank?
|
19
|
+
@products = Product.where(:location_id=>params[:location])
|
20
|
+
else
|
21
|
+
@products = Product.where(:location_id=>params[:location],:area_id=>params[:area],:manufacturer_id=>params[:manufacturer])
|
22
|
+
end
|
23
|
+
|
24
|
+
respond_to do |format|
|
25
|
+
format.html
|
26
|
+
format.pdf do
|
27
|
+
@pdf = WickedPdf.new.pdf_from_string(
|
28
|
+
render_to_string('current_stock_list.pdf.erb'),
|
29
|
+
:encoding => "UTF-8",
|
30
|
+
:orientation => 'Landscape',
|
31
|
+
:footer => { :right => 'Pagina [page] de [topage]' }
|
32
|
+
)
|
33
|
+
send_data(@pdf, :filename => "relatorio_estoque_atual_para_a_data_#{DateTime.now.strftime('%d-%m-%Y_as_%H-%M')}.pdf", :type=>"application/pdf")
|
34
|
+
|
35
|
+
end
|
36
|
+
end
|
37
|
+
end
|
38
|
+
|
39
|
+
|
40
|
+
def moviments_by_months
|
41
|
+
@moviments = Transaction.all
|
42
|
+
@moviments_months = @moviments.group_by { |t| t.date.beginning_of_month }
|
43
|
+
respond_to do |format|
|
44
|
+
format.html
|
45
|
+
format.pdf do
|
46
|
+
@pdf = WickedPdf.new.pdf_from_string(
|
47
|
+
render_to_string('moviments_by_months.pdf.erb'),
|
48
|
+
:encoding => "UTF-8",
|
49
|
+
:orientation => 'Landscape',
|
50
|
+
:footer => { :right => 'Pagina [page] de [topage]' }
|
51
|
+
)
|
52
|
+
send_data(@pdf, :filename => "relatorio_movimentacoes_por_meses_gerado_em#{DateTime.now.strftime('%d-%m-%Y_as_%H-%M')}.pdf", :type=>"application/pdf")
|
53
|
+
|
54
|
+
end
|
55
|
+
end
|
56
|
+
end
|
57
|
+
|
58
|
+
def low_stock_list
|
59
|
+
if params[:location].blank? and params[:area].blank? and params[:manufacturer].blank?
|
60
|
+
@products = Product.where(' ammount <= minimum_stock_count')
|
61
|
+
elsif params[:location].blank? and params[:area].blank?
|
62
|
+
@products = Product.where(' ammount <= minimum_stock_count and manufacturer_id=?',params[:manufacturer])
|
63
|
+
elsif params[:location].blank? and params[:manufacturer].blank?
|
64
|
+
@products = Product.where(:area_id=>params[:area])
|
65
|
+
@products = Product.where(' ammount <= minimum_stock_count and area_id=?',params[:area])
|
66
|
+
elsif params[:area].blank? and params[:manufacturer].blank?
|
67
|
+
@products = Product.where(:location_id=>params[:location])
|
68
|
+
@products = Product.where(' ammount <= minimum_stock_count and location_id=?',params[:location])
|
69
|
+
else
|
70
|
+
@products = Product.where(:location_id=>params[:location],:area_id=>params[:area],:manufacturer_id=>params[:manufacturer])
|
71
|
+
@products = Product.where(' ammount <= minimum_stock_count and location_id=? and area_id=? and manufacturer_id=?',params[:location],params[:area],params[:manufacturer])
|
72
|
+
end
|
73
|
+
|
74
|
+
respond_to do |format|
|
75
|
+
format.html
|
76
|
+
format.pdf do
|
77
|
+
@pdf = WickedPdf.new.pdf_from_string(
|
78
|
+
render_to_string('low_stock_list.pdf.erb'),
|
79
|
+
:encoding => "UTF-8",
|
80
|
+
:orientation => 'Landscape',
|
81
|
+
:footer => { :right => 'Pagina [page] de [topage]' }
|
82
|
+
)
|
83
|
+
send_data(@pdf, :filename => "Items_estoque_baixo_gerado_em#{DateTime.now.strftime('%d-%m-%Y_as_%H-%M')}.pdf", :type=>"application/pdf")
|
84
|
+
|
85
|
+
end
|
86
|
+
end
|
87
|
+
end
|
88
|
+
|
89
|
+
|
90
|
+
def out_stock_list
|
91
|
+
if params[:location].blank? and params[:area].blank? and params[:manufacturer].blank?
|
92
|
+
@products = Product.where(' ammount = 0')
|
93
|
+
elsif params[:location].blank? and params[:area].blank?
|
94
|
+
@products = Product.where(' ammount = 0 and manufacturer_id=?',params[:manufacturer])
|
95
|
+
elsif params[:location].blank? and params[:manufacturer].blank?
|
96
|
+
@products = Product.where(:area_id=>params[:area])
|
97
|
+
@products = Product.where(' ammount = 0 and area_id=?',params[:area])
|
98
|
+
elsif params[:area].blank? and params[:manufacturer].blank?
|
99
|
+
@products = Product.where(:location_id=>params[:location])
|
100
|
+
@products = Product.where(' ammount = 0 and location_id=?',params[:location])
|
101
|
+
else
|
102
|
+
@products = Product.where(:location_id=>params[:location],:area_id=>params[:area],:manufacturer_id=>params[:manufacturer])
|
103
|
+
@products = Product.where(' ammount = 0 and location_id=? and area_id=? and manufacturer_id=?',params[:location],params[:area],params[:manufacturer])
|
104
|
+
end
|
105
|
+
|
106
|
+
respond_to do |format|
|
107
|
+
format.html
|
108
|
+
format.pdf do
|
109
|
+
@pdf = WickedPdf.new.pdf_from_string(
|
110
|
+
render_to_string('low_stock_list.pdf.erb'),
|
111
|
+
:encoding => "UTF-8",
|
112
|
+
:orientation => 'Landscape',
|
113
|
+
:footer => { :right => 'Pagina [page] de [topage]' }
|
114
|
+
)
|
115
|
+
send_data(@pdf, :filename => "relatorio_items_estoque_zerado_gerado_em#{DateTime.now.strftime('%d-%m-%Y_as_%H-%M')}.pdf", :type=>"application/pdf")
|
116
|
+
|
117
|
+
end
|
118
|
+
end
|
119
|
+
end
|
120
|
+
|
121
|
+
|
122
|
+
end
|
123
|
+
end
|
@@ -2,7 +2,11 @@ module Inventorymaster
|
|
2
2
|
module ProductsHelper
|
3
3
|
def average_cost(unit_cost,ammount)
|
4
4
|
if unit_cost == nil
|
5
|
-
|
5
|
+
if @cost || @average ==0
|
6
|
+
return 0
|
7
|
+
else
|
8
|
+
return @cost / @average
|
9
|
+
end
|
6
10
|
else
|
7
11
|
@average += ammount
|
8
12
|
@cost += unit_cost* ammount
|
@@ -0,0 +1,17 @@
|
|
1
|
+
module Inventorymaster
|
2
|
+
module ReportsHelper
|
3
|
+
def average_cost(unit_cost,ammount)
|
4
|
+
if unit_cost == nil
|
5
|
+
if @cost || @average ==0
|
6
|
+
return 0
|
7
|
+
else
|
8
|
+
return @cost / @average
|
9
|
+
end
|
10
|
+
else
|
11
|
+
@average += ammount
|
12
|
+
@cost += unit_cost* ammount
|
13
|
+
return @cost / @average
|
14
|
+
end
|
15
|
+
end
|
16
|
+
end
|
17
|
+
end
|
@@ -3,7 +3,7 @@
|
|
3
3
|
</div>
|
4
4
|
<div align="right"><%= link_to 'Inserir Area', new_area_path ,:class=>"btn btn-primary"%></div>
|
5
5
|
<br>
|
6
|
-
|
6
|
+
<div class="table-responsive">
|
7
7
|
<table class="table table-condesed">
|
8
8
|
|
9
9
|
<thead>
|
@@ -24,6 +24,6 @@
|
|
24
24
|
<% end %>
|
25
25
|
</tbody>
|
26
26
|
</table>
|
27
|
-
|
27
|
+
</div>
|
28
28
|
<br>
|
29
29
|
|
@@ -3,7 +3,7 @@
|
|
3
3
|
</div>
|
4
4
|
<div align="right"><%= link_to 'Inserir Localização', new_location_path ,:class=>"btn btn-primary"%></div>
|
5
5
|
<br>
|
6
|
-
|
6
|
+
<div class="table-responsive">
|
7
7
|
<table class="table table-condesed">
|
8
8
|
<thead>
|
9
9
|
<tr>
|
@@ -31,6 +31,6 @@
|
|
31
31
|
<% end %>
|
32
32
|
</tbody>
|
33
33
|
</table>
|
34
|
-
|
34
|
+
</div>
|
35
35
|
<br>
|
36
36
|
|
@@ -3,7 +3,7 @@
|
|
3
3
|
</div>
|
4
4
|
<div align="right"><%= link_to 'Inserir Fabricante', new_manufacturer_path ,:class=>"btn btn-primary"%></div>
|
5
5
|
<br>
|
6
|
-
|
6
|
+
<div class="table-responsive">
|
7
7
|
<table class="table table-condesed">
|
8
8
|
<thead>
|
9
9
|
<tr>
|
@@ -25,6 +25,6 @@
|
|
25
25
|
<% end %>
|
26
26
|
</tbody>
|
27
27
|
</table>
|
28
|
-
|
28
|
+
</div>
|
29
29
|
<br>
|
30
30
|
|
@@ -22,6 +22,7 @@
|
|
22
22
|
</div>
|
23
23
|
</div>
|
24
24
|
</div>
|
25
|
+
|
25
26
|
<%end%>
|
26
27
|
|
27
28
|
|
@@ -34,7 +35,7 @@
|
|
34
35
|
|
35
36
|
<div align="right"><%= link_to 'Inserir Produto', new_product_path ,:class=>"btn btn-primary"%></div>
|
36
37
|
<br>
|
37
|
-
|
38
|
+
<div class="table-responsive">
|
38
39
|
<table class="table table-condesed">
|
39
40
|
<thead>
|
40
41
|
<tr>
|
@@ -64,7 +65,7 @@
|
|
64
65
|
<%end%>
|
65
66
|
<%end%>
|
66
67
|
|
67
|
-
<td><%= product.name %></td>
|
68
|
+
<td><%= product.name.upcase %></td>
|
68
69
|
<td><%if product.sku.present?%><%= product.sku %><%else%>-<%end%></td>
|
69
70
|
<td><%= product.area.name unless product.area.nil? %></td>
|
70
71
|
<td><%= product.manufacturer.name unless product.manufacturer.nil?%></td>
|
@@ -90,8 +91,10 @@
|
|
90
91
|
<% end %>
|
91
92
|
</tbody>
|
92
93
|
</table>
|
94
|
+
</div>
|
93
95
|
<br>
|
94
96
|
<center><%= paginate @products %></center>
|
95
97
|
|
96
98
|
<span class="label label-warning">EM - Estoque Mínimo</span>
|
97
|
-
<span class="label label-primary">EA - Estoque Atual</span>
|
99
|
+
<span class="label label-primary">EA - Estoque Atual</span>
|
100
|
+
<span class="label label-info">Stock Keeping Unit (SKU) - Unidade de Manutenção de Estoque</span>
|
@@ -26,6 +26,8 @@
|
|
26
26
|
<% end %>
|
27
27
|
|
28
28
|
</td>
|
29
|
+
<td> </td>
|
30
|
+
<td><%=link_to 'Gerar Relatório Produto', product_path(@product, :format => :pdf),:class=>"btn btn-info btn-xs"%></td>
|
29
31
|
</tr>
|
30
32
|
</table>
|
31
33
|
|
@@ -82,16 +84,17 @@
|
|
82
84
|
<%@cost=0%>
|
83
85
|
|
84
86
|
<hr>
|
87
|
+
<div class="table-responsive">
|
85
88
|
<table class="table table-striped" style="text-align:left;">
|
86
|
-
<tr>
|
89
|
+
<tr style="font-weight: bold;">
|
87
90
|
<td>Tipo</td>
|
88
91
|
<td>Data</td>
|
89
92
|
<td>Usuário</td>
|
90
93
|
<td>UPC</td>
|
91
|
-
<td>Custo
|
94
|
+
<td>Custo Unitário</td>
|
92
95
|
<td>Valor de Venda</td>
|
93
96
|
<td>QTD</td>
|
94
|
-
<td>Custo
|
97
|
+
<td>Custo Médio</td>
|
95
98
|
<td>Motivo</td>
|
96
99
|
</tr>
|
97
100
|
<%@product.transactions.order("created_at ASC").each do |transaction|%>
|
@@ -104,12 +107,12 @@
|
|
104
107
|
<td><%=number_to_currency(transaction.unit_sale,:precision=>2)%></td>
|
105
108
|
<td><%if transaction.kind == "Saida"%><font color="red">-</font><%else%><font color="blue">+</font><%end%><%=transaction.ammount%></td>
|
106
109
|
<td><%=number_to_currency(average_cost(transaction.unit_cost,transaction.ammount),:precision=>2)%></td>
|
107
|
-
<td><%=transaction.transaction_type.name
|
110
|
+
<td><%=transaction.transaction_type.name unless transaction.transaction_type.nil?%></td>
|
108
111
|
</tr>
|
109
112
|
|
110
113
|
<%end%>
|
111
114
|
</table>
|
112
|
-
|
115
|
+
</div>
|
113
116
|
|
114
117
|
|
115
118
|
|
@@ -0,0 +1,76 @@
|
|
1
|
+
<style type="text/css">
|
2
|
+
<%= Rails.application.assets.find_asset('bootstrap_and_overrides.css.less').to_s.html_safe %>
|
3
|
+
</style>
|
4
|
+
<p>
|
5
|
+
<h2><%= @product.name.upcase %></h2>
|
6
|
+
</p>
|
7
|
+
<p>
|
8
|
+
<strong>Quantidade em Estoque:</strong>
|
9
|
+
<span class="label label-primary"><%= @product.ammount %></span>
|
10
|
+
</p>
|
11
|
+
<p>
|
12
|
+
<strong>SKU:</strong>
|
13
|
+
<%= @product.sku %>
|
14
|
+
</p>
|
15
|
+
<p>
|
16
|
+
<strong>UPC:</strong>
|
17
|
+
<%= @product.upc %>
|
18
|
+
</p>
|
19
|
+
<p>
|
20
|
+
<strong>Descrição:</strong>
|
21
|
+
<%= @product.summary %>
|
22
|
+
</p>
|
23
|
+
<p>
|
24
|
+
<strong>Labels:</strong>
|
25
|
+
<%= @product.labels %>
|
26
|
+
</p>
|
27
|
+
<p>
|
28
|
+
<strong>Area:</strong>
|
29
|
+
<%= @product.area.name%>
|
30
|
+
</p>
|
31
|
+
<p>
|
32
|
+
<strong>Fabricante:</strong>
|
33
|
+
<%= @product.manufacturer.name %>
|
34
|
+
</p>
|
35
|
+
<p>
|
36
|
+
<strong>Estoque Minimo:</strong>
|
37
|
+
<%= @product.minimum_stock_count %>
|
38
|
+
</p>
|
39
|
+
<%@average=0%>
|
40
|
+
<%@cost=0%>
|
41
|
+
<h3>Histórico de movimentações</h3>
|
42
|
+
<hr>
|
43
|
+
<div class="table-responsive">
|
44
|
+
<table class="table table-striped" style="text-align:left;">
|
45
|
+
<tr style="font-weight: bold;">
|
46
|
+
<td>Tipo</td>
|
47
|
+
<td>Data</td>
|
48
|
+
<td>Usuário</td>
|
49
|
+
<td>UPC</td>
|
50
|
+
<td>Custo Unitário</td>
|
51
|
+
<td>Valor de Venda</td>
|
52
|
+
<td>QTD</td>
|
53
|
+
<td>Custo Médio</td>
|
54
|
+
<td>Motivo</td>
|
55
|
+
</tr>
|
56
|
+
<%@product.transactions.order("created_at ASC").each do |transaction|%>
|
57
|
+
<tr>
|
58
|
+
<td><%=transaction.kind%></td>
|
59
|
+
<td><%=transaction.date.strftime("%d/%m/%Y")%></td>
|
60
|
+
<td><%=transaction.user.first_name unless transaction.user.nil?%></td>
|
61
|
+
<td><%if transaction.upc.present?%><%=transaction.upc%><%else%>-<%end%></td>
|
62
|
+
<td><%=number_to_currency(transaction.unit_cost,:precision=>2)%></td>
|
63
|
+
<td><%=number_to_currency(transaction.unit_sale,:precision=>2)%></td>
|
64
|
+
<td><%if transaction.kind == "Saida"%><font color="red">-</font><%else%><font color="blue">+</font><%end%><%=transaction.ammount%></td>
|
65
|
+
<td><%=number_to_currency(average_cost(transaction.unit_cost,transaction.ammount),:precision=>2)%></td>
|
66
|
+
<td><%=transaction.transaction_type.name unless transaction.transaction_type.nil?%></td>
|
67
|
+
</tr>
|
68
|
+
|
69
|
+
<%end%>
|
70
|
+
</table>
|
71
|
+
</div>
|
72
|
+
|
73
|
+
|
74
|
+
|
75
|
+
|
76
|
+
|
@@ -0,0 +1,52 @@
|
|
1
|
+
<style type="text/css">
|
2
|
+
<%= Rails.application.assets.find_asset('bootstrap_and_overrides.css.less').to_s.html_safe %>
|
3
|
+
</style>
|
4
|
+
<center><h3>Lista Estoque Atual</h3></center>
|
5
|
+
<div class="table-responsive">
|
6
|
+
<table class="table table-condesed">
|
7
|
+
<thead>
|
8
|
+
<tr>
|
9
|
+
<th>Nome</th>
|
10
|
+
<th>SKU</th>
|
11
|
+
<th>Localização</th>
|
12
|
+
<th>Área</th>
|
13
|
+
<th>Fabricante</th>
|
14
|
+
<th>EM</th>
|
15
|
+
<th>EA</th>
|
16
|
+
</tr>
|
17
|
+
</thead>
|
18
|
+
|
19
|
+
<tbody>
|
20
|
+
<% @products.each do |product| %>
|
21
|
+
<%if product.minimum_stock_count.present?%>
|
22
|
+
<%if product.ammount < product.minimum_stock_count%>
|
23
|
+
<tr class="danger">
|
24
|
+
<%else%>
|
25
|
+
<tr>
|
26
|
+
<%end%>
|
27
|
+
<%else%>
|
28
|
+
<%if product.ammount < Inventorymaster::Setting.find(1).minimum_stock_count%>
|
29
|
+
<tr class="danger">
|
30
|
+
<%else%>
|
31
|
+
<tr>
|
32
|
+
<%end%>
|
33
|
+
<%end%>
|
34
|
+
|
35
|
+
<td><%= product.name.upcase %></td>
|
36
|
+
<td><%if product.sku.present?%><%= product.sku %><%else%>-<%end%></td>
|
37
|
+
<td><%= product.location.name unless product.location.nil? %></td>
|
38
|
+
<td><%= product.area.name unless product.area.nil? %></td>
|
39
|
+
<td><%= product.manufacturer.name unless product.manufacturer.nil?%></td>
|
40
|
+
<td><span class="label label-warning"><%= product.minimum_stock_count %></span></td>
|
41
|
+
<td><span class="label label-primary"><%= product.ammount %></span></td>
|
42
|
+
|
43
|
+
</tr>
|
44
|
+
<% end %>
|
45
|
+
</tbody>
|
46
|
+
</table>
|
47
|
+
</div>
|
48
|
+
<br>
|
49
|
+
<br>
|
50
|
+
<span class="label label-warning">EM - Estoque Mínimo</span>
|
51
|
+
<span class="label label-primary">EA - Estoque Atual</span>
|
52
|
+
<span class="label label-info">Stock Keeping Unit (SKU) - Unidade de Manutenção de Estoque</span>
|
@@ -0,0 +1,84 @@
|
|
1
|
+
<span class="glyphicon glyphicon-search" aria-hidden="true"></span>
|
2
|
+
|
3
|
+
<div class="panel-group" id="accordion">
|
4
|
+
<div class="panel panel-default">
|
5
|
+
<div class="panel-heading">
|
6
|
+
<h4 class="panel-title">
|
7
|
+
<a class="accordion-toggle" data-toggle="collapse" data-parent="#accordion" href="#collapseOne">
|
8
|
+
Lista Atual do Estoque #1
|
9
|
+
</a><span class="glyphicon glyphicon-triangle-right" aria-hidden="true"></span>
|
10
|
+
</h4>
|
11
|
+
</div>
|
12
|
+
<div id="collapseOne" class="panel-collapse collapse in">
|
13
|
+
<div class="panel-body">
|
14
|
+
<%=form_tag(current_stock_list_path,:method=>"get") do%>
|
15
|
+
<%=hidden_field_tag 'format','pdf'%>
|
16
|
+
|
17
|
+
<%=select_tag "location", options_for_select(@locations.collect{ |u| [u.name, u.id] }),:prompt=>"Todas"%>
|
18
|
+
<%=select_tag "area", options_for_select(@areas.collect{ |u| [u.name, u.id] }),:prompt=>"Todas"%>
|
19
|
+
<%=select_tag "manufacturer", options_for_select(@manufacturers.collect{ |u| [u.name, u.id] }),:prompt=>"Todas"%>
|
20
|
+
<%=submit_tag"Gerar Relatório",:class=>"btn btn-primary"%>
|
21
|
+
<%end%>
|
22
|
+
|
23
|
+
</div>
|
24
|
+
</div>
|
25
|
+
</div>
|
26
|
+
<div class="panel panel-default">
|
27
|
+
<div class="panel-heading">
|
28
|
+
<h4 class="panel-title">
|
29
|
+
<a class="accordion-toggle" data-toggle="collapse" data-parent="#accordion" href="#collapseTwo">
|
30
|
+
Movimentaçõs por Mês #2
|
31
|
+
</a><span class="glyphicon glyphicon-triangle-right" aria-hidden="true"></span>
|
32
|
+
</h4>
|
33
|
+
</div>
|
34
|
+
<div id="collapseTwo" class="panel-collapse collapse">
|
35
|
+
<div class="panel-body">
|
36
|
+
<%=form_tag(moviments_by_months_path,:method=>"get") do%>
|
37
|
+
<%=hidden_field_tag 'format','pdf'%>
|
38
|
+
|
39
|
+
<%=submit_tag"Gerar Relatório",:class=>"btn btn-primary"%>
|
40
|
+
<%end%>
|
41
|
+
</div>
|
42
|
+
</div>
|
43
|
+
</div>
|
44
|
+
<div class="panel panel-default">
|
45
|
+
<div class="panel-heading">
|
46
|
+
<h4 class="panel-title">
|
47
|
+
<a class="accordion-toggle" data-toggle="collapse" data-parent="#accordion" href="#collapseThree">
|
48
|
+
Items com Estoque Baixo #3
|
49
|
+
</a><span class="glyphicon glyphicon-triangle-right" aria-hidden="true"></span>
|
50
|
+
</h4>
|
51
|
+
</div>
|
52
|
+
<div id="collapseThree" class="panel-collapse collapse">
|
53
|
+
<div class="panel-body">
|
54
|
+
<%=form_tag(low_stock_list_path,:method=>"get") do%>
|
55
|
+
<%=hidden_field_tag 'format','pdf'%>
|
56
|
+
<%=select_tag "location", options_for_select(@locations.collect{ |u| [u.name, u.id] }),:prompt=>"Todas"%>
|
57
|
+
<%=select_tag "area", options_for_select(@areas.collect{ |u| [u.name, u.id] }),:prompt=>"Todas"%>
|
58
|
+
<%=select_tag "manufacturer", options_for_select(@manufacturers.collect{ |u| [u.name, u.id] }),:prompt=>"Todas"%>
|
59
|
+
<%=submit_tag"Gerar Relatório",:class=>"btn btn-primary"%>
|
60
|
+
<%end%>
|
61
|
+
</div>
|
62
|
+
</div>
|
63
|
+
</div>
|
64
|
+
<div class="panel panel-default">
|
65
|
+
<div class="panel-heading">
|
66
|
+
<h4 class="panel-title">
|
67
|
+
<a class="accordion-toggle" data-toggle="collapse" data-parent="#accordion" href="#collapseFour">
|
68
|
+
Items sem Estoque#4
|
69
|
+
</a><span class="glyphicon glyphicon-triangle-right" aria-hidden="true"></span>
|
70
|
+
</h4>
|
71
|
+
</div>
|
72
|
+
<div id="collapseFour" class="panel-collapse collapse">
|
73
|
+
<div class="panel-body">
|
74
|
+
<%=form_tag(out_stock_list_path,:method=>"get") do%>
|
75
|
+
<%=hidden_field_tag 'format','pdf'%>
|
76
|
+
<%=select_tag "location", options_for_select(@locations.collect{ |u| [u.name, u.id] }),:prompt=>"Todas"%>
|
77
|
+
<%=select_tag "area", options_for_select(@areas.collect{ |u| [u.name, u.id] }),:prompt=>"Todas"%>
|
78
|
+
<%=select_tag "manufacturer", options_for_select(@manufacturers.collect{ |u| [u.name, u.id] }),:prompt=>"Todas"%>
|
79
|
+
<%=submit_tag"Gerar Relatório",:class=>"btn btn-primary"%>
|
80
|
+
<%end%>
|
81
|
+
</div>
|
82
|
+
</div>
|
83
|
+
</div>
|
84
|
+
</div>
|
@@ -0,0 +1,52 @@
|
|
1
|
+
<style type="text/css">
|
2
|
+
<%= Rails.application.assets.find_asset('bootstrap_and_overrides.css.less').to_s.html_safe %>
|
3
|
+
</style>
|
4
|
+
<center><h3>Items com estoque Baixo</h3></center>
|
5
|
+
<div class="table-responsive">
|
6
|
+
<table class="table table-condesed">
|
7
|
+
<thead>
|
8
|
+
<tr>
|
9
|
+
<th>Nome</th>
|
10
|
+
<th>SKU</th>
|
11
|
+
<th>Localização</th>
|
12
|
+
<th>Área</th>
|
13
|
+
<th>Fabricante</th>
|
14
|
+
<th>EM</th>
|
15
|
+
<th>EA</th>
|
16
|
+
</tr>
|
17
|
+
</thead>
|
18
|
+
|
19
|
+
<tbody>
|
20
|
+
<% @products.each do |product| %>
|
21
|
+
<%if product.minimum_stock_count.present?%>
|
22
|
+
<%if product.ammount < product.minimum_stock_count%>
|
23
|
+
<tr class="danger">
|
24
|
+
<%else%>
|
25
|
+
<tr>
|
26
|
+
<%end%>
|
27
|
+
<%else%>
|
28
|
+
<%if product.ammount < Inventorymaster::Setting.find(1).minimum_stock_count%>
|
29
|
+
<tr class="danger">
|
30
|
+
<%else%>
|
31
|
+
<tr>
|
32
|
+
<%end%>
|
33
|
+
<%end%>
|
34
|
+
|
35
|
+
<td><%= product.name.upcase %></td>
|
36
|
+
<td><%if product.sku.present?%><%= product.sku %><%else%>-<%end%></td>
|
37
|
+
<td><%= product.location.name unless product.location.nil? %></td>
|
38
|
+
<td><%= product.area.name unless product.area.nil? %></td>
|
39
|
+
<td><%= product.manufacturer.name unless product.manufacturer.nil?%></td>
|
40
|
+
<td><span class="label label-warning"><%= product.minimum_stock_count %></span></td>
|
41
|
+
<td><span class="label label-primary"><%= product.ammount %></span></td>
|
42
|
+
|
43
|
+
</tr>
|
44
|
+
<% end %>
|
45
|
+
</tbody>
|
46
|
+
</table>
|
47
|
+
</div>
|
48
|
+
<br>
|
49
|
+
<br>
|
50
|
+
<span class="label label-warning">EM - Estoque Mínimo</span>
|
51
|
+
<span class="label label-primary">EA - Estoque Atual</span>
|
52
|
+
<span class="label label-info">Stock Keeping Unit (SKU) - Unidade de Manutenção de Estoque</span>
|
@@ -0,0 +1,38 @@
|
|
1
|
+
<style type="text/css">
|
2
|
+
<%= Rails.application.assets.find_asset('bootstrap_and_overrides.css.less').to_s.html_safe %>
|
3
|
+
</style>
|
4
|
+
<%@average=0%>
|
5
|
+
<%@cost=0%>
|
6
|
+
<center><h3>Movimentações de produtos por Meses</h3></center>
|
7
|
+
|
8
|
+
<div class="table-responsive">
|
9
|
+
|
10
|
+
<% @moviments_months.sort.each do |month, moviments| %>
|
11
|
+
<center><h2><%= month.strftime('%B') %></center>
|
12
|
+
<table class="table table-striped" style="text-align:center;">
|
13
|
+
<tr style="font-weight: bold;">
|
14
|
+
<td>Produto</td>
|
15
|
+
<td>Tipo</td>
|
16
|
+
<td>Data</td>
|
17
|
+
<td>Usuário</td>
|
18
|
+
<td>Custo Unitário</td>
|
19
|
+
<td>Valor de Venda</td>
|
20
|
+
<td>QTD</td>
|
21
|
+
<td>Custo Médio</td>
|
22
|
+
</tr>
|
23
|
+
<% for moviment in moviments %>
|
24
|
+
<tr>
|
25
|
+
<td><%=moviment.product.name%></td>
|
26
|
+
<td><%=moviment.kind%></td>
|
27
|
+
<td><%=moviment.date.strftime("%d/%m/%Y")%></td>
|
28
|
+
<td><%if moviment.user.present?%><%=moviment.user.first_name %><%else%><center>-</center><%end%></td>
|
29
|
+
<td><%if moviment.unit_cost.present?%><%=number_to_currency(moviment.unit_cost,:precision=>2)%><%else%><center>-</center><%end%></td>
|
30
|
+
<td><%if moviment.unit_sale.present?%><%=number_to_currency(moviment.unit_sale,:precision=>2)%><%else%><center>-</center><%end%></td>
|
31
|
+
<td><%if moviment.kind == "Saida"%><font color="red">-</font><%else%><font color="blue">+</font><%end%><%=moviment.ammount%></td>
|
32
|
+
<td><%=number_to_currency(average_cost(moviment.unit_cost,moviment.ammount),:precision=>2)%></td>
|
33
|
+
</tr>
|
34
|
+
<% end %>
|
35
|
+
</table>
|
36
|
+
<% end %>
|
37
|
+
</table>
|
38
|
+
</div>
|
@@ -0,0 +1,52 @@
|
|
1
|
+
<style type="text/css">
|
2
|
+
<%= Rails.application.assets.find_asset('bootstrap_and_overrides.css.less').to_s.html_safe %>
|
3
|
+
</style>
|
4
|
+
<center><h3>Lista Estoque Atual</h3></center>
|
5
|
+
<div class="table-responsive">
|
6
|
+
<table class="table table-condesed">
|
7
|
+
<thead>
|
8
|
+
<tr>
|
9
|
+
<th>Nome</th>
|
10
|
+
<th>SKU</th>
|
11
|
+
<th>Localização</th>
|
12
|
+
<th>Área</th>
|
13
|
+
<th>Fabricante</th>
|
14
|
+
<th>EM</th>
|
15
|
+
<th>EA</th>
|
16
|
+
</tr>
|
17
|
+
</thead>
|
18
|
+
|
19
|
+
<tbody>
|
20
|
+
<% @products.each do |product| %>
|
21
|
+
<%if product.minimum_stock_count.present?%>
|
22
|
+
<%if product.ammount < product.minimum_stock_count%>
|
23
|
+
<tr class="danger">
|
24
|
+
<%else%>
|
25
|
+
<tr>
|
26
|
+
<%end%>
|
27
|
+
<%else%>
|
28
|
+
<%if product.ammount < Inventorymaster::Setting.find(1).minimum_stock_count%>
|
29
|
+
<tr class="danger">
|
30
|
+
<%else%>
|
31
|
+
<tr>
|
32
|
+
<%end%>
|
33
|
+
<%end%>
|
34
|
+
|
35
|
+
<td><%= product.name.upcase %></td>
|
36
|
+
<td><%if product.sku.present?%><%= product.sku %><%else%>-<%end%></td>
|
37
|
+
<td><%= product.location.name unless product.location.nil? %></td>
|
38
|
+
<td><%= product.area.name unless product.area.nil? %></td>
|
39
|
+
<td><%= product.manufacturer.name unless product.manufacturer.nil?%></td>
|
40
|
+
<td><span class="label label-warning"><%= product.minimum_stock_count %></span></td>
|
41
|
+
<td><span class="label label-primary"><%= product.ammount %></span></td>
|
42
|
+
|
43
|
+
</tr>
|
44
|
+
<% end %>
|
45
|
+
</tbody>
|
46
|
+
</table>
|
47
|
+
</div>
|
48
|
+
<br>
|
49
|
+
<br>
|
50
|
+
<span class="label label-warning">EM - Estoque Mínimo</span>
|
51
|
+
<span class="label label-primary">EA - Estoque Atual</span>
|
52
|
+
<span class="label label-info">Stock Keeping Unit (SKU) - Unidade de Manutenção de Estoque</span>
|
@@ -3,7 +3,7 @@
|
|
3
3
|
</div>
|
4
4
|
<div align="right"><%= link_to 'Inserir Tipo de Transação', new_transaction_type_path ,:class=>"btn btn-primary"%></div>
|
5
5
|
<br>
|
6
|
-
|
6
|
+
<div class="table-responsive">
|
7
7
|
<table class="table table-condesed">
|
8
8
|
|
9
9
|
<thead>
|
@@ -24,6 +24,6 @@
|
|
24
24
|
<% end %>
|
25
25
|
</tbody>
|
26
26
|
</table>
|
27
|
-
|
27
|
+
</div>
|
28
28
|
<br>
|
29
29
|
|
@@ -42,7 +42,7 @@
|
|
42
42
|
</div>
|
43
43
|
<div class="field">
|
44
44
|
<%= f.label :ammount ,"Quantidade"%><br>
|
45
|
-
<%= f.number_field :ammount %>
|
45
|
+
<%= f.number_field :ammount ,:required=>true%>
|
46
46
|
</div>
|
47
47
|
|
48
48
|
<div class="field">
|
@@ -55,7 +55,7 @@
|
|
55
55
|
</div>
|
56
56
|
<div class="field">
|
57
57
|
<%= f.label :transaction_type_id ,"Tipo da Transação"%><br>
|
58
|
-
<%= f.select :transaction_type_id , @transactiontypes.collect { |c| [ c.name, c.id ] }
|
58
|
+
<%= f.select :transaction_type_id , @transactiontypes.collect { |c| [ c.name, c.id ] },{ :include_blank => '-- Selecione um Tipo --' }, :required => true %>
|
59
59
|
</div>
|
60
60
|
<br>
|
61
61
|
<div class="actions">
|
data/config/routes.rb
CHANGED
@@ -1,4 +1,13 @@
|
|
1
1
|
Inventorymaster::Engine.routes.draw do
|
2
|
+
|
3
|
+
resources :reports
|
4
|
+
get 'current_stock_list',:controller=>'reports',:action=>'current_stock_list'
|
5
|
+
get 'moviments_by_months',:controller=>'reports',:action=>'moviments_by_months'
|
6
|
+
get 'low_stock_list',:controller=>'reports',:action=>'low_stock_list'
|
7
|
+
get 'out_stock_list',:controller=>'reports',:action=>'out_stock_list'
|
8
|
+
|
9
|
+
|
10
|
+
|
2
11
|
resources :transaction_types
|
3
12
|
resources :transactions do
|
4
13
|
get ':transactions/:id', to: 'transactions#new', on: :member
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: inventorymaster
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0
|
4
|
+
version: 0.1.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- jcottobboni
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2015-
|
11
|
+
date: 2015-06-23 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: rails
|
@@ -98,6 +98,7 @@ files:
|
|
98
98
|
- app/controllers/inventorymaster/locations_controller.rb
|
99
99
|
- app/controllers/inventorymaster/manufacturers_controller.rb
|
100
100
|
- app/controllers/inventorymaster/products_controller.rb
|
101
|
+
- app/controllers/inventorymaster/reports_controller.rb
|
101
102
|
- app/controllers/inventorymaster/settings_controller.rb
|
102
103
|
- app/controllers/inventorymaster/transaction_types_controller.rb
|
103
104
|
- app/controllers/inventorymaster/transactions_controller.rb
|
@@ -106,6 +107,7 @@ files:
|
|
106
107
|
- app/helpers/inventorymaster/locations_helper.rb
|
107
108
|
- app/helpers/inventorymaster/manufacturers_helper.rb
|
108
109
|
- app/helpers/inventorymaster/products_helper.rb
|
110
|
+
- app/helpers/inventorymaster/reports_helper.rb
|
109
111
|
- app/helpers/inventorymaster/settings_helper.rb
|
110
112
|
- app/helpers/inventorymaster/transaction_types_helper.rb
|
111
113
|
- app/helpers/inventorymaster/transactions_helper.rb
|
@@ -136,6 +138,12 @@ files:
|
|
136
138
|
- app/views/inventorymaster/products/index.html.erb
|
137
139
|
- app/views/inventorymaster/products/new.html.erb
|
138
140
|
- app/views/inventorymaster/products/show.html.erb
|
141
|
+
- app/views/inventorymaster/products/show.pdf.erb
|
142
|
+
- app/views/inventorymaster/reports/current_stock_list.pdf.erb
|
143
|
+
- app/views/inventorymaster/reports/index.html.erb
|
144
|
+
- app/views/inventorymaster/reports/low_stock_list.pdf.erb
|
145
|
+
- app/views/inventorymaster/reports/moviments_by_months.pdf.erb
|
146
|
+
- app/views/inventorymaster/reports/out_stock_list.pdf.erb
|
139
147
|
- app/views/inventorymaster/settings/_form.html.erb
|
140
148
|
- app/views/inventorymaster/settings/edit.html.erb
|
141
149
|
- app/views/inventorymaster/settings/index.html.erb
|
@@ -247,66 +255,66 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
247
255
|
version: '0'
|
248
256
|
requirements: []
|
249
257
|
rubyforge_project:
|
250
|
-
rubygems_version: 2.4.
|
258
|
+
rubygems_version: 2.4.6
|
251
259
|
signing_key:
|
252
260
|
specification_version: 4
|
253
261
|
summary: Inventory system engine
|
254
262
|
test_files:
|
255
|
-
- test/
|
256
|
-
- test/
|
257
|
-
- test/
|
258
|
-
- test/
|
259
|
-
- test/
|
260
|
-
- test/
|
263
|
+
- test/controllers/inventorymaster/areas_controller_test.rb
|
264
|
+
- test/controllers/inventorymaster/locations_controller_test.rb
|
265
|
+
- test/controllers/inventorymaster/manufacturers_controller_test.rb
|
266
|
+
- test/controllers/inventorymaster/products_controller_test.rb
|
267
|
+
- test/controllers/inventorymaster/settings_controller_test.rb
|
268
|
+
- test/controllers/inventorymaster/transaction_types_controller_test.rb
|
269
|
+
- test/controllers/inventorymaster/transactions_controller_test.rb
|
261
270
|
- test/dummy/app/assets/javascripts/application.js
|
271
|
+
- test/dummy/app/assets/stylesheets/application.css
|
262
272
|
- test/dummy/app/controllers/application_controller.rb
|
263
273
|
- test/dummy/app/helpers/application_helper.rb
|
264
274
|
- test/dummy/app/views/layouts/application.html.erb
|
265
|
-
- test/dummy/
|
266
|
-
- test/dummy/bin/rake
|
275
|
+
- test/dummy/bin/bundle
|
267
276
|
- test/dummy/bin/rails
|
277
|
+
- test/dummy/bin/rake
|
268
278
|
- test/dummy/bin/setup
|
269
|
-
- test/dummy/
|
270
|
-
- test/dummy/config/
|
279
|
+
- test/dummy/config/application.rb
|
280
|
+
- test/dummy/config/boot.rb
|
281
|
+
- test/dummy/config/database.yml
|
271
282
|
- test/dummy/config/environment.rb
|
283
|
+
- test/dummy/config/environments/development.rb
|
272
284
|
- test/dummy/config/environments/production.rb
|
273
285
|
- test/dummy/config/environments/test.rb
|
274
|
-
- test/dummy/config/environments/development.rb
|
275
|
-
- test/dummy/config/application.rb
|
276
|
-
- test/dummy/config/secrets.yml
|
277
|
-
- test/dummy/config/initializers/wrap_parameters.rb
|
278
|
-
- test/dummy/config/initializers/mime_types.rb
|
279
|
-
- test/dummy/config/initializers/session_store.rb
|
280
286
|
- test/dummy/config/initializers/assets.rb
|
281
287
|
- test/dummy/config/initializers/backtrace_silencers.rb
|
282
|
-
- test/dummy/config/initializers/inflections.rb
|
283
|
-
- test/dummy/config/initializers/filter_parameter_logging.rb
|
284
288
|
- test/dummy/config/initializers/cookies_serializer.rb
|
289
|
+
- test/dummy/config/initializers/filter_parameter_logging.rb
|
290
|
+
- test/dummy/config/initializers/inflections.rb
|
291
|
+
- test/dummy/config/initializers/mime_types.rb
|
292
|
+
- test/dummy/config/initializers/session_store.rb
|
293
|
+
- test/dummy/config/initializers/wrap_parameters.rb
|
294
|
+
- test/dummy/config/locales/en.yml
|
285
295
|
- test/dummy/config/routes.rb
|
286
|
-
- test/dummy/config/
|
287
|
-
- test/dummy/config/database.yml
|
288
|
-
- test/dummy/README.rdoc
|
296
|
+
- test/dummy/config/secrets.yml
|
289
297
|
- test/dummy/config.ru
|
290
|
-
- test/
|
291
|
-
- test/
|
292
|
-
- test/
|
298
|
+
- test/dummy/public/404.html
|
299
|
+
- test/dummy/public/422.html
|
300
|
+
- test/dummy/public/500.html
|
301
|
+
- test/dummy/public/favicon.ico
|
302
|
+
- test/dummy/Rakefile
|
303
|
+
- test/dummy/README.rdoc
|
293
304
|
- test/fixtures/inventorymaster/areas.yml
|
305
|
+
- test/fixtures/inventorymaster/locations.yml
|
306
|
+
- test/fixtures/inventorymaster/manufacturers.yml
|
294
307
|
- test/fixtures/inventorymaster/products.yml
|
308
|
+
- test/fixtures/inventorymaster/settings.yml
|
295
309
|
- test/fixtures/inventorymaster/transaction_types.yml
|
296
|
-
- test/fixtures/inventorymaster/
|
297
|
-
- test/
|
298
|
-
- test/controllers/inventorymaster/settings_controller_test.rb
|
299
|
-
- test/controllers/inventorymaster/areas_controller_test.rb
|
300
|
-
- test/controllers/inventorymaster/transactions_controller_test.rb
|
301
|
-
- test/controllers/inventorymaster/manufacturers_controller_test.rb
|
302
|
-
- test/controllers/inventorymaster/products_controller_test.rb
|
303
|
-
- test/controllers/inventorymaster/transaction_types_controller_test.rb
|
310
|
+
- test/fixtures/inventorymaster/transactions.yml
|
311
|
+
- test/integration/navigation_test.rb
|
304
312
|
- test/inventorymaster_test.rb
|
305
|
-
- test/models/inventorymaster/transaction_type_test.rb
|
306
313
|
- test/models/inventorymaster/area_test.rb
|
314
|
+
- test/models/inventorymaster/location_test.rb
|
315
|
+
- test/models/inventorymaster/manufacturer_test.rb
|
307
316
|
- test/models/inventorymaster/product_test.rb
|
308
317
|
- test/models/inventorymaster/setting_test.rb
|
309
|
-
- test/models/inventorymaster/manufacturer_test.rb
|
310
318
|
- test/models/inventorymaster/transaction_test.rb
|
311
|
-
- test/models/inventorymaster/
|
319
|
+
- test/models/inventorymaster/transaction_type_test.rb
|
312
320
|
- test/test_helper.rb
|