inventorymaster 0.0.9 → 0.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- 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
|