kaui 0.15.0 → 0.15.1
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/README.md +4 -4
- data/app/assets/stylesheets/kaui/common.less +0 -6
- data/app/assets/stylesheets/kaui/datatable.less +14 -0
- data/app/assets/stylesheets/kaui/home.less +4 -0
- data/app/controllers/kaui/accounts_controller.rb +37 -0
- data/app/controllers/kaui/admin_allowed_users_controller.rb +2 -2
- data/app/controllers/kaui/admin_controller.rb +27 -0
- data/app/controllers/kaui/admin_tenants_controller.rb +8 -2
- data/app/controllers/kaui/engine_controller.rb +2 -2
- data/app/controllers/kaui/engine_controller_util.rb +1 -1
- data/app/controllers/kaui/home_controller.rb +3 -1
- data/app/controllers/kaui/invoices_controller.rb +10 -0
- data/app/controllers/kaui/payments_controller.rb +31 -7
- data/app/controllers/kaui/queues_controller.rb +11 -0
- data/app/controllers/kaui/subscriptions_controller.rb +20 -2
- data/app/controllers/kaui/tags_controller.rb +11 -0
- data/app/controllers/kaui/transactions_controller.rb +27 -4
- data/app/helpers/kaui/account_helper.rb +1 -1
- data/app/helpers/kaui/application_helper.rb +5 -0
- data/app/helpers/kaui/date_helper.rb +5 -1
- data/app/helpers/kaui/payment_helper.rb +9 -0
- data/app/models/kaui/admin.rb +75 -0
- data/app/models/kaui/invoice_payment.rb +26 -9
- data/app/models/kaui/payment.rb +2 -0
- data/app/models/kaui/payment_method.rb +18 -5
- data/app/models/kaui/transaction.rb +8 -0
- data/app/models/kaui/user.rb +4 -0
- data/app/views/kaui/accounts/_account_info.html.erb +23 -2
- data/app/views/kaui/accounts/_billing_info.html.erb +21 -0
- data/app/views/kaui/accounts/_form.html.erb +14 -8
- data/app/views/kaui/accounts/index.html.erb +5 -2
- data/app/views/kaui/admin/index.html.erb +39 -0
- data/app/views/kaui/admin/index.js.erb +3 -0
- data/app/views/kaui/admin_allowed_users/show.html.erb +2 -2
- data/app/views/kaui/admin_tenants/_tenant_details.html.erb +15 -0
- data/app/views/kaui/admin_tenants/_useful_links.html.erb +18 -0
- data/app/views/kaui/admin_tenants/new_catalog.html.erb +0 -1
- data/app/views/kaui/admin_tenants/new_overdue_config.html.erb +0 -1
- data/app/views/kaui/admin_tenants/show.html.erb +42 -12
- data/app/views/kaui/home/index.html.erb +8 -1
- data/app/views/kaui/invoices/_invoice_table.html.erb +1 -1
- data/app/views/kaui/invoices/index.html.erb +13 -3
- data/app/views/kaui/invoices/show.html.erb +11 -1
- data/app/views/kaui/layouts/kaui_account_navbar.html.erb +4 -0
- data/app/views/kaui/layouts/kaui_navbar.html.erb +19 -12
- data/app/views/kaui/payments/_payment_table.html.erb +60 -50
- data/app/views/kaui/payments/index.html.erb +13 -3
- data/app/views/kaui/payments/show.html.erb +6 -0
- data/app/views/kaui/queues/index.html.erb +124 -0
- data/app/views/kaui/subscriptions/_edit_form.html.erb +4 -4
- data/app/views/kaui/subscriptions/_form.html.erb +3 -3
- data/app/views/kaui/subscriptions/_subscriptions_table.html.erb +25 -22
- data/app/views/kaui/subscriptions/edit_bcd.erb +29 -0
- data/app/views/kaui/tags/index.html.erb +7 -1
- data/app/views/kaui/transactions/_form.html.erb +16 -6
- data/config/routes.rb +23 -4
- data/kaui.gemspec +1 -1
- data/lib/kaui/version.rb +1 -1
- data/test/fixtures/catalog-v1.xml +0 -1
- metadata +161 -151
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 4208468a561fd0c2e15a06de685932b20eb28933
|
4
|
+
data.tar.gz: 32231b5c4acd5c8ed70e425c185e28cd2efd658d
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 3be5d4c9eb3f8c88cd3938403be9d22f36e61655e398a034dfd02b744a4ad309c6361858f70c5552cb781d3d5eede2cb333ad3f318d1ce1e553e0ceb806017c8
|
7
|
+
data.tar.gz: 50a33a56415bbde528bf403040b76695d0abe9c7e375920f658c60078015e173b8b6fa6f06a673012b2bf7f2438a0e44e1cc5b7d1e2bf1dad2c21480c91f9402
|
data/README.md
CHANGED
@@ -6,10 +6,10 @@ Kaui core mountable engine. For Kaui the UI, see [killbill-admin-ui-standalone](
|
|
6
6
|
Kill Bill compatibility
|
7
7
|
-----------------------
|
8
8
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
| 0.14.y
|
12
|
-
| 0.15.y
|
9
|
+
| Kaui version | Kill Bill version |
|
10
|
+
| -----------: | ----------------: |
|
11
|
+
| 0.14.y | 0.16.z |
|
12
|
+
| 0.15.y | 0.18.z |
|
13
13
|
|
14
14
|
Running Kaui locally
|
15
15
|
---------------------
|
@@ -2,6 +2,16 @@ class Kaui::AccountsController < Kaui::EngineController
|
|
2
2
|
|
3
3
|
def index
|
4
4
|
@search_query = params[:q]
|
5
|
+
|
6
|
+
@limit = 50
|
7
|
+
if @search_query.blank?
|
8
|
+
max_nb_records = Kaui::Account.list_or_search(nil, 0, 0, options_for_klient).pagination_max_nb_records
|
9
|
+
@offset = [0, max_nb_records - @limit].max
|
10
|
+
@ordering = 'desc'
|
11
|
+
else
|
12
|
+
@offset = 0
|
13
|
+
@ordering = 'asc'
|
14
|
+
end
|
5
15
|
end
|
6
16
|
|
7
17
|
def pagination
|
@@ -66,6 +76,33 @@ class Kaui::AccountsController < Kaui::EngineController
|
|
66
76
|
run_in_parallel fetch_overdue_state, fetch_account_tags, fetch_account_emails, fetch_payment_methods, fetch_available_tags
|
67
77
|
end
|
68
78
|
|
79
|
+
def trigger_invoice
|
80
|
+
account_id = params.require(:account_id)
|
81
|
+
target_date = params[:target_date].presence
|
82
|
+
dry_run = params[:dry_run] == '1'
|
83
|
+
|
84
|
+
invoice = nil
|
85
|
+
begin
|
86
|
+
invoice = dry_run ? Kaui::Invoice.trigger_invoice_dry_run(account_id, target_date, false, options_for_klient) :
|
87
|
+
Kaui::Invoice.trigger_invoice(account_id, target_date, current_user.kb_username, params[:reason], params[:comment], options_for_klient)
|
88
|
+
rescue KillBillClient::API::NotFound
|
89
|
+
# Null invoice
|
90
|
+
end
|
91
|
+
|
92
|
+
if invoice.nil?
|
93
|
+
redirect_to account_path(account_id), :notice => "Nothing to generate for target date #{target_date.nil? ? 'today' : target_date}"
|
94
|
+
elsif dry_run
|
95
|
+
@invoice = Kaui::Invoice.build_from_raw_invoice(invoice)
|
96
|
+
@payments = []
|
97
|
+
@payment_methods = nil
|
98
|
+
@account = Kaui::Account.find_by_id(account_id, false, false, options_for_klient)
|
99
|
+
render :template => 'kaui/invoices/show'
|
100
|
+
else
|
101
|
+
# Redirect to fetch payments, etc.
|
102
|
+
redirect_to invoice_path(invoice.invoice_id, :account_id => account_id), :notice => "Generated invoice #{invoice.invoice_number} for target date #{invoice.target_date}"
|
103
|
+
end
|
104
|
+
end
|
105
|
+
|
69
106
|
# Fetched asynchronously, as it takes time. This also helps with enforcing permissions.
|
70
107
|
def next_invoice_date
|
71
108
|
next_invoice = Kaui::Invoice.trigger_invoice_dry_run(params.require(:account_id), nil, true, options_for_klient)
|
@@ -25,7 +25,7 @@ class Kaui::AdminAllowedUsersController < Kaui::EngineController
|
|
25
25
|
|
26
26
|
def show
|
27
27
|
@allowed_user = Kaui::AllowedUser.find(params.require(:id))
|
28
|
-
raise ActiveRecord::RecordNotFound.new("Could not find user #{@allowed_user.id}") unless (
|
28
|
+
raise ActiveRecord::RecordNotFound.new("Could not find user #{@allowed_user.id}") unless (current_user.root? || @allowed_user.kb_username == current_user.kb_username)
|
29
29
|
|
30
30
|
tenants_for_current_user = retrieve_tenants_for_current_user
|
31
31
|
@tenants = Kaui::Tenant.all.select { |tenant| tenants_for_current_user.include?(tenant.kb_tenant_id) }
|
@@ -34,7 +34,7 @@ class Kaui::AdminAllowedUsersController < Kaui::EngineController
|
|
34
34
|
def add_tenant
|
35
35
|
allowed_user = Kaui::AllowedUser.find(params.require(:allowed_user).require(:id))
|
36
36
|
|
37
|
-
if
|
37
|
+
if !current_user.root?
|
38
38
|
redirect_to admin_allowed_user_path(allowed_user.id), :alert => 'Only the root user can set tenants for user'
|
39
39
|
return
|
40
40
|
end
|
@@ -0,0 +1,27 @@
|
|
1
|
+
class Kaui::AdminController < Kaui::EngineController
|
2
|
+
|
3
|
+
skip_before_filter :check_for_redirect_to_tenant_screen
|
4
|
+
|
5
|
+
def index
|
6
|
+
@clock = Kaui::Admin.get_clock(nil, options_for_klient)
|
7
|
+
|
8
|
+
respond_to do |format|
|
9
|
+
format.html
|
10
|
+
format.js
|
11
|
+
end
|
12
|
+
end
|
13
|
+
|
14
|
+
def set_clock
|
15
|
+
if params[:commit] == 'Submit'
|
16
|
+
current_datetime = DateTime.parse(Kaui::Admin.get_clock(nil, options_for_klient)['currentUtcTime'])
|
17
|
+
new_local_date = Date.parse(params[:new_date])
|
18
|
+
new_datetime = DateTime.new(new_local_date.year, new_local_date.month, new_local_date.day, current_datetime.hour, current_datetime.min, current_datetime.sec, 'Z').to_s
|
19
|
+
msg = "Clock was successfully updated to #{new_datetime}"
|
20
|
+
else
|
21
|
+
new_datetime = nil
|
22
|
+
msg = 'Clock was successfully reset'
|
23
|
+
end
|
24
|
+
Kaui::Admin.set_clock(new_datetime, nil, options_for_klient)
|
25
|
+
redirect_to admin_path, :notice => msg
|
26
|
+
end
|
27
|
+
end
|
@@ -79,6 +79,9 @@ class Kaui::AdminTenantsController < Kaui::EngineController
|
|
79
79
|
|
80
80
|
@plugin_config = Kaui::AdminTenant::get_oss_plugin_info(plugin_repository) rescue @plugin_config = ""
|
81
81
|
@tenant_plugin_config = Kaui::AdminTenant::get_tenant_plugin_config(plugin_repository, options) rescue @tenant_plugin_config = ""
|
82
|
+
|
83
|
+
# When reloading page from the view, it sends the last tab that was active
|
84
|
+
@active_tab = params[:active_tab] || "CatalogShow"
|
82
85
|
end
|
83
86
|
|
84
87
|
def upload_catalog
|
@@ -97,6 +100,8 @@ class Kaui::AdminTenantsController < Kaui::EngineController
|
|
97
100
|
end
|
98
101
|
|
99
102
|
def new_catalog
|
103
|
+
|
104
|
+
|
100
105
|
@tenant = safely_find_tenant_by_id(params[:id])
|
101
106
|
|
102
107
|
options = tenant_options_for_client
|
@@ -115,7 +120,7 @@ class Kaui::AdminTenantsController < Kaui::EngineController
|
|
115
120
|
latest_catalog.products.select { |p| p.type == 'STANDALONE' }.map { |p| p.name } : []
|
116
121
|
@product_categories = [:BASE, :ADD_ON, :STANDALONE]
|
117
122
|
@billing_period = [:DAILY, :WEEKLY, :BIWEEKLY, :THIRTY_DAYS, :MONTHLY, :QUARTERLY, :BIANNUAL, :ANNUAL, :BIENNIAL]
|
118
|
-
@time_units = [:UNLIMITED, :DAYS, :MONTHS, :YEARS]
|
123
|
+
@time_units = [:UNLIMITED, :DAYS, :WEEKS, :MONTHS, :YEARS]
|
119
124
|
|
120
125
|
@simple_plan = Kaui::SimplePlan.new
|
121
126
|
end
|
@@ -257,7 +262,7 @@ class Kaui::AdminTenantsController < Kaui::EngineController
|
|
257
262
|
current_tenant = safely_find_tenant_by_id(params[:id])
|
258
263
|
au = Kaui::AllowedUser.find(params.require(:allowed_user).require(:id))
|
259
264
|
|
260
|
-
if
|
265
|
+
if !current_user.root?
|
261
266
|
render :json => {:alert => 'Only the root user can remove users from tenants'}.to_json, :status => 401
|
262
267
|
return
|
263
268
|
end
|
@@ -280,6 +285,7 @@ class Kaui::AdminTenantsController < Kaui::EngineController
|
|
280
285
|
|
281
286
|
private
|
282
287
|
|
288
|
+
|
283
289
|
def safely_find_tenant_by_id(tenant_id)
|
284
290
|
tenant = Kaui::Tenant.find_by_id(tenant_id)
|
285
291
|
raise ActiveRecord::RecordNotFound.new('Could not find tenant ' + tenant_id) unless retrieve_tenants_for_current_user.include?(tenant.kb_tenant_id)
|
@@ -36,7 +36,7 @@ class Kaui::EngineController < ApplicationController
|
|
36
36
|
end
|
37
37
|
|
38
38
|
def retrieve_tenants_for_current_user
|
39
|
-
if
|
39
|
+
if current_user.root?
|
40
40
|
Kaui::Tenant.all.map(&:kb_tenant_id)
|
41
41
|
else
|
42
42
|
Kaui::AllowedUser.preload(:kaui_tenants).find_by_kb_username(current_user.kb_username).kaui_tenants.map(&:kb_tenant_id)
|
@@ -49,7 +49,7 @@ class Kaui::EngineController < ApplicationController
|
|
49
49
|
Kaui::AllowedUser.preload(:kaui_tenants).all.select do |user|
|
50
50
|
tenants_for_user = user.kaui_tenants.map(&:kb_tenant_id)
|
51
51
|
if tenants_for_user.empty?
|
52
|
-
|
52
|
+
current_user.root?
|
53
53
|
else
|
54
54
|
(tenants_for_user - tenants_for_current_user).empty?
|
55
55
|
end
|
@@ -38,7 +38,7 @@ module Kaui::EngineControllerUtil
|
|
38
38
|
b = data_extractor.call(b, ordering_column)
|
39
39
|
sort = a <=> b
|
40
40
|
sort.nil? ? -1 : sort
|
41
|
-
end
|
41
|
+
end unless search_key.nil? # Keep DB ordering when listing all entries
|
42
42
|
pages.reverse! if ordering_dir == 'desc'
|
43
43
|
|
44
44
|
pages.each { |page| json[:data] << formatter.call(page) }
|
@@ -10,6 +10,8 @@ class Kaui::HomeController < Kaui::EngineController
|
|
10
10
|
redirect_to invoice_path(:id => search_query)
|
11
11
|
elsif search_type == 'payment'
|
12
12
|
redirect_to payment_path(:id => search_query)
|
13
|
+
elsif search_type == 'transaction'
|
14
|
+
redirect_to transaction_path(:id => search_query)
|
13
15
|
else
|
14
16
|
redirect_to accounts_path(:q => search_query)
|
15
17
|
end
|
@@ -18,6 +20,6 @@ class Kaui::HomeController < Kaui::EngineController
|
|
18
20
|
private
|
19
21
|
|
20
22
|
def parse_query(query)
|
21
|
-
/((invoice|payment):)?(.*)/.match(query).captures.drop(1)
|
23
|
+
/((invoice|payment|transaction):)?(.*)/.match(query).captures.drop(1)
|
22
24
|
end
|
23
25
|
end
|
@@ -2,6 +2,16 @@ class Kaui::InvoicesController < Kaui::EngineController
|
|
2
2
|
|
3
3
|
def index
|
4
4
|
@search_query = params[:account_id]
|
5
|
+
|
6
|
+
@limit = 50
|
7
|
+
if @search_query.blank?
|
8
|
+
max_nb_records = Kaui::Invoice.list_or_search(nil, 0, 0, options_for_klient).pagination_max_nb_records
|
9
|
+
@offset = [0, max_nb_records - @limit].max
|
10
|
+
@ordering = 'desc'
|
11
|
+
else
|
12
|
+
@offset = 0
|
13
|
+
@ordering = 'asc'
|
14
|
+
end
|
5
15
|
end
|
6
16
|
|
7
17
|
def pagination
|
@@ -1,16 +1,39 @@
|
|
1
1
|
class Kaui::PaymentsController < Kaui::EngineController
|
2
2
|
|
3
3
|
def index
|
4
|
-
@search_query = params[:account_id]
|
4
|
+
@search_query = params[:q] || params[:account_id]
|
5
|
+
|
6
|
+
@limit = 50
|
7
|
+
if @search_query.blank?
|
8
|
+
max_nb_records = Kaui::Payment.list_or_search(nil, 0, 0, options_for_klient).pagination_max_nb_records
|
9
|
+
@offset = [0, max_nb_records - @limit].max
|
10
|
+
@ordering = 'desc'
|
11
|
+
else
|
12
|
+
@offset = 0
|
13
|
+
@ordering = 'asc'
|
14
|
+
end
|
5
15
|
end
|
6
16
|
|
7
17
|
def pagination
|
8
18
|
searcher = lambda do |search_key, offset, limit|
|
9
|
-
|
10
|
-
|
11
|
-
|
19
|
+
if Kaui::Payment::TRANSACTION_STATUSES.include?(search_key)
|
20
|
+
# Search is done by payment state on the server side, see http://docs.killbill.io/latest/userguide_payment.html#_payment_states
|
21
|
+
payment_state = if %w(PLUGIN_FAILURE UNKNOWN).include?(search_key)
|
22
|
+
'_ERRORED'
|
23
|
+
elsif search_key == 'PAYMENT_FAILURE'
|
24
|
+
'_FAILED'
|
25
|
+
else
|
26
|
+
'_' + search_key
|
27
|
+
end
|
28
|
+
payments = Kaui::Payment.list_or_search(payment_state, offset, limit, options_for_klient)
|
29
|
+
payments.reject! { |payment| payment.transactions[-1].status != search_key }
|
12
30
|
else
|
13
|
-
|
31
|
+
account = Kaui::Account::find_by_id_or_key(search_key, false, false, options_for_klient) rescue nil
|
32
|
+
if account.nil?
|
33
|
+
payments = Kaui::Payment.list_or_search(search_key, offset, limit, options_for_klient)
|
34
|
+
else
|
35
|
+
payments = account.payments(options_for_klient).map! { |payment| Kaui::Payment.build_from_raw_payment(payment) }
|
36
|
+
end
|
14
37
|
end
|
15
38
|
|
16
39
|
payments.each do |payment|
|
@@ -65,11 +88,12 @@ class Kaui::PaymentsController < Kaui::EngineController
|
|
65
88
|
end
|
66
89
|
|
67
90
|
def show
|
68
|
-
|
91
|
+
invoice_payment = Kaui::InvoicePayment.find_safely_by_id(params.require(:id), options_for_klient)
|
92
|
+
@payment = Kaui::InvoicePayment.build_from_raw_payment(invoice_payment)
|
69
93
|
|
70
94
|
fetch_account = lambda { @account = Kaui::Account.find_by_id(@payment.account_id, false, false, options_for_klient) }
|
71
95
|
# The payment method may have been deleted
|
72
|
-
fetch_payment_method = lambda { @payment_method = Kaui::PaymentMethod.
|
96
|
+
fetch_payment_method = lambda { @payment_method = Kaui::PaymentMethod.find_safely_by_id(@payment.payment_method_id, options_for_klient) }
|
73
97
|
|
74
98
|
run_in_parallel fetch_account, fetch_payment_method
|
75
99
|
end
|
@@ -0,0 +1,11 @@
|
|
1
|
+
class Kaui::QueuesController < Kaui::EngineController
|
2
|
+
|
3
|
+
def index
|
4
|
+
@account_id = params[:account_id]
|
5
|
+
@now = Kaui::Admin.get_clock(nil, options_for_klient)['currentUtcTime'].to_datetime
|
6
|
+
|
7
|
+
min_date = params[:min_date]
|
8
|
+
with_history = params[:with_history] || false
|
9
|
+
@queues_entries = Kaui::Admin.get_queues_entries(@account_id, options_for_klient.merge(:withHistory => with_history, :minDate => min_date))
|
10
|
+
end
|
11
|
+
end
|
@@ -77,8 +77,10 @@ class Kaui::SubscriptionsController < Kaui::EngineController
|
|
77
77
|
|
78
78
|
def destroy
|
79
79
|
requested_date = params[:requested_date].presence
|
80
|
-
|
81
|
-
|
80
|
+
billing_policy = params[:policy].presence
|
81
|
+
# START_OF_TERM is *not* a valid entitlement_policy and so would default to IMMEDIATE
|
82
|
+
entitlement_policy = billing_policy && billing_policy == 'START_OF_TERM' ? 'IMMEDIATE' : billing_policy
|
83
|
+
|
82
84
|
# true by default
|
83
85
|
use_requested_date_for_billing = (params[:use_requested_date_for_billing] || '1') == '1'
|
84
86
|
|
@@ -97,6 +99,22 @@ class Kaui::SubscriptionsController < Kaui::EngineController
|
|
97
99
|
redirect_to kaui_engine.account_bundles_path(subscription.account_id), :notice => 'Subscription was successfully reinstated'
|
98
100
|
end
|
99
101
|
|
102
|
+
def edit_bcd
|
103
|
+
@subscription = Kaui::Subscription.find_by_id(params.require(:id), options_for_klient)
|
104
|
+
end
|
105
|
+
|
106
|
+
def update_bcd
|
107
|
+
input_subscription = params.require(:subscription)
|
108
|
+
subscription = Kaui::Subscription.new
|
109
|
+
subscription.subscription_id = params.require(:id)
|
110
|
+
subscription.bill_cycle_day_local = input_subscription["bill_cycle_day_local"]
|
111
|
+
|
112
|
+
effective_from_date = params["effective_from_date"]
|
113
|
+
|
114
|
+
subscription.update_bcd(current_user.kb_username, params[:reason], params[:comment], effective_from_date, nil, options_for_klient)
|
115
|
+
redirect_to kaui_engine.account_bundles_path(input_subscription["account_id"]), :notice => 'Subscription BCD was successfully changed'
|
116
|
+
end
|
117
|
+
|
100
118
|
def show
|
101
119
|
restful_show
|
102
120
|
end
|
@@ -1,6 +1,17 @@
|
|
1
1
|
class Kaui::TagsController < Kaui::EngineController
|
2
2
|
|
3
3
|
def index
|
4
|
+
@search_query = params[:q]
|
5
|
+
|
6
|
+
@limit = 50
|
7
|
+
if @search_query.blank?
|
8
|
+
max_nb_records = Kaui::Tag.list_or_search(nil, 0, 0, options_for_klient).pagination_max_nb_records
|
9
|
+
@offset = [0, max_nb_records - @limit].max
|
10
|
+
@ordering = 'desc'
|
11
|
+
else
|
12
|
+
@offset = 0
|
13
|
+
@ordering = 'asc'
|
14
|
+
end
|
4
15
|
end
|
5
16
|
|
6
17
|
def pagination
|
@@ -1,12 +1,24 @@
|
|
1
1
|
class Kaui::TransactionsController < Kaui::EngineController
|
2
2
|
|
3
|
+
def restful_show
|
4
|
+
payment = Kaui::Payment.find_by_transaction_id(params.require(:id), false, true, options_for_klient)
|
5
|
+
redirect_to account_payment_path(payment.account_id, payment.payment_id)
|
6
|
+
end
|
7
|
+
|
3
8
|
def new
|
4
9
|
@account_id = params[:account_id]
|
5
10
|
@payment_method_id = params[:payment_method_id]
|
6
|
-
|
7
|
-
|
8
|
-
|
9
|
-
|
11
|
+
|
12
|
+
transaction_id = params[:transaction_id].presence
|
13
|
+
if transaction_id.nil?
|
14
|
+
@transaction = Kaui::Transaction.new(:payment_id => params[:payment_id],
|
15
|
+
:amount => params[:amount],
|
16
|
+
:currency => params[:currency],
|
17
|
+
:transaction_type => params[:transaction_type])
|
18
|
+
else
|
19
|
+
payment = Kaui::Payment.find_by_transaction_id(transaction_id, false, false, options_for_klient)
|
20
|
+
@transaction = Kaui::Transaction.build_from_raw_transaction(payment.transactions.find { |tx| tx.transaction_id == transaction_id })
|
21
|
+
end
|
10
22
|
end
|
11
23
|
|
12
24
|
def create
|
@@ -15,4 +27,15 @@ class Kaui::TransactionsController < Kaui::EngineController
|
|
15
27
|
payment = transaction.create(params.require(:account_id), params[:payment_method_id], current_user.kb_username, params[:reason], params[:comment], options_for_klient)
|
16
28
|
redirect_to kaui_engine.account_payment_path(payment.account_id, payment.payment_id), :notice => 'Transaction successfully created'
|
17
29
|
end
|
30
|
+
|
31
|
+
def fix_transaction_state
|
32
|
+
transaction = Kaui::Transaction.new(params[:transaction].delete_if { |key, value| value.blank? })
|
33
|
+
payment_id = transaction.payment_id
|
34
|
+
transaction_id = transaction.transaction_id
|
35
|
+
transaction_status = transaction.status
|
36
|
+
|
37
|
+
Kaui::Admin.fix_transaction_state(payment_id, transaction_id, transaction_status, current_user.kb_username, params[:reason], params[:comment], options_for_klient)
|
38
|
+
|
39
|
+
redirect_to kaui_engine.account_payment_path(params.require(:account_id), payment_id), :notice => "Transaction successfully transitioned to #{transaction_status}"
|
40
|
+
end
|
18
41
|
end
|