caboose-cms 0.7.55 → 0.7.57
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
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|
|