kaui 0.15.0 → 0.15.1
Sign up to get free protection for your applications and to get access to all the features.
- 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
|