accountant_clerk 0.6 → 0.7
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/Gemfile +7 -3
- data/Gemfile.lock +136 -85
- data/README.md +25 -23
- data/Rakefile +8 -0
- data/accountant_clerk.gemspec +2 -3
- data/app/assets/javascripts/accountant_report.js +4 -0
- data/app/assets/stylesheets/accountant_office.css +0 -2
- data/app/controllers/manage_controller_decorator.rb +20 -11
- data/app/views/manage/report.html.haml +26 -28
- data/config/i18n-tasks.yml +89 -0
- data/config/locales/en.yml +6 -7
- data/config/locales/fi.yml +6 -0
- data/lib/accountant_clerk/engine.rb +1 -1
- data/spec/controllers/orders_controller_spec.rb +1 -29
- data/spec/i18n_spec.rb +40 -0
- data/spec/routing/orders_routing_spec.rb +0 -4
- data/test_app/config/application.rb +1 -0
- data/test_app/config/environments/production.rb +1 -1
- data/test_app/config/environments/test.rb +1 -1
- data/test_app/db/migrate/20141114205525_clerks.office.rb +1 -1
- data/test_app/db/migrate/20141114205526_suppliers.office.rb +1 -1
- data/test_app/db/migrate/20141114205527_categories.office.rb +1 -1
- data/test_app/db/migrate/20141114205528_items.office.rb +1 -1
- data/test_app/db/migrate/20141114205529_orders.office.rb +1 -1
- data/test_app/db/migrate/20141114205530_baskets.office.rb +1 -1
- data/test_app/db/migrate/20141114205531_purchases.office.rb +1 -1
- data/test_app/db/migrate/20141114205532_products.office.rb +1 -1
- data/test_app/db/schema.rb +24 -24
- metadata +10 -6
- data/app/assets/stylesheets/flotomatic.css +0 -4
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 7f654e210d08a3bae4822300c1a5919c06f0d1d3
|
4
|
+
data.tar.gz: 425e014673f7036c9f735945d468f0cb5689803c
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 875612323666a5bb3398de2eec8896ab0c68eae237e8731bd249decf784afbfcfe504d241257475e67c71bb6d19f37edfa739a35182b5b99f7afa86e8f894da9
|
7
|
+
data.tar.gz: 87cccb549bf367b76caacf226e6169d14afade27a26d3fd824e7a5aa9d904c490d03aba80a55310e49efa7c07f72709e7e7ddc22fc3be64fbeee1f27721d1578
|
data/Gemfile
CHANGED
@@ -5,9 +5,13 @@ gem "accountant_clerk" , :path => "../"
|
|
5
5
|
|
6
6
|
gem 'sqlite3'
|
7
7
|
|
8
|
+
# those guys dropped 1.9 support, but i haven't
|
9
|
+
gem "autoprefixer-rails" , '< 6.0' , :platform => [:ruby_19]
|
10
|
+
|
11
|
+
|
8
12
|
#asset / production reelated
|
9
|
-
gem "therubyracer"
|
10
|
-
gem "libv8"
|
13
|
+
gem "therubyracer"
|
14
|
+
gem "libv8"
|
11
15
|
gem "rb-readline"
|
12
16
|
gem 'uglifier', '>= 1.3.0'
|
13
17
|
|
@@ -15,7 +19,7 @@ group :development do
|
|
15
19
|
gem 'better_errors' , :platforms=>[:mri_20, :mri_21, :rbx]
|
16
20
|
gem 'binding_of_caller', :platforms=>[:mri_19, :mri_20, :mri_21,:rbx]
|
17
21
|
gem 'quiet_assets'
|
18
|
-
|
22
|
+
gem "i18n-tasks"
|
19
23
|
end
|
20
24
|
group :test do
|
21
25
|
# gem "poltergeist"
|
data/Gemfile.lock
CHANGED
@@ -1,8 +1,8 @@
|
|
1
1
|
GIT
|
2
2
|
remote: git://github.com/rubyclerks/office_clerk.git
|
3
|
-
revision:
|
3
|
+
revision: 9b4b90d42bef4ea44f1f4c22d38e43c2f8c2cde3
|
4
4
|
specs:
|
5
|
-
office_clerk (0.
|
5
|
+
office_clerk (0.9)
|
6
6
|
bcrypt-ruby (~> 3.1)
|
7
7
|
best_in_place (~> 3.0)
|
8
8
|
bootstrap-sass (~> 3.1)
|
@@ -13,56 +13,68 @@ GIT
|
|
13
13
|
jquery-rails (~> 3.1)
|
14
14
|
jquery-ui-rails (~> 5.0)
|
15
15
|
kramdown (~> 1.5)
|
16
|
-
paperclip (~> 4.
|
17
|
-
rails (~> 4.
|
16
|
+
paperclip (~> 4.0)
|
17
|
+
rails (~> 4.2, < 5.0)
|
18
18
|
rails-i18n (~> 4.0)
|
19
|
-
ransack (~> 1.
|
20
|
-
sass-rails (~>
|
19
|
+
ransack (~> 1.7)
|
20
|
+
sass-rails (~> 5.0)
|
21
21
|
valid_email (~> 0.0, >= 0.0.10)
|
22
22
|
will_paginate-bootstrap (~> 1.0)
|
23
23
|
|
24
24
|
PATH
|
25
25
|
remote: ../
|
26
26
|
specs:
|
27
|
-
accountant_clerk (0.
|
27
|
+
accountant_clerk (0.7)
|
28
28
|
flot-rails (~> 0.0.6)
|
29
|
-
office_clerk (~> 0.
|
29
|
+
office_clerk (~> 0.9)
|
30
30
|
|
31
31
|
GEM
|
32
32
|
remote: https://rubygems.org/
|
33
33
|
specs:
|
34
|
-
actionmailer (4.
|
35
|
-
actionpack (= 4.
|
36
|
-
actionview (= 4.
|
34
|
+
actionmailer (4.2.5)
|
35
|
+
actionpack (= 4.2.5)
|
36
|
+
actionview (= 4.2.5)
|
37
|
+
activejob (= 4.2.5)
|
37
38
|
mail (~> 2.5, >= 2.5.4)
|
38
|
-
|
39
|
-
|
40
|
-
|
41
|
-
|
39
|
+
rails-dom-testing (~> 1.0, >= 1.0.5)
|
40
|
+
actionpack (4.2.5)
|
41
|
+
actionview (= 4.2.5)
|
42
|
+
activesupport (= 4.2.5)
|
43
|
+
rack (~> 1.6)
|
42
44
|
rack-test (~> 0.6.2)
|
43
|
-
|
44
|
-
|
45
|
+
rails-dom-testing (~> 1.0, >= 1.0.5)
|
46
|
+
rails-html-sanitizer (~> 1.0, >= 1.0.2)
|
47
|
+
actionview (4.2.5)
|
48
|
+
activesupport (= 4.2.5)
|
45
49
|
builder (~> 3.1)
|
46
50
|
erubis (~> 2.7.0)
|
47
|
-
|
48
|
-
|
51
|
+
rails-dom-testing (~> 1.0, >= 1.0.5)
|
52
|
+
rails-html-sanitizer (~> 1.0, >= 1.0.2)
|
53
|
+
activejob (4.2.5)
|
54
|
+
activesupport (= 4.2.5)
|
55
|
+
globalid (>= 0.3.0)
|
56
|
+
activemodel (4.2.5)
|
57
|
+
activesupport (= 4.2.5)
|
49
58
|
builder (~> 3.1)
|
50
|
-
activerecord (4.
|
51
|
-
activemodel (= 4.
|
52
|
-
activesupport (= 4.
|
53
|
-
arel (~>
|
54
|
-
activesupport (4.
|
55
|
-
i18n (~> 0.
|
59
|
+
activerecord (4.2.5)
|
60
|
+
activemodel (= 4.2.5)
|
61
|
+
activesupport (= 4.2.5)
|
62
|
+
arel (~> 6.0)
|
63
|
+
activesupport (4.2.5)
|
64
|
+
i18n (~> 0.7)
|
56
65
|
json (~> 1.7, >= 1.7.7)
|
57
66
|
minitest (~> 5.1)
|
58
|
-
thread_safe (~> 0.
|
67
|
+
thread_safe (~> 0.3, >= 0.3.4)
|
59
68
|
tzinfo (~> 1.1)
|
60
69
|
addressable (2.3.6)
|
61
|
-
arel (
|
62
|
-
|
70
|
+
arel (6.0.3)
|
71
|
+
autoprefixer-rails (5.2.1.3)
|
72
|
+
execjs
|
73
|
+
json
|
74
|
+
bcrypt (3.1.10)
|
63
75
|
bcrypt-ruby (3.1.5)
|
64
76
|
bcrypt (>= 3.1.3)
|
65
|
-
best_in_place (3.0
|
77
|
+
best_in_place (3.1.0)
|
66
78
|
actionpack (>= 3.2)
|
67
79
|
railties (>= 3.2)
|
68
80
|
better_errors (2.0.0)
|
@@ -71,9 +83,10 @@ GEM
|
|
71
83
|
rack (>= 0.9.0)
|
72
84
|
binding_of_caller (0.7.2)
|
73
85
|
debug_inspector (>= 0.0.1)
|
74
|
-
bootstrap-sass (3.3.
|
75
|
-
|
76
|
-
|
86
|
+
bootstrap-sass (3.3.6)
|
87
|
+
autoprefixer-rails (>= 5.2.1)
|
88
|
+
sass (>= 3.3.4)
|
89
|
+
bootstrap_form (2.3.0)
|
77
90
|
builder (3.2.2)
|
78
91
|
capybara (2.4.4)
|
79
92
|
mime-types (>= 1.16)
|
@@ -89,7 +102,7 @@ GEM
|
|
89
102
|
timers (~> 4.0.0)
|
90
103
|
climate_control (0.0.3)
|
91
104
|
activesupport (>= 3.0)
|
92
|
-
cocaine (0.5.
|
105
|
+
cocaine (0.5.8)
|
93
106
|
climate_control (>= 0.0.3, < 1.0)
|
94
107
|
codeclimate-test-reporter (0.4.1)
|
95
108
|
simplecov (>= 0.7.1, < 1.0.0)
|
@@ -97,20 +110,25 @@ GEM
|
|
97
110
|
coffee-rails (4.1.0)
|
98
111
|
coffee-script (>= 2.2.0)
|
99
112
|
railties (>= 4.0.0, < 5.0)
|
100
|
-
coffee-script (2.
|
113
|
+
coffee-script (2.4.1)
|
101
114
|
coffee-script-source
|
102
115
|
execjs
|
103
|
-
coffee-script-source (1.
|
116
|
+
coffee-script-source (1.10.0)
|
104
117
|
colored (1.2)
|
118
|
+
concurrent-ruby (1.0.0)
|
105
119
|
database_cleaner (1.3.0)
|
106
120
|
debug_inspector (0.0.2)
|
107
121
|
diff-lcs (1.2.5)
|
108
122
|
docile (1.1.5)
|
123
|
+
easy_translate (0.5.0)
|
124
|
+
json
|
125
|
+
thread
|
126
|
+
thread_safe
|
109
127
|
email_spec (1.6.0)
|
110
128
|
launchy (~> 2.1)
|
111
129
|
mail (~> 2.2)
|
112
130
|
erubis (2.7.0)
|
113
|
-
execjs (2.
|
131
|
+
execjs (2.6.0)
|
114
132
|
factory_girl (4.5.0)
|
115
133
|
activesupport (>= 3.0.0)
|
116
134
|
factory_girl_rails (4.5.0)
|
@@ -120,6 +138,8 @@ GEM
|
|
120
138
|
flot-rails (0.0.6)
|
121
139
|
jquery-rails
|
122
140
|
formatador (0.2.5)
|
141
|
+
globalid (0.3.6)
|
142
|
+
activesupport (>= 4.1.0)
|
123
143
|
gon (5.2.3)
|
124
144
|
actionpack (>= 2.3.0)
|
125
145
|
json
|
@@ -136,45 +156,58 @@ GEM
|
|
136
156
|
guard-rspec (4.3.1)
|
137
157
|
guard (~> 2.1)
|
138
158
|
rspec (>= 2.14, < 4.0)
|
139
|
-
haml (4.0.
|
159
|
+
haml (4.0.7)
|
140
160
|
tilt
|
141
|
-
|
161
|
+
highline (1.6.21)
|
142
162
|
hitimes (1.2.2)
|
143
163
|
i18n (0.7.0)
|
144
164
|
i18n-spec (0.6.0)
|
145
165
|
iso
|
166
|
+
i18n-tasks (0.7.10)
|
167
|
+
activesupport
|
168
|
+
easy_translate (>= 0.5.0)
|
169
|
+
erubis
|
170
|
+
highline
|
171
|
+
i18n
|
172
|
+
slop (>= 3.5.0)
|
173
|
+
term-ansicolor
|
174
|
+
terminal-table
|
146
175
|
iso (0.2.1)
|
147
176
|
i18n
|
148
|
-
jquery-rails (3.1.
|
177
|
+
jquery-rails (3.1.4)
|
149
178
|
railties (>= 3.0, < 5.0)
|
150
179
|
thor (>= 0.14, < 2.0)
|
151
|
-
jquery-ui-rails (5.0.
|
180
|
+
jquery-ui-rails (5.0.5)
|
152
181
|
railties (>= 3.2.16)
|
153
|
-
json (1.8.
|
154
|
-
kramdown (1.
|
182
|
+
json (1.8.3)
|
183
|
+
kramdown (1.9.0)
|
155
184
|
launchy (2.4.3)
|
156
185
|
addressable (~> 2.3)
|
157
|
-
libv8 (3.16.14.
|
186
|
+
libv8 (3.16.14.13)
|
158
187
|
listen (2.8.2)
|
159
188
|
celluloid (>= 0.15.2)
|
160
189
|
rb-fsevent (>= 0.9.3)
|
161
190
|
rb-inotify (>= 0.9)
|
191
|
+
loofah (2.0.3)
|
192
|
+
nokogiri (>= 1.5.9)
|
162
193
|
lumberjack (1.0.9)
|
163
194
|
mail (2.6.3)
|
164
195
|
mime-types (>= 1.16, < 3)
|
165
196
|
method_source (0.8.2)
|
166
|
-
mime-types (2.
|
197
|
+
mime-types (2.99)
|
198
|
+
mimemagic (0.3.0)
|
167
199
|
mini_portile (0.6.1)
|
168
|
-
minitest (5.
|
169
|
-
multi_json (1.
|
200
|
+
minitest (5.8.3)
|
201
|
+
multi_json (1.11.2)
|
170
202
|
nokogiri (1.6.4.1)
|
171
203
|
mini_portile (~> 0.6.0)
|
172
|
-
paperclip (4.2
|
173
|
-
activemodel (>= 3.
|
174
|
-
activesupport (>= 3.
|
175
|
-
cocaine (~> 0.5.
|
204
|
+
paperclip (4.3.2)
|
205
|
+
activemodel (>= 3.2.0)
|
206
|
+
activesupport (>= 3.2.0)
|
207
|
+
cocaine (~> 0.5.5)
|
176
208
|
mime-types
|
177
|
-
|
209
|
+
mimemagic (= 0.3.0)
|
210
|
+
polyamorous (1.3.0)
|
178
211
|
activerecord (>= 3.0)
|
179
212
|
pry (0.10.1)
|
180
213
|
coderay (~> 1.1.0)
|
@@ -182,40 +215,49 @@ GEM
|
|
182
215
|
slop (~> 3.4)
|
183
216
|
quiet_assets (1.0.3)
|
184
217
|
railties (>= 3.1, < 5.0)
|
185
|
-
rack (1.
|
186
|
-
rack-test (0.6.
|
218
|
+
rack (1.6.4)
|
219
|
+
rack-test (0.6.3)
|
187
220
|
rack (>= 1.0)
|
188
|
-
rails (4.
|
189
|
-
actionmailer (= 4.
|
190
|
-
actionpack (= 4.
|
191
|
-
actionview (= 4.
|
192
|
-
|
193
|
-
|
194
|
-
|
221
|
+
rails (4.2.5)
|
222
|
+
actionmailer (= 4.2.5)
|
223
|
+
actionpack (= 4.2.5)
|
224
|
+
actionview (= 4.2.5)
|
225
|
+
activejob (= 4.2.5)
|
226
|
+
activemodel (= 4.2.5)
|
227
|
+
activerecord (= 4.2.5)
|
228
|
+
activesupport (= 4.2.5)
|
195
229
|
bundler (>= 1.3.0, < 2.0)
|
196
|
-
railties (= 4.
|
197
|
-
sprockets-rails
|
198
|
-
rails-
|
199
|
-
|
230
|
+
railties (= 4.2.5)
|
231
|
+
sprockets-rails
|
232
|
+
rails-deprecated_sanitizer (1.0.3)
|
233
|
+
activesupport (>= 4.2.0.alpha)
|
234
|
+
rails-dom-testing (1.0.7)
|
235
|
+
activesupport (>= 4.2.0.beta, < 5.0)
|
236
|
+
nokogiri (~> 1.6.0)
|
237
|
+
rails-deprecated_sanitizer (>= 1.0.1)
|
238
|
+
rails-html-sanitizer (1.0.2)
|
239
|
+
loofah (~> 2.0)
|
240
|
+
rails-i18n (4.0.7)
|
241
|
+
i18n (~> 0.7)
|
200
242
|
railties (~> 4.0)
|
201
|
-
railties (4.
|
202
|
-
actionpack (= 4.
|
203
|
-
activesupport (= 4.
|
243
|
+
railties (4.2.5)
|
244
|
+
actionpack (= 4.2.5)
|
245
|
+
activesupport (= 4.2.5)
|
204
246
|
rake (>= 0.8.7)
|
205
247
|
thor (>= 0.18.1, < 2.0)
|
206
248
|
rake (10.4.2)
|
207
|
-
ransack (1.
|
249
|
+
ransack (1.7.0)
|
208
250
|
actionpack (>= 3.0)
|
209
251
|
activerecord (>= 3.0)
|
210
252
|
activesupport (>= 3.0)
|
211
253
|
i18n
|
212
|
-
polyamorous (~> 1.
|
254
|
+
polyamorous (~> 1.2)
|
213
255
|
rb-fsevent (0.9.4)
|
214
256
|
rb-inotify (0.9.5)
|
215
257
|
ffi (>= 0.5.0)
|
216
258
|
rb-readline (0.5.1)
|
217
259
|
ref (1.0.5)
|
218
|
-
request_store (1.1
|
260
|
+
request_store (1.2.1)
|
219
261
|
rspec (3.1.0)
|
220
262
|
rspec-core (~> 3.1.0)
|
221
263
|
rspec-expectations (~> 3.1.0)
|
@@ -236,42 +278,46 @@ GEM
|
|
236
278
|
rspec-mocks (~> 3.1.0)
|
237
279
|
rspec-support (~> 3.1.0)
|
238
280
|
rspec-support (3.1.2)
|
239
|
-
sass (3.
|
240
|
-
sass-rails (
|
281
|
+
sass (3.4.20)
|
282
|
+
sass-rails (5.0.4)
|
241
283
|
railties (>= 4.0.0, < 5.0)
|
242
|
-
sass (~> 3.
|
243
|
-
sprockets (
|
244
|
-
sprockets-rails (
|
284
|
+
sass (~> 3.1)
|
285
|
+
sprockets (>= 2.8, < 4.0)
|
286
|
+
sprockets-rails (>= 2.0, < 4.0)
|
287
|
+
tilt (>= 1.1, < 3)
|
245
288
|
simplecov (0.9.1)
|
246
289
|
docile (~> 1.1.0)
|
247
290
|
multi_json (~> 1.0)
|
248
291
|
simplecov-html (~> 0.8.0)
|
249
292
|
simplecov-html (0.8.0)
|
250
293
|
slop (3.6.0)
|
251
|
-
sprockets (
|
252
|
-
|
253
|
-
|
254
|
-
|
255
|
-
tilt (~> 1.1, != 1.3.0)
|
256
|
-
sprockets-rails (2.2.2)
|
294
|
+
sprockets (3.5.2)
|
295
|
+
concurrent-ruby (~> 1.0)
|
296
|
+
rack (> 1, < 3)
|
297
|
+
sprockets-rails (2.3.3)
|
257
298
|
actionpack (>= 3.0)
|
258
299
|
activesupport (>= 3.0)
|
259
300
|
sprockets (>= 2.8, < 4.0)
|
260
301
|
sqlite3 (1.3.10)
|
302
|
+
term-ansicolor (1.3.0)
|
303
|
+
tins (~> 1.0)
|
304
|
+
terminal-table (1.4.5)
|
261
305
|
therubyracer (0.12.1)
|
262
306
|
libv8 (~> 3.16.14.0)
|
263
307
|
ref
|
264
308
|
thor (0.19.1)
|
265
|
-
|
266
|
-
|
309
|
+
thread (0.1.4)
|
310
|
+
thread_safe (0.3.5)
|
311
|
+
tilt (2.0.1)
|
267
312
|
timers (4.0.1)
|
268
313
|
hitimes
|
314
|
+
tins (1.3.3)
|
269
315
|
tzinfo (1.2.2)
|
270
316
|
thread_safe (~> 0.1)
|
271
317
|
uglifier (2.5.3)
|
272
318
|
execjs (>= 0.3.0)
|
273
319
|
json (>= 1.8.0)
|
274
|
-
valid_email (0.0.
|
320
|
+
valid_email (0.0.11)
|
275
321
|
activemodel
|
276
322
|
mail (~> 2.6.1)
|
277
323
|
will_paginate (3.0.7)
|
@@ -285,6 +331,7 @@ PLATFORMS
|
|
285
331
|
|
286
332
|
DEPENDENCIES
|
287
333
|
accountant_clerk!
|
334
|
+
autoprefixer-rails (< 6.0)
|
288
335
|
better_errors
|
289
336
|
binding_of_caller
|
290
337
|
capybara
|
@@ -296,7 +343,8 @@ DEPENDENCIES
|
|
296
343
|
guard-rails
|
297
344
|
guard-rspec
|
298
345
|
i18n-spec
|
299
|
-
|
346
|
+
i18n-tasks
|
347
|
+
libv8
|
300
348
|
office_clerk!
|
301
349
|
quiet_assets
|
302
350
|
rb-readline
|
@@ -304,3 +352,6 @@ DEPENDENCIES
|
|
304
352
|
sqlite3
|
305
353
|
therubyracer
|
306
354
|
uglifier (>= 1.3.0)
|
355
|
+
|
356
|
+
BUNDLED WITH
|
357
|
+
1.10.6
|
data/README.md
CHANGED
@@ -1,22 +1,27 @@
|
|
1
1
|
Accountant Clerk
|
2
2
|
================
|
3
3
|
|
4
|
-
This is a tool to give shop owners the ability to find out how their products are performing. As such it concentrates on the quantity of products sold, ie Items.
|
4
|
+
This is a tool to give [clerk](http://rubyclerks.org/) shop owners the ability to find out how their products are performing. As such it concentrates on the quantity of products sold, ie Items.
|
5
5
|
|
6
|
-
What started as a very simple reporting system
|
6
|
+
What started as a very simple reporting system, is now able to provide quite a host of useful functionality.
|
7
7
|
|
8
|
-
Search
|
8
|
+
Search is provided for either completed Orders, or Purchases.
|
9
|
+
You can search for (any combination of):
|
9
10
|
|
10
11
|
- Product name contains
|
11
|
-
- Category
|
12
|
+
- Category
|
13
|
+
- Supplier
|
12
14
|
- Within a date range
|
15
|
+
- Properties
|
16
|
+
- Price range
|
13
17
|
|
14
|
-
You can group results, resulting in a stacked bar-graph, but you
|
18
|
+
You can group results, resulting in a stacked bar-graph, but you also get numeric sums for the group. Group results by:
|
15
19
|
|
16
|
-
- nothing (just a summary)
|
20
|
+
- nothing (just a summary per time interval)
|
17
21
|
- Category
|
22
|
+
- Supplier
|
18
23
|
- Product
|
19
|
-
|
24
|
+
- ProductLine
|
20
25
|
|
21
26
|
And show a bar graph for the following time intervals:
|
22
27
|
|
@@ -24,9 +29,10 @@ And show a bar graph for the following time intervals:
|
|
24
29
|
- Week
|
25
30
|
- Month
|
26
31
|
|
27
|
-
The resulting
|
32
|
+
The resulting graph may display:
|
28
33
|
|
29
34
|
- Price
|
35
|
+
- Profit
|
30
36
|
- Amount
|
31
37
|
|
32
38
|
Usage scenarios
|
@@ -36,9 +42,12 @@ The general idea is to start with an overview and drill down into interesting we
|
|
36
42
|
|
37
43
|
For example, start with a year view by month, and group by Category. As a result you see which of your Categorys sells best and when it is selling the most. This may help you to create promotions at the right time for example.
|
38
44
|
|
39
|
-
Say you have already found your strongest
|
45
|
+
Say you have already found your strongest Categories but want to break it down by Supplier.
|
46
|
+
So enter the Category, and group by Supplier: Thus you find the best selling supplier in that category and you may want to add a cross-sell for it, or an up-sell for similar products by other suppliers.
|
47
|
+
|
48
|
+
Then you could add the supplier name to the search, and then group by Product. You then see the best selling Products of that Supplier in that Category.
|
40
49
|
|
41
|
-
Then
|
50
|
+
Then, if you remove the categoryfrom the search, the best selling Products of that supplier.
|
42
51
|
|
43
52
|
In fact I often alternate between two properties. Search by one property, group by another and back and forth.
|
44
53
|
|
@@ -51,9 +60,9 @@ gem "accountant_clerk"
|
|
51
60
|
|
52
61
|
to your Gemfile and bundle.
|
53
62
|
|
54
|
-
There are no external dependencies and the only javascript file is referenced from the one template. So no further actions
|
63
|
+
There are no external dependencies and the only javascript file is referenced from the one template. So no further actions is needed.
|
55
64
|
|
56
|
-
Warning
|
65
|
+
**Warning**: Do not do silly queries as they will slow down your production environment. For intensive work I suggest to copy your database, ie with fixtures_dump, to your local machine first.
|
57
66
|
|
58
67
|
Status
|
59
68
|
======
|
@@ -67,19 +76,12 @@ Issues
|
|
67
76
|
|
68
77
|
The metasearch with subsequent ruby code approach has served well to get the project up quick. For larger datasets a more hand crafted sql approach may be needed.
|
69
78
|
|
70
|
-
|
71
|
-
|
72
|
-
Also it is quite simple to grind your database and server to a halt by grouping by product, and reporting a year by day.
|
79
|
+
Also it is quite simple to grind your database and server to a halt by grouping by product, and reporting a year by day. All data gets loaded into memory!
|
73
80
|
|
74
81
|
Plans
|
75
82
|
=====
|
76
83
|
|
77
|
-
|
78
|
-
|
79
|
-
- Reports about inventory
|
80
|
-
- Reports about Order numbers
|
81
|
-
- Grouping by customer
|
82
|
-
|
83
|
-
Started to use gon now, but still the code could use cleaning (and testing)
|
84
|
+
This really does everything we ever need by now. So the only thing still rubbing me is the memory issue and lack of tests.
|
85
|
+
But since it works well for our datasets (3000 Orders per year) on our machine (32GB) , i am in no rush.
|
84
86
|
|
85
|
-
Copyright (c) 2014 [Torsten Ruger], released under the
|
87
|
+
Copyright (c) 2010-2014 [Torsten Ruger], released under the MIT License
|