accountant_clerk 0.6 → 0.7
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/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
|