caboose-cms 0.7.55 → 0.7.57
Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 58a87dfdd169104d0678ba85f750809c5ab12e86
|
4
|
+
data.tar.gz: 09d6a88d924f0ee3ce3e953dc3e86187b770f7c1
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 245adebb5a83caf5a7671a3a3cae2d7c10b0651447b493679a8459c32568e2fe1e9bca51b6ce01d9ea8bc82a6ae12568e5ebbb5d5d43f783bd8dc02f722e55f3
|
7
|
+
data.tar.gz: 50d81237125c19672c000e71850ca3b3f8f725e54722440304c03c9b06e1fbbf720742ca7ce567556d30d93221c12ffad3489408717d16635339b33256b0a30b
|
data/app/models/caboose/order.rb
CHANGED
@@ -137,6 +137,8 @@ module Caboose
|
|
137
137
|
self.update_column(:gift_wrap , self.calculate_gift_wrap )
|
138
138
|
self.update_column(:discount , self.calculate_discount )
|
139
139
|
self.update_column(:total , self.calculate_total )
|
140
|
+
self.update_column(:cost , self.calculate_cost )
|
141
|
+
self.update_column(:profit , self.calculate_profit )
|
140
142
|
end
|
141
143
|
|
142
144
|
def calculate_subtotal
|
@@ -186,6 +188,22 @@ module Caboose
|
|
186
188
|
return (self.subtotal + self.tax + self.shipping + self.handling + self.gift_wrap) - self.discount
|
187
189
|
end
|
188
190
|
|
191
|
+
def calculate_cost
|
192
|
+
x = 0.0
|
193
|
+
invalid_cost = false
|
194
|
+
self.line_items.each do |li|
|
195
|
+
invalid_cost = true if li.variant.nil? || li.variant.cost.nil?
|
196
|
+
x = x + (li.variant.cost * li.quantity)
|
197
|
+
end
|
198
|
+
return 0.00 if invalid_cost
|
199
|
+
return x
|
200
|
+
end
|
201
|
+
|
202
|
+
def calculate_profit
|
203
|
+
return 0.00 if self.cost.nil?
|
204
|
+
return (self.total - (self.tax ? self.tax : 0.00) - (self.shipping ? self.shipping : 0.00) - (self.handling ? self.handling : 0.00) - (self.gift_wrap ? self.gift_wrap : 0.00)) - self.cost
|
205
|
+
end
|
206
|
+
|
189
207
|
def shipping_and_handling
|
190
208
|
(self.shipping ? self.shipping : 0.0) + (self.handling ? self.handling : 0.0)
|
191
209
|
end
|
@@ -343,7 +361,7 @@ module Caboose
|
|
343
361
|
|
344
362
|
end
|
345
363
|
return resp
|
346
|
-
end
|
364
|
+
end
|
347
365
|
|
348
366
|
#def refund
|
349
367
|
#
|
@@ -4,13 +4,15 @@ module Caboose
|
|
4
4
|
def OrderReporter.summary_report(site_id, d1, d2)
|
5
5
|
q = ["select
|
6
6
|
concat(date_part('year', date_authorized), '-', date_part('month', date_authorized), '-', date_part('day', date_authorized)),
|
7
|
-
count(*),
|
7
|
+
count(*),
|
8
8
|
sum(subtotal),
|
9
9
|
sum(tax),
|
10
10
|
sum(shipping),
|
11
11
|
sum(handling),
|
12
12
|
sum(discount),
|
13
|
-
sum(total)
|
13
|
+
sum(total),
|
14
|
+
sum(cost),
|
15
|
+
sum(profit)
|
14
16
|
from store_orders
|
15
17
|
where site_id = ?
|
16
18
|
and (financial_status = ? or financial_status = ?)
|
@@ -32,7 +34,9 @@ module Caboose
|
|
32
34
|
:shipping => row[4].to_f,
|
33
35
|
:handling => row[5].to_f,
|
34
36
|
:discount => row[6].to_f,
|
35
|
-
:total => row[7].to_f
|
37
|
+
:total => row[7].to_f,
|
38
|
+
:cost => row[8].to_f,
|
39
|
+
:profit => row[9].to_f
|
36
40
|
)
|
37
41
|
end
|
38
42
|
days.sort_by!{ |h| h.date }
|
@@ -49,7 +53,9 @@ module Caboose
|
|
49
53
|
:shipping => 0.0,
|
50
54
|
:handling => 0.0,
|
51
55
|
:discount => 0.0,
|
52
|
-
:total => 0.0
|
56
|
+
:total => 0.0,
|
57
|
+
:cost => 0.0,
|
58
|
+
:profit => 0.0
|
53
59
|
)
|
54
60
|
last_day = last_day + 1.day
|
55
61
|
end
|
@@ -67,9 +67,9 @@ class Caboose::Schema < Caboose::Utilities::Schema
|
|
67
67
|
:email ,
|
68
68
|
:payment_id ,
|
69
69
|
:gateway_id ,
|
70
|
-
|
71
|
-
|
72
|
-
|
70
|
+
#:date_authorized ,
|
71
|
+
#:date_captured ,
|
72
|
+
#:date_canceled ,
|
73
73
|
:shipping_carrier ,
|
74
74
|
:shipping_service_code ,
|
75
75
|
:shipping_service_name ,
|
@@ -409,6 +409,8 @@ class Caboose::Schema < Caboose::Utilities::Schema
|
|
409
409
|
[ :custom_discount , :decimal , { :precision => 8, :scale => 2 }],
|
410
410
|
[ :discount , :decimal , { :precision => 8, :scale => 2 }],
|
411
411
|
[ :total , :decimal , { :precision => 8, :scale => 2 }],
|
412
|
+
[ :cost , :decimal , { :precision => 8, :scale => 2, :default => 0.00 }],
|
413
|
+
[ :profit , :decimal , { :precision => 8, :scale => 2, :default => 0.00 }],
|
412
414
|
[ :customer_id , :integer ],
|
413
415
|
[ :financial_status , :string ],
|
414
416
|
[ :shipping_address_id , :integer ],
|
@@ -6,6 +6,8 @@ shipping = 0.0
|
|
6
6
|
handling = 0.0
|
7
7
|
discount = 0.0
|
8
8
|
total = 0.0
|
9
|
+
cost = 0.0
|
10
|
+
profit = 0.0
|
9
11
|
@rows.each do |row|
|
10
12
|
count = count + row.count
|
11
13
|
subtotal = subtotal + row.subtotal
|
@@ -14,6 +16,8 @@ total = 0.0
|
|
14
16
|
handling = handling + row.handling
|
15
17
|
discount = discount + row.discount
|
16
18
|
total = total + row.total
|
19
|
+
cost = cost + row.cost
|
20
|
+
profit = profit + row.profit
|
17
21
|
end
|
18
22
|
day_count = @rows.count
|
19
23
|
%>
|
@@ -30,13 +34,15 @@ day_count = @rows.count
|
|
30
34
|
|
31
35
|
<table class='data'>
|
32
36
|
<tr><th> </th><th>Total</th><th>Daily Average</th></tr>
|
33
|
-
<tr><td>Count
|
34
|
-
<tr><td>Subtotal
|
35
|
-
<tr><td>Tax
|
36
|
-
<tr><td>Shipping
|
37
|
-
<tr><td>Handling
|
38
|
-
<tr><td>Discount
|
39
|
-
<tr><td>Total
|
37
|
+
<tr><td>Count </td><td align='right'><%= count %></td><td align='right'><%= sprintf('%.1f', count.to_f / day_count) %></td></tr>
|
38
|
+
<tr><td>Subtotal </td><td align='right'>$<%= sprintf('%.2f', subtotal ) %></td><td align='right'>$<%= sprintf('%.2f', (subtotal > 0 && day_count > 0 ? (subtotal / day_count) : 0.00)) %></td></tr>
|
39
|
+
<tr><td>Tax </td><td align='right'>$<%= sprintf('%.2f', tax ) %></td><td align='right'>$<%= sprintf('%.2f', (tax > 0 && day_count > 0 ? (tax / day_count) : 0.00)) %></td></tr>
|
40
|
+
<tr><td>Shipping </td><td align='right'>$<%= sprintf('%.2f', shipping ) %></td><td align='right'>$<%= sprintf('%.2f', (shipping > 0 && day_count > 0 ? (shipping / day_count) : 0.00)) %></td></tr>
|
41
|
+
<tr><td>Handling </td><td align='right'>$<%= sprintf('%.2f', handling ) %></td><td align='right'>$<%= sprintf('%.2f', (handling > 0 && day_count > 0 ? (handling / day_count) : 0.00)) %></td></tr>
|
42
|
+
<tr><td>Discount </td><td align='right'>$<%= sprintf('%.2f', discount ) %></td><td align='right'>$<%= sprintf('%.2f', (discount > 0 && day_count > 0 ? (discount / day_count) : 0.00)) %></td></tr>
|
43
|
+
<tr><td>Total </td><td align='right'>$<%= sprintf('%.2f', total ) %></td><td align='right'>$<%= sprintf('%.2f', (total > 0 && day_count > 0 ? (total / day_count) : 0.00)) %></td></tr>
|
44
|
+
<tr><td>Cost of Goods </td><td align='right'>$<%= sprintf('%.2f', cost ) %></td><td align='right'>$<%= sprintf('%.2f', (cost > 0 && day_count > 0 ? (cost / day_count) : 0.00)) %></td></tr>
|
45
|
+
<tr><td>Profit </td><td align='right'>$<%= sprintf('%.2f', profit ) %></td><td align='right'>$<%= sprintf('%.2f', (profit > 0 && day_count > 0 ? (profit / day_count) : 0.00)) %></td></tr>
|
40
46
|
</table><br />
|
41
47
|
|
42
48
|
<div id='counts_chart'></div>
|
data/lib/caboose/version.rb
CHANGED
data/lib/tasks/caboose.rake
CHANGED
@@ -13,6 +13,14 @@ namespace :caboose do
|
|
13
13
|
puts Caboose::CommentRoutes.compare_routes
|
14
14
|
end
|
15
15
|
|
16
|
+
desc "Calculate order profits"
|
17
|
+
task :calculate_order_profits => :environment do
|
18
|
+
Caboose::Order.where("status = ? or status = ? or status = ?", Caboose::Order::STATUS_PENDING, Caboose::Order::STATUS_READY_TO_SHIP, Caboose::Order::STATUS_SHIPPED).reorder(:id).all.each do |order|
|
19
|
+
order.update_column(:cost , order.calculate_cost )
|
20
|
+
order.update_column(:profit , order.calculate_profit )
|
21
|
+
end
|
22
|
+
end
|
23
|
+
|
16
24
|
desc "Verify ELO and ELI roles exist for all sites"
|
17
25
|
task :init_site_users_and_roles => :environment do
|
18
26
|
Caboose::Site.all.each do |site|
|