caboose-cms 0.5.175 → 0.5.176
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +8 -8
- data/app/assets/javascripts/caboose/admin_edit_order.js +54 -19
- data/app/controllers/caboose/line_items_controller.rb +15 -9
- data/app/controllers/caboose/my_account_orders_controller.rb +3 -3
- data/app/controllers/caboose/order_packages_controller.rb +7 -2
- data/app/controllers/caboose/orders_controller.rb +33 -5
- data/app/views/caboose/orders_mailer/customer_payment_authorization.html.erb +1 -1
- data/config/routes.rb +3 -1
- data/lib/caboose/version.rb +1 -1
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,15 +1,15 @@
|
|
1
1
|
---
|
2
2
|
!binary "U0hBMQ==":
|
3
3
|
metadata.gz: !binary |-
|
4
|
-
|
4
|
+
ODY1NTkwODZhZWFhNDJlMDJkYWE1OGY5NTA4NDViMGM4NWU3OGJkZQ==
|
5
5
|
data.tar.gz: !binary |-
|
6
|
-
|
6
|
+
YzE0M2EwOTJhYjdhYmZjZWM4NTYyZjdkMWJmMWNjYjdkYzNiMTc2ZQ==
|
7
7
|
SHA512:
|
8
8
|
metadata.gz: !binary |-
|
9
|
-
|
10
|
-
|
11
|
-
|
9
|
+
NzVhYWExY2M0YzIxZDA0YWYyYzdjM2VmZGQ1ZjEzNmM4MjJkMTU1NGFlMDIz
|
10
|
+
ZDcwOWY2NzA5MWJlYzg2NDA3YjhhMTM2MTg1MjU1ODBiOWE0MmMxOWUyODgx
|
11
|
+
ZTM5ZDBlNzRjMmRkNDI2ODY0NmY3NzhkZDNmNWNhYzM3OWE0YzQ=
|
12
12
|
data.tar.gz: !binary |-
|
13
|
-
|
14
|
-
|
15
|
-
|
13
|
+
MmU2M2JmMzI1OWZjYjFhYWU5NTY4NmEyNjEwNDZkZjcwNTA0OTg2MWFkYWVl
|
14
|
+
YmI5ZDdjZGE2YzRjZmVhMjAyZTAyMTkwOWE2M2UyNmRhM2JkY2IzNTY4ZmJj
|
15
|
+
YzM4MjdiYTdhYTM2YmQ0ZTk5ZmExZWIyZjg2Y2E5ZThjM2QzMjE=
|
@@ -16,13 +16,14 @@ OrderController.prototype = {
|
|
16
16
|
$(document).ready(function() { that.refresh(); });
|
17
17
|
},
|
18
18
|
|
19
|
-
refresh: function()
|
19
|
+
refresh: function(after)
|
20
20
|
{
|
21
21
|
var that = this;
|
22
22
|
that.refresh_order(function() {
|
23
23
|
$('#order_table').html("<p class='loading'>Getting order...</p>");
|
24
24
|
that.print();
|
25
|
-
that.make_editable();
|
25
|
+
that.make_editable();
|
26
|
+
if (after) after();
|
26
27
|
});
|
27
28
|
},
|
28
29
|
|
@@ -33,11 +34,23 @@ OrderController.prototype = {
|
|
33
34
|
url: '/admin/orders/' + that.order_id + '/json',
|
34
35
|
success: function(order) {
|
35
36
|
that.order = order;
|
36
|
-
|
37
|
+
that.refresh_numbers();
|
38
|
+
if (after) after();
|
37
39
|
}
|
38
40
|
});
|
39
41
|
},
|
40
42
|
|
43
|
+
refresh_numbers: function()
|
44
|
+
{
|
45
|
+
var that = this;
|
46
|
+
$('#subtotal').html(curr(that.order.subtotal));
|
47
|
+
$('#shipping').html(curr(that.order.shipping));
|
48
|
+
$('#total' ).html(curr(that.order.total ));
|
49
|
+
$.each(that.order.line_items, function(i, li) {
|
50
|
+
$('#li_' + li.id + '_subtotal').html(curr(li.subtotal));
|
51
|
+
});
|
52
|
+
},
|
53
|
+
|
41
54
|
make_editable: function()
|
42
55
|
{
|
43
56
|
var that = this;
|
@@ -51,7 +64,7 @@ OrderController.prototype = {
|
|
51
64
|
{ name: 'status' , nice_name: 'Status' , type: 'select' , value: op.status , width: 300, fixed_placeholder: true , options_url: '/admin/orders/line-items/status-options' },
|
52
65
|
{ name: 'package_method' , nice_name: 'Package/Method' , type: 'select' , value: op.shipping_package_id + '_' + op.shipping_method_id , width: 300, fixed_placeholder: false, options_url: '/admin/shipping-packages/package-method-options' },
|
53
66
|
{ name: 'tracking_number' , nice_name: 'Tracking Number' , type: 'text' , value: op.tracking_number , width: 300, fixed_placeholder: true, align: 'right' },
|
54
|
-
{ name: 'total' , nice_name: 'Shipping Total' , type: 'text' , value: curr(op.total) , width: 300, fixed_placeholder: true, align: 'right' }
|
67
|
+
{ name: 'total' , nice_name: 'Shipping Total' , type: 'text' , value: curr(op.total) , width: 300, fixed_placeholder: true, align: 'right' , after_update: function() { that.refresh_order(); }}
|
55
68
|
]
|
56
69
|
});
|
57
70
|
});
|
@@ -64,7 +77,7 @@ OrderController.prototype = {
|
|
64
77
|
attributes: [
|
65
78
|
{ name: 'status' , nice_name: 'Status' , type: 'select' , align: 'left' , value: li.status , text: li.status, width: 150, fixed_placeholder: false, options_url: '/admin/orders/line-items/status-options' },
|
66
79
|
{ name: 'tracking_number' , nice_name: 'Tracking Number' , type: 'text' , align: 'left' , value: li.tracking_number , width: 200, fixed_placeholder: false },
|
67
|
-
{ name: 'quantity' , nice_name: 'Quantity' , type: 'text' , align: 'right', value: li.quantity , width: 75, fixed_placeholder: false, after_update: function() { that.
|
80
|
+
{ name: 'quantity' , nice_name: 'Quantity' , type: 'text' , align: 'right', value: li.quantity , width: 75, fixed_placeholder: false, after_update: function() { that.refresh_order(); } }
|
68
81
|
]
|
69
82
|
});
|
70
83
|
});
|
@@ -75,9 +88,9 @@ OrderController.prototype = {
|
|
75
88
|
authenticity_token: that.authenticity_token,
|
76
89
|
attributes: [
|
77
90
|
{ name: 'status' , nice_name: 'Status' , type: 'select', value: that.order.status , width: 100, fixed_placeholder: false, options_url: '/admin/orders/status-options' },
|
78
|
-
{ name: 'tax' , nice_name: 'Tax' , type: 'text' , value: curr(that.order.tax) , width: 100, fixed_placeholder: false, align: 'right' },
|
79
|
-
{ name: 'handling' , nice_name: 'Handling' , type: 'text' , value: curr(that.order.handling) , width: 100, fixed_placeholder: false, align: 'right' },
|
80
|
-
{ name: 'custom_discount', nice_name: 'Discount' , type: 'text' , value: curr(that.order.custom_discount) , width: 100, fixed_placeholder: false, align: 'right' }
|
91
|
+
{ name: 'tax' , nice_name: 'Tax' , type: 'text' , value: curr(that.order.tax) , width: 100, fixed_placeholder: false, align: 'right' , after_update: function() { that.refresh_order(); }},
|
92
|
+
{ name: 'handling' , nice_name: 'Handling' , type: 'text' , value: curr(that.order.handling) , width: 100, fixed_placeholder: false, align: 'right' , after_update: function() { that.refresh_order(); }},
|
93
|
+
{ name: 'custom_discount', nice_name: 'Discount' , type: 'text' , value: curr(that.order.custom_discount) , width: 100, fixed_placeholder: false, align: 'right' , after_update: function() { that.refresh_order(); }}
|
81
94
|
]
|
82
95
|
});
|
83
96
|
},
|
@@ -657,10 +670,10 @@ OrderController.prototype = {
|
|
657
670
|
|
658
671
|
if (that.order.line_items.length > 0)
|
659
672
|
{
|
660
|
-
table.append($('<tr/>').append($('<td/>').attr('colspan', '5').attr('align', 'right').html('Subtotal'
|
661
|
-
table.append($('<tr/>').append($('<td/>').attr('colspan', '5').attr('align', 'right').
|
662
|
-
table.append($('<tr/>').append($('<td/>').attr('colspan', '5').attr('align', 'right').html('Shipping'
|
663
|
-
table.append($('<tr/>').append($('<td/>').attr('colspan', '5').attr('align', 'right').
|
673
|
+
table.append($('<tr/>').append($('<td/>').attr('colspan', '5').attr('align', 'right').html('Subtotal' )).append($('<td/>').attr('align', 'right').attr('id', 'subtotal').html(curr(that.order.subtotal))));
|
674
|
+
table.append($('<tr/>').append($('<td/>').attr('colspan', '5').attr('align', 'right').append('Tax ' ).append($('<a/>').attr('href', '#').html('(calculate)').click(function(e) { e.preventDefault(); that.calculate_tax(); }))).append($('<td/>').attr('align', 'right').append($('<div/>').attr('id', 'order_' + that.order.id + '_tax'))));
|
675
|
+
table.append($('<tr/>').append($('<td/>').attr('colspan', '5').attr('align', 'right').html('Shipping' )).append($('<td/>').attr('align', 'right').attr('id', 'shipping').html(curr(that.order.shipping))));
|
676
|
+
table.append($('<tr/>').append($('<td/>').attr('colspan', '5').attr('align', 'right').append('Handling ' ).append($('<a/>').attr('href', '#').html('(calculate)').click(function(e) { e.preventDefault(); that.calculate_handling(); }))).append($('<td/>').attr('align', 'right').append($('<div/>').attr('id', 'order_' + that.order.id + '_handling'))));
|
664
677
|
if (that.order.discounts)
|
665
678
|
{
|
666
679
|
$.each(that.order.discounts, function(i, d) {
|
@@ -829,13 +842,30 @@ OrderController.prototype = {
|
|
829
842
|
$.ajax({
|
830
843
|
url: '/admin/orders/' + that.order.id + '/send-for-authorization',
|
831
844
|
success: function(resp) {
|
832
|
-
if (resp.error)
|
833
|
-
if (resp.success) {
|
834
|
-
if (resp.refresh) { $('#message').empty(); that.refresh(); }
|
845
|
+
if (resp.error) { that.flash_error(resp.error); }
|
846
|
+
if (resp.success) { that.refresh(function() { that.flash_success("An email has been sent successfully to the customer."); }); }
|
835
847
|
}
|
836
848
|
});
|
837
849
|
},
|
838
850
|
|
851
|
+
calculate_tax: function()
|
852
|
+
{
|
853
|
+
var that = this;
|
854
|
+
$.ajax({
|
855
|
+
url: '/admin/orders/' + that.order_id + '/calculate-tax',
|
856
|
+
success: function(resp) { that.refresh_order(function() { $('#order_' + that.order.id + '_tax').val(that.order.tax); }); }
|
857
|
+
});
|
858
|
+
},
|
859
|
+
|
860
|
+
calculate_handling: function()
|
861
|
+
{
|
862
|
+
var that = this;
|
863
|
+
$.ajax({
|
864
|
+
url: '/admin/orders/' + that.order_id + '/calculate-handling',
|
865
|
+
success: function(resp) { that.refresh_order(function() { $('#order_' + that.order.id + '_handling').val(that.order.handling); }); }
|
866
|
+
});
|
867
|
+
},
|
868
|
+
|
839
869
|
has_shippable_items: function()
|
840
870
|
{
|
841
871
|
var that = this;
|
@@ -847,6 +877,15 @@ OrderController.prototype = {
|
|
847
877
|
return needs_shipping;
|
848
878
|
},
|
849
879
|
|
880
|
+
flash_success: function(str, length) { this.flash_message("<p class='note success'>" + str + "</p>", length); },
|
881
|
+
flash_error: function(str, length) { this.flash_message("<p class='note error'>" + str + "</p>", length); },
|
882
|
+
flash_message: function(str, length)
|
883
|
+
{
|
884
|
+
if (!length) length = 5000;
|
885
|
+
$('#message').empty().append(str);
|
886
|
+
setTimeout(function() { $('#message').slideUp(function() { $('#message').empty().show(); }); }, length);
|
887
|
+
}
|
888
|
+
|
850
889
|
//resend_confirmation: function(order_id)
|
851
890
|
//{
|
852
891
|
// modal.autosize("<p class='loading'>Resending confirmation..</p>");
|
@@ -885,7 +924,3 @@ OrderController.prototype = {
|
|
885
924
|
//},
|
886
925
|
|
887
926
|
};
|
888
|
-
|
889
|
-
|
890
|
-
|
891
|
-
|
@@ -47,23 +47,29 @@ module Caboose
|
|
47
47
|
when 'order_package_id' then li.order_package_id = value
|
48
48
|
when 'variant_id' then li.variant_id = value
|
49
49
|
when 'parent_id' then li.parent_id = value
|
50
|
-
when 'unit_price' then li.unit_price = value
|
51
|
-
when 'subtotal' then li.subtotal = value
|
50
|
+
#when 'unit_price' then li.unit_price = value
|
51
|
+
#when 'subtotal' then li.subtotal = value
|
52
52
|
when 'notes' then li.notes = value
|
53
53
|
when 'custom1' then li.custom1 = value
|
54
54
|
when 'custom2' then li.custom2 = value
|
55
55
|
when 'custom3' then li.custom3 = value
|
56
56
|
when 'quantity'
|
57
57
|
li.quantity = value
|
58
|
+
li.subtotal = li.unit_price * li.quantity
|
59
|
+
|
58
60
|
li.save
|
59
|
-
|
61
|
+
|
62
|
+
|
63
|
+
li.order.subtotal = li.order.calculate_subtotal
|
64
|
+
li.order.total = li.order.calculate_total
|
65
|
+
|
60
66
|
# Recalculate everything
|
61
|
-
r = ShippingCalculator.rate(li.order, li.order.shipping_method_code)
|
62
|
-
li.order.shipping = r['negotiated_rate'] / 100
|
63
|
-
li.order.handling = (r['negotiated_rate'] / 100) * 0.05
|
64
|
-
li.order.tax = TaxCalculator.tax(li.order)
|
65
|
-
li.order.calculate_total
|
66
|
-
li.order.save
|
67
|
+
#r = ShippingCalculator.rate(li.order, li.order.shipping_method_code)
|
68
|
+
#li.order.shipping = r['negotiated_rate'] / 100
|
69
|
+
#li.order.handling = (r['negotiated_rate'] / 100) * 0.05
|
70
|
+
#li.order.tax = TaxCalculator.tax(li.order)
|
71
|
+
#li.order.calculate_total
|
72
|
+
#li.order.save
|
67
73
|
|
68
74
|
when 'tracking_number'
|
69
75
|
li.tracking_number = value
|
@@ -6,8 +6,8 @@ module Caboose
|
|
6
6
|
|
7
7
|
# GET /my-account/orders
|
8
8
|
def index
|
9
|
-
return if !
|
10
|
-
|
9
|
+
return if !verify_logged_in
|
10
|
+
|
11
11
|
@pager = Caboose::PageBarGenerator.new(params, {
|
12
12
|
'customer_id' => logged_in_user.id,
|
13
13
|
'status' => [Order::STATUS_PENDING, Order::STATUS_CANCELED, Order::STATUS_READY_TO_SHIP, Order::STATUS_SHIPPED]
|
@@ -23,7 +23,7 @@ module Caboose
|
|
23
23
|
|
24
24
|
# GET /my-account/orders/:id
|
25
25
|
def edit
|
26
|
-
return if !
|
26
|
+
return if !verify_logged_in
|
27
27
|
|
28
28
|
@order = Order.find(params[:id])
|
29
29
|
if @order.customer_id != logged_in_user.id
|
@@ -57,8 +57,13 @@ module Caboose
|
|
57
57
|
op.shipping_method_id = arr[1]
|
58
58
|
end
|
59
59
|
end
|
60
|
-
|
61
|
-
|
60
|
+
|
61
|
+
op.save
|
62
|
+
op.order.shipping = op.order.calculate_shipping
|
63
|
+
op.order.total = op.order.calculate_total
|
64
|
+
op.order.save
|
65
|
+
|
66
|
+
resp.success = true
|
62
67
|
render :json => resp
|
63
68
|
end
|
64
69
|
|
@@ -55,9 +55,29 @@ module Caboose
|
|
55
55
|
def admin_edit
|
56
56
|
return if !user_is_allowed('orders', 'edit')
|
57
57
|
@order = Order.find(params[:id])
|
58
|
-
|
58
|
+
#@order.calculate
|
59
59
|
render :layout => 'caboose/admin'
|
60
60
|
end
|
61
|
+
|
62
|
+
# GET /admin/orders/:id/calculate-tax
|
63
|
+
def admin_calculate_tax
|
64
|
+
return if !user_is_allowed('orders', 'edit')
|
65
|
+
order = Order.find(params[:id])
|
66
|
+
order.tax = order.calculate_tax
|
67
|
+
order.total = order.calculate_total
|
68
|
+
order.save
|
69
|
+
render :json => { :success => true }
|
70
|
+
end
|
71
|
+
|
72
|
+
# GET /admin/orders/:id/calculate-handling
|
73
|
+
def admin_calculate_handling
|
74
|
+
return if !user_is_allowed('orders', 'edit')
|
75
|
+
order = Order.find(params[:id])
|
76
|
+
order.handling = order.calculate_handling
|
77
|
+
order.total = order.calculate_total
|
78
|
+
order.save
|
79
|
+
render :json => { :success => true }
|
80
|
+
end
|
61
81
|
|
62
82
|
# GET /admin/orders/:id/capture
|
63
83
|
def capture_funds
|
@@ -146,17 +166,25 @@ module Caboose
|
|
146
166
|
save = true
|
147
167
|
params.each do |name,value|
|
148
168
|
case name
|
149
|
-
when 'tax' then
|
150
|
-
|
151
|
-
|
169
|
+
when 'tax' then
|
170
|
+
order.tax = value
|
171
|
+
order.total = order.calculate_total
|
172
|
+
when 'handling' then
|
173
|
+
order.handling = value
|
174
|
+
order.total = order.calculate_total
|
152
175
|
when 'custom_discount' then
|
153
176
|
order.custom_discount = value
|
154
177
|
order.discount = order.calculate_discount
|
178
|
+
order.total = order.calculate_total
|
155
179
|
when 'status' then order.status = value
|
156
180
|
when 'customer_id' then order.customer_id = value
|
157
181
|
end
|
158
182
|
end
|
159
|
-
|
183
|
+
|
184
|
+
#order.calculate
|
185
|
+
#order.calculate_total
|
186
|
+
#resp.attributes['total'] = { 'value' => order.total }
|
187
|
+
|
160
188
|
resp.success = save && order.save
|
161
189
|
render :json => resp
|
162
190
|
end
|
@@ -1,5 +1,5 @@
|
|
1
1
|
<p><img src='<%= @order.site.logo.url(:thumb) %>' /></p>
|
2
2
|
|
3
3
|
<h1>Order <%= @order.order_number %> is ready for payment!</h1>
|
4
|
-
<p>Please <a href='http://<%= raw @order.site.primary_domain %>/my-account/orders/<%= @order.id %>'>review your order</a> and submit payment.</p>
|
4
|
+
<p>Please <a href='http://<%= raw @order.site.primary_domain.domain %>/my-account/orders/<%= @order.id %>'>review your order</a> and submit payment.</p>
|
5
5
|
<p>Thank you!</p>
|
data/config/routes.rb
CHANGED
@@ -516,7 +516,9 @@ Caboose::Engine.routes.draw do
|
|
516
516
|
get "/admin/orders/test-gmail" => "orders#admin_mail_test_gmail"
|
517
517
|
get "/admin/orders/status-options" => "orders#admin_status_options"
|
518
518
|
get "/admin/orders/new" => "orders#admin_new"
|
519
|
-
get "/admin/orders/print-pending" => "orders#admin_print_pending"
|
519
|
+
get "/admin/orders/print-pending" => "orders#admin_print_pending"
|
520
|
+
get "/admin/orders/:id/calculate-tax" => "orders#admin_calculate_tax"
|
521
|
+
get "/admin/orders/:id/calculate-handling" => "orders#admin_calculate_handling"
|
520
522
|
get "/admin/orders/:id/send-for-authorization" => "orders#admin_send_for_authorization"
|
521
523
|
get "/admin/orders/:id/capture" => "orders#capture_funds"
|
522
524
|
get "/admin/orders/:id/json" => "orders#admin_json"
|
data/lib/caboose/version.rb
CHANGED
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: caboose-cms
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.5.
|
4
|
+
version: 0.5.176
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- William Barry
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2015-03-
|
11
|
+
date: 2015-03-26 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: pg
|