Class: Kaui::SubscriptionsController
Constant Summary
EngineControllerUtil::SIMPLE_PAGINATION_THRESHOLD
Instance Method Summary
collapse
#check_for_redirect_to_tenant_screen, #current_ability, #current_user, #options_for_klient, #populate_account_details, #retrieve_allowed_users_for_current_user, #retrieve_tenants_for_current_user
Instance Method Details
#create ⇒ Object
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
|
# File 'app/controllers/kaui/subscriptions_controller.rb', line 22
def create
plan_name = params.require(:plan_name)
@base_product_name = params[:base_product_name]
@subscription = Kaui::Subscription.new(params.require(:subscription).delete_if { |key, value| value.blank? })
begin
@bundle, plans_details = lookup_bundle_and_plan_details(@subscription, @base_product_name)
plan_details = plans_details.find { |p| p.plan == plan_name }
raise "Unable to find plan #{plan_name}" if plan_details.nil?
@subscription.plan_name = plan_name
requested_date = params[:type_change] == "DATE" ? params[:requested_date].presence : nil
@subscription.product_category = nil
@subscription = @subscription.create(current_user.kb_username, params[:reason], params[:comment], requested_date, false, options_for_klient)
redirect_to kaui_engine.account_bundles_path(@subscription.account_id), :notice => 'Subscription was successfully created'
rescue => e
@plans = plans_details.nil? ? [] : plans_details.map { |p| p.plan }
flash.now[:error] = "Error while creating the subscription: #{as_string(e)}"
render :new
end
end
|
#destroy ⇒ Object
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
|
# File 'app/controllers/kaui/subscriptions_controller.rb', line 83
def destroy
requested_date = params[:requested_date].presence
billing_policy = params[:policy].presence
entitlement_policy = billing_policy && billing_policy == 'START_OF_TERM' ? 'IMMEDIATE' : billing_policy
use_requested_date_for_billing = (params[:use_requested_date_for_billing] || '1') == '1'
subscription = Kaui::Subscription.find_by_id(params.require(:id), options_for_klient)
subscription.cancel(current_user.kb_username, params[:reason], params[:comment], requested_date, entitlement_policy, billing_policy, use_requested_date_for_billing, options_for_klient)
redirect_to kaui_engine.account_bundles_path(subscription.account_id), :notice => 'Subscription was successfully cancelled'
end
|
#edit ⇒ Object
47
48
49
50
51
52
53
54
55
|
# File 'app/controllers/kaui/subscriptions_controller.rb', line 47
def edit
@subscription = Kaui::Subscription.find_by_id(params.require(:id), options_for_klient)
_, plans_details = lookup_bundle_and_plan_details(@subscription)
@plans = Set.new.merge(plans_details.map { |p| p.plan })
@current_plan = "#{@subscription.product_name} #{@subscription.billing_period}".humanize
@current_plan += " (price list #{@subscription.price_list})" if @subscription.price_list != 'DEFAULT'
end
|
#edit_bcd ⇒ Object
107
108
109
|
# File 'app/controllers/kaui/subscriptions_controller.rb', line 107
def edit_bcd
@subscription = Kaui::Subscription.find_by_id(params.require(:id), options_for_klient)
end
|
#new ⇒ Object
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
|
# File 'app/controllers/kaui/subscriptions_controller.rb', line 3
def new
@base_product_name = params[:base_product_name]
@subscription = Kaui::Subscription.new(:bundle_id => params[:bundle_id],
:account_id => params[:account_id],
:product_category => params[:product_category] || 'BASE')
@bundle, plans_details = lookup_bundle_and_plan_details(@subscription, @base_product_name)
@plans = plans_details.map { |p| p.plan }
if @plans.empty?
if @subscription.product_category == 'BASE'
flash[:error] = 'No available plan'
else
flash[:error] = "No available add-on for product #{@base_product_name}"
end
redirect_to kaui_engine.account_bundles_path(@subscription.account_id), :error => 'No available plan'
end
end
|
#reinstate ⇒ Object
99
100
101
102
103
104
105
|
# File 'app/controllers/kaui/subscriptions_controller.rb', line 99
def reinstate
subscription = Kaui::Subscription.find_by_id(params.require(:id), options_for_klient)
subscription.uncancel(current_user.kb_username, params[:reason], params[:comment], options_for_klient)
redirect_to kaui_engine.account_bundles_path(subscription.account_id), :notice => 'Subscription was successfully reinstated'
end
|
#restful_show ⇒ Object
127
128
129
130
|
# File 'app/controllers/kaui/subscriptions_controller.rb', line 127
def restful_show
subscription = Kaui::Subscription.find_by_id(params.require(:id), options_for_klient)
redirect_to kaui_engine.account_bundles_path(subscription.account_id)
end
|
#show ⇒ Object
123
124
125
|
# File 'app/controllers/kaui/subscriptions_controller.rb', line 123
def show
restful_show
end
|
#update ⇒ Object
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
|
# File 'app/controllers/kaui/subscriptions_controller.rb', line 57
def update
plan_name = params.require(:plan_name)
requested_date = params[:type_change] == "DATE" ? params[:requested_date].presence : nil
billing_policy = params[:type_change] == "POLICY" ? params[:policy].presence : nil
wait_for_completion = params[:wait_for_completion] == '1'
subscription = Kaui::Subscription.find_by_id(params.require(:id), options_for_klient)
subscription.change_plan({
:planName => plan_name
},
current_user.kb_username,
params[:reason],
params[:comment],
requested_date,
billing_policy,
nil,
wait_for_completion,
options_for_klient)
redirect_to kaui_engine.account_bundles_path(subscription.account_id), :notice => 'Subscription plan successfully changed'
end
|
#update_bcd ⇒ Object
111
112
113
114
115
116
117
118
119
120
121
|
# File 'app/controllers/kaui/subscriptions_controller.rb', line 111
def update_bcd
input_subscription = params.require(:subscription)
subscription = Kaui::Subscription.new
subscription.subscription_id = params.require(:id)
subscription.bill_cycle_day_local = input_subscription["bill_cycle_day_local"]
effective_from_date = params["effective_from_date"]
subscription.update_bcd(current_user.kb_username, params[:reason], params[:comment], effective_from_date, nil, options_for_klient)
redirect_to kaui_engine.account_bundles_path(input_subscription["account_id"]), :notice => 'Subscription BCD was successfully changed'
end
|
146
147
148
149
150
151
152
153
154
155
156
157
158
159
|
# File 'app/controllers/kaui/subscriptions_controller.rb', line 146
def update_tags
subscription_id = params.require(:id)
subscription = Kaui::Subscription.find_by_id(subscription_id, options_for_klient)
tags = []
params.each do |tag|
tag_info = tag.split('_')
next if tag_info.size != 2 or tag_info[0] != 'tag'
tags << tag_info[1]
end
Kaui::Tag.set_for_subscription(subscription_id, tags, current_user.kb_username, params[:reason], params[:comment], options_for_klient)
redirect_to kaui_engine.account_bundles_path(subscription.account_id), :notice => 'Subscription tags successfully set'
end
|
#validate_external_key ⇒ Object
132
133
134
135
136
137
138
139
140
141
142
143
144
|
# File 'app/controllers/kaui/subscriptions_controller.rb', line 132
def validate_external_key
json_response do
external_key = params.require(:external_key)
begin
bundle = Kaui::Bundle.find_by_external_key(external_key, false, options_for_klient)
rescue KillBillClient::API::NotFound
bundle = nil
end
{ :is_found => !bundle.nil? }
end
end
|