effective_orders 4.6.0 → 5.0.0
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/MIT-LICENSE +1 -1
- data/README.md +11 -86
- data/app/controllers/admin/customers_controller.rb +5 -16
- data/app/controllers/admin/order_items_controller.rb +6 -9
- data/app/controllers/admin/orders_controller.rb +17 -81
- data/app/controllers/effective/carts_controller.rb +10 -6
- data/app/controllers/effective/customers_controller.rb +4 -2
- data/app/controllers/effective/orders_controller.rb +27 -23
- data/app/controllers/effective/providers/cheque.rb +3 -1
- data/app/controllers/effective/providers/free.rb +3 -1
- data/app/controllers/effective/providers/mark_as_paid.rb +4 -2
- data/app/controllers/effective/providers/moneris.rb +3 -1
- data/app/controllers/effective/providers/paypal.rb +3 -2
- data/app/controllers/effective/providers/phone.rb +3 -1
- data/app/controllers/effective/providers/pretend.rb +3 -1
- data/app/controllers/effective/providers/refund.rb +3 -1
- data/app/controllers/effective/providers/stripe.rb +3 -1
- data/app/controllers/effective/subscripter_controller.rb +4 -2
- data/app/controllers/effective/webhooks_controller.rb +12 -3
- data/app/datatables/admin/effective_customers_datatable.rb +7 -3
- data/app/datatables/admin/effective_orders_datatable.rb +2 -2
- data/app/datatables/effective_orders_datatable.rb +1 -1
- data/app/mailers/effective/orders_mailer.rb +131 -96
- data/app/models/concerns/acts_as_purchasable.rb +0 -11
- data/app/models/concerns/acts_as_subscribable.rb +0 -6
- data/app/models/effective/cart.rb +7 -5
- data/app/models/effective/cart_item.rb +7 -4
- data/app/models/effective/customer.rb +7 -6
- data/app/models/effective/order.rb +51 -38
- data/app/models/effective/order_item.rb +10 -8
- data/app/models/effective/product.rb +9 -6
- data/app/models/effective/subscription.rb +13 -12
- data/app/views/admin/orders/_form.html.haml +5 -9
- data/app/views/admin/orders/_order_item_fields.html.haml +8 -12
- data/app/views/effective/orders/_checkout_step2.html.haml +1 -2
- data/app/views/effective/orders/_order_actions.html.haml +1 -1
- data/config/effective_orders.rb +8 -32
- data/config/routes.rb +16 -17
- data/db/migrate/01_create_effective_orders.rb.erb +4 -0
- data/lib/effective_orders.rb +34 -76
- data/lib/effective_orders/engine.rb +0 -7
- data/lib/effective_orders/version.rb +1 -1
- data/lib/generators/templates/effective_orders_mailer_preview.rb +13 -13
- data/lib/tasks/effective_orders_tasks.rake +2 -2
- metadata +1 -2
- data/app/models/effective/access_denied.rb +0 -17
@@ -4,9 +4,11 @@ module Effective
|
|
4
4
|
extend ActiveSupport::Concern
|
5
5
|
|
6
6
|
def cheque
|
7
|
+
raise('cheque provider is not available') unless EffectiveOrders.cheque?
|
8
|
+
|
7
9
|
@order ||= Order.find(params[:id])
|
8
10
|
|
9
|
-
|
11
|
+
EffectiveResources.authorize!(self, :update, @order)
|
10
12
|
|
11
13
|
flash[:success] = EffectiveOrders.cheque[:success]
|
12
14
|
|
@@ -4,9 +4,11 @@ module Effective
|
|
4
4
|
extend ActiveSupport::Concern
|
5
5
|
|
6
6
|
def free
|
7
|
+
raise('free provider is not available') unless EffectiveOrders.free?
|
8
|
+
|
7
9
|
@order ||= Order.find(params[:id])
|
8
10
|
|
9
|
-
|
11
|
+
EffectiveResources.authorize!(self, :update, @order)
|
10
12
|
|
11
13
|
unless @order.free?
|
12
14
|
flash[:danger] = 'Unable to process free order with a non-zero total'
|
@@ -4,10 +4,12 @@ module Effective
|
|
4
4
|
extend ActiveSupport::Concern
|
5
5
|
|
6
6
|
def mark_as_paid
|
7
|
+
raise('mark_as_paid provider is not available') unless EffectiveOrders.mark_as_paid?
|
8
|
+
|
7
9
|
@order ||= Order.find(params[:id])
|
8
10
|
|
9
|
-
|
10
|
-
|
11
|
+
EffectiveResources.authorize!(self, :update, @order)
|
12
|
+
EffectiveResources.authorize!(self, :admin, :effective_orders)
|
11
13
|
|
12
14
|
@order.assign_attributes(mark_as_paid_params.except(:payment, :payment_provider, :payment_card))
|
13
15
|
|
@@ -10,9 +10,11 @@ module Effective
|
|
10
10
|
end
|
11
11
|
|
12
12
|
def moneris_postback
|
13
|
+
raise('moneris provider is not available') unless EffectiveOrders.moneris?
|
14
|
+
|
13
15
|
@order ||= Effective::Order.find(params[:response_order_id])
|
14
16
|
|
15
|
-
(
|
17
|
+
(EffectiveResources.authorize!(self, :update, @order) rescue false)
|
16
18
|
|
17
19
|
# Delete the Purchased and Declined Redirect URLs
|
18
20
|
purchased_url = params.delete(:rvar_purchased_url)
|
@@ -10,9 +10,11 @@ module Effective
|
|
10
10
|
# TODO: Make paypal postback work with admin checkout workflow
|
11
11
|
|
12
12
|
def paypal_postback
|
13
|
+
raise('paypal provider is not available') unless EffectiveOrders.paypal?
|
14
|
+
|
13
15
|
@order ||= Effective::Order.where(id: (params[:invoice].to_i rescue 0)).first
|
14
16
|
|
15
|
-
(
|
17
|
+
(EffectiveResources.authorize!(self, :update, @order) rescue false)
|
16
18
|
|
17
19
|
if @order.present?
|
18
20
|
if @order.purchased?
|
@@ -27,7 +29,6 @@ module Effective
|
|
27
29
|
head(:ok)
|
28
30
|
end
|
29
31
|
|
30
|
-
|
31
32
|
end
|
32
33
|
end
|
33
34
|
end
|
@@ -4,9 +4,11 @@ module Effective
|
|
4
4
|
extend ActiveSupport::Concern
|
5
5
|
|
6
6
|
def phone
|
7
|
+
raise('phone provider is not available') unless EffectiveOrders.phone?
|
8
|
+
|
7
9
|
@order ||= Order.find(params[:id])
|
8
10
|
|
9
|
-
|
11
|
+
EffectiveResources.authorize!(self, :update, @order)
|
10
12
|
|
11
13
|
flash[:success] = EffectiveOrders.phone[:success]
|
12
14
|
|
@@ -4,9 +4,11 @@ module Effective
|
|
4
4
|
extend ActiveSupport::Concern
|
5
5
|
|
6
6
|
def pretend
|
7
|
+
raise('pretend provider is not available') unless EffectiveOrders.pretend?
|
8
|
+
|
7
9
|
@order ||= Order.find(params[:id])
|
8
10
|
|
9
|
-
|
11
|
+
EffectiveResources.authorize!(self, :update, @order)
|
10
12
|
|
11
13
|
order_purchased(
|
12
14
|
payment: 'for pretend',
|
@@ -4,9 +4,11 @@ module Effective
|
|
4
4
|
extend ActiveSupport::Concern
|
5
5
|
|
6
6
|
def refund
|
7
|
+
raise('refund provider is not available') unless EffectiveOrders.refund?
|
8
|
+
|
7
9
|
@order ||= Order.find(params[:id])
|
8
10
|
|
9
|
-
|
11
|
+
EffectiveResources.authorize!(self, :update, @order)
|
10
12
|
|
11
13
|
unless @order.refund?
|
12
14
|
flash[:danger] = 'Unable to process refund order with a positive total'
|
@@ -4,10 +4,12 @@ module Effective
|
|
4
4
|
extend ActiveSupport::Concern
|
5
5
|
|
6
6
|
def stripe
|
7
|
+
raise('stripe provider is not available') unless EffectiveOrders.stripe?
|
8
|
+
|
7
9
|
@order = Order.find(params[:id])
|
8
10
|
@customer = Effective::Customer.for_user(@order.user)
|
9
11
|
|
10
|
-
|
12
|
+
EffectiveResources.authorize!(self, :update, @order)
|
11
13
|
|
12
14
|
payment = validate_stripe_payment(stripe_params[:payment_intent_id])
|
13
15
|
|
@@ -1,9 +1,11 @@
|
|
1
1
|
module Effective
|
2
2
|
class SubscripterController < ApplicationController
|
3
|
-
layout (EffectiveOrders.layout.kind_of?(Hash) ? EffectiveOrders.layout[:subscriptions] : EffectiveOrders.layout)
|
4
|
-
|
5
3
|
include Effective::CrudController
|
6
4
|
|
5
|
+
if (config = EffectiveOrders.layout)
|
6
|
+
layout(config.kind_of?(Hash) ? (config[:subscriptions] || config[:application]) : config)
|
7
|
+
end
|
8
|
+
|
7
9
|
submit :save, 'Save', redirect: :back, success: -> { 'Successfully updated plan.' }
|
8
10
|
|
9
11
|
def resource
|
@@ -89,9 +89,18 @@ module Effective
|
|
89
89
|
end
|
90
90
|
end
|
91
91
|
|
92
|
-
def send_email(email, *
|
93
|
-
|
94
|
-
|
92
|
+
def send_email(email, *args)
|
93
|
+
raise('expected args to be an Array') unless args.kind_of?(Array)
|
94
|
+
|
95
|
+
if defined?(Tenant)
|
96
|
+
tenant = Tenant.current || raise('expected a current tenant')
|
97
|
+
args << { tenant: tenant }
|
98
|
+
end
|
99
|
+
|
100
|
+
deliver_method = EffectiveOrders.mailer[:deliver_method] || EffectiveResources.deliver_method
|
101
|
+
|
102
|
+
EffectiveOrders.mailer_klass.send(email, *args).send(deliver_method)
|
103
|
+
EffectiveOrders.mailer_klass.send(:subscription_event_to_admin, email.to_s, *args).send(deliver_method)
|
95
104
|
end
|
96
105
|
|
97
106
|
def run_subscribable_buyer_callbacks!
|
@@ -2,8 +2,12 @@ class Admin::EffectiveCustomersDatatable < Effective::Datatable
|
|
2
2
|
datatable do
|
3
3
|
|
4
4
|
col :id, visible: false
|
5
|
-
|
6
|
-
col
|
5
|
+
|
6
|
+
col :user, search: :string
|
7
|
+
|
8
|
+
col :email do |customer|
|
9
|
+
customer.user.email
|
10
|
+
end
|
7
11
|
|
8
12
|
if EffectiveOrders.stripe?
|
9
13
|
col :stripe_customer_id
|
@@ -17,6 +21,6 @@ class Admin::EffectiveCustomersDatatable < Effective::Datatable
|
|
17
21
|
end
|
18
22
|
|
19
23
|
collection do
|
20
|
-
Effective::Customer.
|
24
|
+
Effective::Customer.includes(:user).all
|
21
25
|
end
|
22
26
|
end
|
@@ -40,7 +40,7 @@ class Admin::EffectiveOrdersDatatable < Effective::Datatable
|
|
40
40
|
end
|
41
41
|
|
42
42
|
if attributes[:user_id].blank?
|
43
|
-
col :user
|
43
|
+
col :user, search: :string
|
44
44
|
col :billing_name, visible: false
|
45
45
|
col :email, visible: false
|
46
46
|
end
|
@@ -102,7 +102,7 @@ class Admin::EffectiveOrdersDatatable < Effective::Datatable
|
|
102
102
|
end
|
103
103
|
|
104
104
|
def user
|
105
|
-
@user ||=
|
105
|
+
@user ||= current_user.class.find(attributes[:user_id])
|
106
106
|
end
|
107
107
|
|
108
108
|
end
|
@@ -1,183 +1,218 @@
|
|
1
1
|
module Effective
|
2
2
|
class OrdersMailer < ActionMailer::Base
|
3
|
-
default from: EffectiveOrders.mailer[:default_from]
|
3
|
+
default from: -> { EffectiveOrders.mailer[:default_from] }
|
4
|
+
layout -> { EffectiveOrders.mailer[:layout].presence || 'effective_orders_mailer_layout' }
|
4
5
|
|
5
6
|
helper EffectiveOrdersHelper
|
6
|
-
layout EffectiveOrders.mailer[:layout].presence || 'effective_orders_mailer_layout'
|
7
7
|
|
8
|
-
def order_receipt_to_admin(order_param)
|
9
|
-
|
8
|
+
def order_receipt_to_admin(order_param, atts = {})
|
9
|
+
around_mail_action(:order_receipt_to_admin, order_param, atts) do
|
10
|
+
return true unless EffectiveOrders.mailer[:send_order_receipt_to_admin]
|
10
11
|
|
11
|
-
|
12
|
-
|
12
|
+
@order = (order_param.kind_of?(Effective::Order) ? order_param : Effective::Order.find(order_param))
|
13
|
+
@user = @order.user
|
13
14
|
|
14
|
-
|
15
|
+
@subject = subject_for(@order, :order_receipt_to_admin, "Order Receipt: ##{@order.to_param}")
|
15
16
|
|
16
|
-
|
17
|
+
mail(to: EffectiveOrders.mailer[:admin_email], subject: @subject)
|
18
|
+
end
|
17
19
|
end
|
18
20
|
|
19
|
-
def order_receipt_to_buyer(order_param) # Buyer
|
20
|
-
|
21
|
+
def order_receipt_to_buyer(order_param, atts = {}) # Buyer
|
22
|
+
around_mail_action(:order_receipt_to_buyer, order_param, atts) do
|
23
|
+
return true unless EffectiveOrders.mailer[:send_order_receipt_to_buyer]
|
21
24
|
|
22
|
-
|
23
|
-
|
25
|
+
@order = (order_param.kind_of?(Effective::Order) ? order_param : Effective::Order.find(order_param))
|
26
|
+
@user = @order.user
|
24
27
|
|
25
|
-
|
28
|
+
@subject = subject_for(@order, :order_receipt_to_buyer, "Order Receipt: ##{@order.to_param}")
|
26
29
|
|
27
|
-
|
30
|
+
mail(to: @order.email, cc: @order.cc, subject: @subject)
|
31
|
+
end
|
28
32
|
end
|
29
33
|
|
30
34
|
# This is sent when an admin creates a new order or /admin/orders/new
|
31
35
|
# Or when Pay by Cheque or Pay by Phone (deferred payments)
|
32
36
|
# Or uses the order action Send Payment Request
|
33
|
-
def payment_request_to_buyer(order_param)
|
34
|
-
|
37
|
+
def payment_request_to_buyer(order_param, atts = {})
|
38
|
+
around_mail_action(:payment_request_to_buyer, order_param, atts) do
|
39
|
+
return true unless EffectiveOrders.mailer[:send_payment_request_to_buyer]
|
35
40
|
|
36
|
-
|
37
|
-
|
41
|
+
@order = (order_param.kind_of?(Effective::Order) ? order_param : Effective::Order.find(order_param))
|
42
|
+
@user = @order.user
|
38
43
|
|
39
|
-
|
44
|
+
@subject = subject_for(@order, :payment_request_to_buyer, "Request for Payment: Invoice ##{@order.to_param}")
|
40
45
|
|
41
|
-
|
46
|
+
mail(to: @order.email, cc: @order.cc, subject: @subject)
|
47
|
+
end
|
42
48
|
end
|
43
49
|
|
50
|
+
|
44
51
|
# This is sent when someone chooses to Pay by Cheque
|
45
|
-
def pending_order_invoice_to_buyer(order_param)
|
46
|
-
|
52
|
+
def pending_order_invoice_to_buyer(order_param, atts = {})
|
53
|
+
around_mail_action(:pending_order_invoice_to_buyer, order_param, atts) do
|
54
|
+
return true unless EffectiveOrders.mailer[:send_pending_order_invoice_to_buyer]
|
47
55
|
|
48
|
-
|
49
|
-
|
56
|
+
@order = (order_param.kind_of?(Effective::Order) ? order_param : Effective::Order.find(order_param))
|
57
|
+
@user = @order.user
|
50
58
|
|
51
|
-
|
59
|
+
@subject = subject_for(@order, :pending_order_invoice_to_buyer, "Pending Order: ##{@order.to_param}")
|
52
60
|
|
53
|
-
|
61
|
+
mail(to: @order.email, cc: @order.cc, subject: @subject)
|
62
|
+
end
|
54
63
|
end
|
55
64
|
|
56
65
|
# This is sent to admin when someone Accepts Refund
|
57
|
-
def refund_notification_to_admin(order_param)
|
58
|
-
|
59
|
-
|
66
|
+
def refund_notification_to_admin(order_param, atts = {})
|
67
|
+
around_mail_action(:refund_notification_to_admin, order_param, atts) do
|
68
|
+
@order = (order_param.kind_of?(Effective::Order) ? order_param : Effective::Order.find(order_param))
|
69
|
+
@user = @order.user
|
60
70
|
|
61
|
-
|
71
|
+
@subject = subject_for(@order, :refund_notification_to_admin, "New Refund: ##{@order.to_param}")
|
62
72
|
|
63
|
-
|
73
|
+
mail(to: EffectiveOrders.mailer[:admin_email], subject: @subject)
|
74
|
+
end
|
64
75
|
end
|
65
76
|
|
66
77
|
# Sent by the invoice.payment_succeeded webhook event
|
67
|
-
def subscription_payment_succeeded(customer_param)
|
68
|
-
|
78
|
+
def subscription_payment_succeeded(customer_param, atts = {})
|
79
|
+
around_mail_action(:subscription_payment_succeeded, customer_param, atts) do
|
80
|
+
return true unless EffectiveOrders.mailer[:send_subscription_payment_succeeded]
|
69
81
|
|
70
|
-
|
71
|
-
|
72
|
-
|
82
|
+
@customer = (customer_param.kind_of?(Effective::Customer) ? customer_param : Effective::Customer.find(customer_param))
|
83
|
+
@subscriptions = @customer.subscriptions
|
84
|
+
@user = @customer.user
|
73
85
|
|
74
|
-
|
86
|
+
@subject = subject_for(@customer, :subscription_payment_succeeded, 'Thank you for your payment')
|
75
87
|
|
76
|
-
|
88
|
+
mail(to: @customer.user.email, subject: @subject)
|
89
|
+
end
|
77
90
|
end
|
78
91
|
|
79
92
|
# Sent by the invoice.payment_failed webhook event
|
80
|
-
def subscription_payment_failed(customer_param)
|
81
|
-
|
93
|
+
def subscription_payment_failed(customer_param, atts = {})
|
94
|
+
around_mail_action(:subscription_payment_failed, customer_param, atts) do
|
95
|
+
return true unless EffectiveOrders.mailer[:send_subscription_payment_failed]
|
82
96
|
|
83
|
-
|
84
|
-
|
85
|
-
|
97
|
+
@customer = (customer_param.kind_of?(Effective::Customer) ? customer_param : Effective::Customer.find(customer_param))
|
98
|
+
@subscriptions = @customer.subscriptions
|
99
|
+
@user = @customer.user
|
86
100
|
|
87
|
-
|
101
|
+
@subject = subject_for(@customer, :subscription_payment_failed, 'Payment failed - please update your card details')
|
88
102
|
|
89
|
-
|
103
|
+
mail(to: @customer.user.email, subject: @subject)
|
104
|
+
end
|
90
105
|
end
|
91
106
|
|
92
107
|
# Sent by the customer.subscription.created webhook event
|
93
|
-
def subscription_created(customer_param)
|
94
|
-
|
108
|
+
def subscription_created(customer_param, atts = {})
|
109
|
+
around_mail_action(:subscription_created, customer_param, atts) do
|
110
|
+
return true unless EffectiveOrders.mailer[:send_subscription_created]
|
95
111
|
|
96
|
-
|
97
|
-
|
98
|
-
|
112
|
+
@customer = (customer_param.kind_of?(Effective::Customer) ? customer_param : Effective::Customer.find(customer_param))
|
113
|
+
@subscriptions = @customer.subscriptions
|
114
|
+
@user = @customer.user
|
99
115
|
|
100
|
-
|
116
|
+
@subject = subject_for(@customer, :subscription_created, 'New Subscription')
|
101
117
|
|
102
|
-
|
118
|
+
mail(to: @customer.user.email, subject: @subject)
|
119
|
+
end
|
103
120
|
end
|
104
121
|
|
105
122
|
# Sent by the customer.subscription.updated webhook event
|
106
|
-
def subscription_updated(customer_param)
|
107
|
-
|
123
|
+
def subscription_updated(customer_param, atts = {})
|
124
|
+
around_mail_action(:subscription_updated, customer_param, atts) do
|
125
|
+
return true unless EffectiveOrders.mailer[:send_subscription_updated]
|
108
126
|
|
109
|
-
|
110
|
-
|
111
|
-
|
127
|
+
@customer = (customer_param.kind_of?(Effective::Customer) ? customer_param : Effective::Customer.find(customer_param))
|
128
|
+
@subscriptions = @customer.subscriptions
|
129
|
+
@user = @customer.user
|
112
130
|
|
113
|
-
|
131
|
+
@subject = subject_for(@customer, :subscription_updated, 'Subscription Changed')
|
114
132
|
|
115
|
-
|
133
|
+
mail(to: @customer.user.email, subject: @subject)
|
134
|
+
end
|
116
135
|
end
|
117
136
|
|
118
137
|
# Sent by the invoice.payment_failed webhook event
|
119
|
-
def subscription_canceled(customer_param)
|
120
|
-
|
138
|
+
def subscription_canceled(customer_param, atts = {})
|
139
|
+
around_mail_action(:subscription_canceled, customer_param, atts) do
|
140
|
+
return true unless EffectiveOrders.mailer[:send_subscription_canceled]
|
121
141
|
|
122
|
-
|
123
|
-
|
124
|
-
|
142
|
+
@customer = (customer_param.kind_of?(Effective::Customer) ? customer_param : Effective::Customer.find(customer_param))
|
143
|
+
@subscriptions = @customer.subscriptions
|
144
|
+
@user = @customer.user
|
125
145
|
|
126
|
-
|
146
|
+
@subject = subject_for(@customer, :subscription_canceled, 'Subscription canceled')
|
127
147
|
|
128
|
-
|
148
|
+
mail(to: @customer.user.email, subject: @subject)
|
149
|
+
end
|
129
150
|
end
|
130
151
|
|
131
152
|
# Sent by the effective_orders:notify_trial_users rake task.
|
132
|
-
def subscription_trialing(subscribable)
|
133
|
-
|
153
|
+
def subscription_trialing(subscribable, atts = {})
|
154
|
+
around_mail_action(:subscription_trialing, subscribable, atts) do
|
155
|
+
return true unless EffectiveOrders.mailer[:send_subscription_trialing]
|
134
156
|
|
135
|
-
|
136
|
-
|
157
|
+
@subscribable = subscribable
|
158
|
+
@user = @subscribable.subscribable_buyer
|
137
159
|
|
138
|
-
|
160
|
+
@subject = subject_for(@customer, :subscription_trialing, 'Trial is active')
|
139
161
|
|
140
|
-
|
162
|
+
mail(to: @subscribable.subscribable_buyer.email, subject: @subject)
|
163
|
+
end
|
141
164
|
end
|
142
165
|
|
143
166
|
# Sent by the effective_orders:notify_trial_users rake task.
|
144
|
-
def subscription_trial_expired(subscribable)
|
145
|
-
|
167
|
+
def subscription_trial_expired(subscribable, atts = {})
|
168
|
+
around_mail_action(:subscription_trial_expired, subscribable, atts) do
|
169
|
+
return true unless EffectiveOrders.mailer[:send_subscription_trial_expired]
|
146
170
|
|
147
|
-
|
148
|
-
|
171
|
+
@subscribable = subscribable
|
172
|
+
@user = @subscribable.subscribable_buyer
|
149
173
|
|
150
|
-
|
174
|
+
@subject = subject_for(@customer, :subscription_trial_expired, 'Trial expired')
|
151
175
|
|
152
|
-
|
176
|
+
mail(to: @subscribable.subscribable_buyer.email, subject: @subject)
|
177
|
+
end
|
153
178
|
end
|
154
179
|
|
155
|
-
def subscription_event_to_admin(event, customer_param)
|
156
|
-
|
180
|
+
def subscription_event_to_admin(event, customer_param, atts = {})
|
181
|
+
around_mail_action(:subscription_event_to_admin, event, atts) do
|
182
|
+
return true unless EffectiveOrders.mailer[:send_subscription_event_to_admin]
|
157
183
|
|
158
|
-
|
159
|
-
|
160
|
-
|
161
|
-
|
184
|
+
@customer = (customer_param.kind_of?(Effective::Customer) ? customer_param : Effective::Customer.find(customer_param))
|
185
|
+
@subscriptions = @customer.subscriptions
|
186
|
+
@user = @customer.user
|
187
|
+
@event = event.to_s
|
162
188
|
|
163
|
-
|
189
|
+
@subject = subject_for(@customer, :subscription_event_to_admin, "Subscription event - @event - @customer").gsub('@event', @event.to_s).gsub('@customer', @customer.to_s)
|
164
190
|
|
165
|
-
|
191
|
+
mail(to: EffectiveOrders.mailer[:admin_email], subject: @subject)
|
192
|
+
end
|
166
193
|
end
|
167
194
|
|
168
195
|
def order_error(order: nil, error: nil, to: nil, from: nil, subject: nil, template: 'order_error')
|
169
|
-
|
170
|
-
|
196
|
+
around_mail_action(:order_error, order, {error: error, to: to, from: from, subject: subject, template: template}) do
|
197
|
+
@order = (order.kind_of?(Effective::Order) ? order : Effective::Order.find(order))
|
198
|
+
@error = error.to_s
|
199
|
+
|
200
|
+
@subject = subject_for(@order, :error, "An error occurred with order: ##{@order.try(:to_param)}")
|
201
|
+
|
202
|
+
mail(
|
203
|
+
to: (to || EffectiveOrders.mailer[:admin_email]),
|
204
|
+
from: (from || EffectiveOrders.mailer[:default_from]),
|
205
|
+
subject: (subject || @subject)
|
206
|
+
) do |format|
|
207
|
+
format.html { render(template) }
|
208
|
+
end
|
209
|
+
end
|
210
|
+
end
|
171
211
|
|
172
|
-
|
212
|
+
protected
|
173
213
|
|
174
|
-
|
175
|
-
|
176
|
-
from: (from || EffectiveOrders.mailer[:default_from]),
|
177
|
-
subject: (subject || @subject)
|
178
|
-
) do |format|
|
179
|
-
format.html { render(template) }
|
180
|
-
end
|
214
|
+
def around_mail_action(name, param, atts = {}, &block)
|
215
|
+
yield
|
181
216
|
end
|
182
217
|
|
183
218
|
private
|