kaui 0.1.0 → 0.1.2
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.
- data/README.rdoc +27 -1
- data/app/controllers/kaui/account_tags_controller.rb +24 -9
- data/app/controllers/kaui/account_timelines_controller.rb +1 -1
- data/app/controllers/kaui/accounts_controller.rb +7 -5
- data/app/controllers/kaui/bundles_controller.rb +2 -2
- data/app/controllers/kaui/chargebacks_controller.rb +3 -2
- data/app/controllers/kaui/charges_controller.rb +32 -0
- data/app/controllers/kaui/credits_controller.rb +3 -4
- data/app/controllers/kaui/external_payments_controller.rb +0 -2
- data/app/controllers/kaui/invoice_items_controller.rb +44 -0
- data/app/controllers/kaui/invoices_controller.rb +4 -3
- data/app/controllers/kaui/payments_controller.rb +10 -13
- data/app/controllers/kaui/refunds_controller.rb +19 -8
- data/app/controllers/kaui/subscriptions_controller.rb +5 -1
- data/app/controllers/kaui/tag_definitions_controller.rb +85 -0
- data/app/helpers/kaui/date_helper.rb +1 -1
- data/app/helpers/kaui/killbill_helper.rb +160 -59
- data/app/models/kaui/account.rb +7 -1
- data/app/models/kaui/account_timeline.rb +0 -4
- data/app/models/kaui/audit_log.rb +9 -7
- data/app/models/kaui/base.rb +80 -1
- data/app/models/kaui/charge.rb +14 -0
- data/app/models/kaui/chargeback.rb +2 -10
- data/app/models/kaui/event.rb +2 -13
- data/app/models/kaui/invoice.rb +6 -7
- data/app/models/kaui/invoice_item.rb +9 -17
- data/app/models/kaui/payment.rb +6 -21
- data/app/models/kaui/payment_method.rb +1 -8
- data/app/models/kaui/plugin_info.rb +1 -5
- data/app/models/kaui/plugin_info_property.rb +0 -6
- data/app/models/kaui/refund.rb +5 -13
- data/app/models/kaui/tag.rb +10 -3
- data/app/models/kaui/tag_definition.rb +46 -0
- data/app/views/kaui/account_tags/edit.html.erb +17 -17
- data/app/views/kaui/account_timelines/show.html.erb +61 -39
- data/app/views/kaui/accounts/index.html.erb +1 -1
- data/app/views/kaui/accounts/show.html.erb +16 -2
- data/app/views/kaui/bundles/show.html.erb +2 -1
- data/app/views/kaui/chargebacks/new.html.erb +18 -2
- data/app/views/kaui/charges/new.html.erb +87 -0
- data/app/views/kaui/credits/new.html.erb +1 -1
- data/app/views/kaui/invoice_items/edit.html.erb +92 -0
- data/app/views/kaui/invoice_items/index.html.erb +20 -0
- data/app/views/kaui/invoice_items/show.html.erb +31 -0
- data/app/views/kaui/invoices/index.html.erb +1 -1
- data/app/views/kaui/invoices/show.html.erb +42 -24
- data/app/views/kaui/payments/_payments_table.html.erb +7 -5
- data/app/views/kaui/payments/new.html.erb +32 -12
- data/app/views/kaui/refunds/index.html.erb +3 -3
- data/app/views/kaui/refunds/new.html.erb +3 -3
- data/app/views/kaui/refunds/show.html.erb +27 -13
- data/app/views/kaui/subscriptions/edit.html.erb +8 -0
- data/app/views/kaui/tag_definitions/_form.html.erb +45 -0
- data/app/views/kaui/tag_definitions/edit.html.erb +3 -0
- data/app/views/kaui/tag_definitions/index.html.erb +34 -0
- data/app/views/kaui/tag_definitions/new.html.erb +3 -0
- data/app/views/kaui/tag_definitions/show.html.erb +12 -0
- data/app/views/kaui/tags/_tags_table.html.erb +3 -3
- data/config/locales/en.yml +3 -0
- data/config/locales/fr.yml +3 -0
- data/config/routes.rb +11 -1
- data/lib/kaui/version.rb +1 -1
- data/test/dummy/app/controllers/application_controller.rb +10 -0
- data/test/dummy/app/views/layouts/application.html.erb +44 -11
- data/test/dummy/config/application.rb +1 -0
- data/test/dummy/config/database.yml +5 -4
- data/test/dummy/config/environments/development.rb +2 -0
- data/test/dummy/config/routes.rb +1 -2
- data/test/dummy/log/development.log +2419 -0
- data/test/dummy/log/test.log +3265 -131
- data/test/dummy/test/fixtures/accounts.yml +32 -0
- data/test/dummy/test/fixtures/bundles.yml +4 -0
- data/test/dummy/test/fixtures/invoice_items.yml +13 -0
- data/test/dummy/test/fixtures/invoices.yml +11 -0
- data/test/dummy/test/fixtures/payment_methods.yml +5 -0
- data/test/dummy/test/fixtures/plugin_info_properties.yml +59 -0
- data/test/dummy/test/fixtures/plugin_infos.yml +2 -0
- data/test/dummy/test/fixtures/refunds.yml +8 -0
- data/test/dummy/test/fixtures/tag_definitions.yml +9 -0
- data/test/dummy/tmp/cache/assets/C8D/6D0/sprockets%2F0ce756f49d61795508c543a702955fc2 +0 -0
- data/test/dummy/tmp/cache/assets/C94/4E0/sprockets%2Fea1476dc10a3348303f74d111f70441a +0 -0
- data/test/dummy/tmp/cache/assets/CD0/9D0/sprockets%2F5c9508c21501c73fbe00473a09b1f5f4 +0 -0
- data/test/dummy/tmp/cache/assets/CD8/370/sprockets%2F357970feca3ac29060c1e3861e2c0953 +0 -0
- data/test/dummy/tmp/cache/assets/CEA/300/sprockets%2Fdf2ad5c9d0990441c2bf59883383d652 +0 -0
- data/test/dummy/tmp/cache/assets/D0E/370/sprockets%2F27630db2080819f67c8a0ed5e491b7cb +0 -0
- data/test/dummy/tmp/cache/assets/D32/200/sprockets%2Ffa467106e01bda5d6246baea72159d64 +0 -0
- data/test/dummy/tmp/cache/assets/D32/A10/sprockets%2F13fe41fee1fe35b49d145bcc06610705 +0 -0
- data/test/dummy/tmp/cache/assets/D39/5E0/sprockets%2F59fd338be48a81a17a2a785cbd1612b4 +0 -0
- data/test/dummy/tmp/cache/assets/D44/170/sprockets%2Fac15571bce3f926a498da7cd09322d97 +0 -0
- data/test/dummy/tmp/cache/assets/D4A/DD0/sprockets%2F0f813582283b7f56fd83fe3d52be7e2c +0 -0
- data/test/dummy/tmp/cache/assets/D4E/1B0/sprockets%2Ff7cbd26ba1d28d48de824f0e94586655 +0 -0
- data/test/dummy/tmp/cache/assets/D5A/EA0/sprockets%2Fd771ace226fc8215a3572e0aa35bb0d6 +0 -0
- data/test/dummy/tmp/cache/assets/D6C/710/sprockets%2F1765773caead06c0a6a19ea9de2453f7 +0 -0
- data/test/dummy/tmp/cache/assets/D76/910/sprockets%2Ff99b4bdc434e11e8634e6af62fe805e0 +0 -0
- data/test/dummy/tmp/cache/assets/DDC/400/sprockets%2Fcffd775d018f68ce5dba1ee0d951a994 +0 -0
- data/test/dummy/tmp/cache/assets/DF1/1A0/sprockets%2F7f6b7bfea83401d3106b7fadac81ea4b +0 -0
- data/test/dummy/tmp/cache/assets/E04/890/sprockets%2F2f5173deea6c795b8fdde723bb4b63af +0 -0
- data/test/dummy/tmp/cache/assets/E20/230/sprockets%2F7d3b1348fdf74cf1b6ba2107fbbac5af +0 -0
- data/test/dummy/vendor/assets/images/img/glyphicons-halflings-white.png +0 -0
- data/test/dummy/vendor/assets/images/img/glyphicons-halflings.png +0 -0
- data/test/dummy/vendor/assets/javascripts/bootstrap.v2.0.4.min.js +6 -0
- data/test/dummy/vendor/assets/javascripts/jquery.dataTables.v1.9.3.min.js +156 -0
- data/test/dummy/vendor/assets/stylesheets/bootstrap.v2.0.4.min.css +9 -0
- data/test/functional/kaui/accounts_controller_test.rb +63 -0
- data/test/functional/kaui/bundles_controller_test.rb +18 -6
- data/test/functional/kaui/invoice_items_controller_test.rb +18 -0
- data/test/functional/kaui/invoices_controller_test.rb +18 -6
- data/test/functional/kaui/tag_definitions_controller_test.rb +60 -0
- data/test/test_helper.rb +143 -0
- data/test/unit/helpers/kaui/plugin_infos_helper_test.rb +20 -0
- data/test/unit/kaui/account_test.rb +42 -0
- data/test/unit/kaui/base_test.rb +39 -0
- data/test/unit/kaui/date_helper_test.rb +13 -0
- data/test/unit/kaui/invoice_item_test.rb +23 -0
- data/test/unit/kaui/invoice_test.rb +20 -0
- data/test/unit/kaui/payment_method_test.rb +26 -0
- data/test/unit/kaui/plugin_info_property_test.rb +20 -0
- data/test/unit/kaui/plugin_info_test.rb +19 -0
- data/test/unit/kaui/refund_test.rb +19 -0
- data/test/unit/kaui/tag_definition_test.rb +23 -0
- data/test/unit/model_test.rb +23 -23
- metadata +330 -226
data/README.rdoc
CHANGED
|
@@ -1,3 +1,29 @@
|
|
|
1
1
|
= Kaui
|
|
2
2
|
|
|
3
|
-
This project rocks and uses MIT-LICENSE.
|
|
3
|
+
This project rocks and uses MIT-LICENSE.
|
|
4
|
+
|
|
5
|
+
== Getting started
|
|
6
|
+
|
|
7
|
+
=== Running Kaui
|
|
8
|
+
|
|
9
|
+
You can run Kaui locally using the dummy app in the test directory:
|
|
10
|
+
|
|
11
|
+
# Point to your killbill installation
|
|
12
|
+
export KILLBILL_URL="http://killbill.company.com:8080"
|
|
13
|
+
cd test/dummy && rails s
|
|
14
|
+
|
|
15
|
+
=== Mounting Kaui into your own Rails app
|
|
16
|
+
|
|
17
|
+
Kaui expects the container app to define the <tt>current_user</tt> method, which returns the
|
|
18
|
+
name of the logged-in user. This is used by Killbill for auditing purposes.
|
|
19
|
+
|
|
20
|
+
=== Running tests
|
|
21
|
+
|
|
22
|
+
Prepare a kaui_test database locally to be able to run the test suite:
|
|
23
|
+
|
|
24
|
+
create database kaui_test;
|
|
25
|
+
grant all privileges on kaui_test.* to 'root'@'localhost' identified by '';
|
|
26
|
+
|
|
27
|
+
You can run tests using rake:
|
|
28
|
+
|
|
29
|
+
rake test
|
|
@@ -12,22 +12,37 @@ class Kaui::AccountTagsController < Kaui::EngineController
|
|
|
12
12
|
|
|
13
13
|
def edit
|
|
14
14
|
@account_id = params[:account_id]
|
|
15
|
-
@available_tags = Kaui::KillbillHelper::get_tag_definitions.sort
|
|
15
|
+
@available_tags = Kaui::KillbillHelper::get_tag_definitions.sort
|
|
16
16
|
|
|
17
17
|
@account = Kaui::KillbillHelper::get_account(@account_id)
|
|
18
|
-
@
|
|
18
|
+
@tag_names = Kaui::KillbillHelper::get_tags_for_account(@account.account_id).map { |tag| tag.tag_definition_name }
|
|
19
19
|
end
|
|
20
20
|
|
|
21
21
|
def update
|
|
22
|
-
|
|
23
|
-
|
|
22
|
+
current_tags = Kaui::KillbillHelper::get_tags_for_account(params[:account_id]).map { |tag| tag.tag_definition_id }
|
|
23
|
+
new_tags = []
|
|
24
|
+
params.each do |tag, tag_name|
|
|
25
|
+
tag_info = tag.split('_')
|
|
26
|
+
next if tag_info.size != 2 or tag_info[0] != 'tag'
|
|
27
|
+
new_tags << tag_info[1]
|
|
28
|
+
end
|
|
24
29
|
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
flash[:error] = "No account id given"
|
|
30
|
+
# Find tags to remove
|
|
31
|
+
tags_to_remove = []
|
|
32
|
+
current_tags.each do |current_tag_definition_id|
|
|
33
|
+
tags_to_remove << current_tag_definition_id unless new_tags.include?(current_tag_definition_id)
|
|
30
34
|
end
|
|
35
|
+
|
|
36
|
+
# Find tags to add
|
|
37
|
+
tags_to_add = []
|
|
38
|
+
new_tags.each do |new_tag_definition_id|
|
|
39
|
+
tags_to_add << new_tag_definition_id unless current_tags.include?(new_tag_definition_id)
|
|
40
|
+
end
|
|
41
|
+
|
|
42
|
+
Kaui::KillbillHelper::remove_tags_for_account(params[:account_id], tags_to_remove)
|
|
43
|
+
Kaui::KillbillHelper::add_tags_for_account(params[:account_id], tags_to_add)
|
|
44
|
+
|
|
45
|
+
redirect_to Kaui.account_home_path.call(params[:account_id])
|
|
31
46
|
end
|
|
32
47
|
|
|
33
48
|
end
|
|
@@ -12,7 +12,7 @@ class Kaui::AccountTimelinesController < Kaui::EngineController
|
|
|
12
12
|
|
|
13
13
|
if @account.present?
|
|
14
14
|
@timeline = Kaui::KillbillHelper::get_account_timeline(@account_id)
|
|
15
|
-
|
|
15
|
+
|
|
16
16
|
@invoices_by_id = {}
|
|
17
17
|
@bundle_names = {}
|
|
18
18
|
unless @timeline.nil?
|
|
@@ -13,12 +13,13 @@ class Kaui::AccountsController < Kaui::EngineController
|
|
|
13
13
|
if key.present?
|
|
14
14
|
# support id (UUID) and external key search
|
|
15
15
|
if key =~ /[A-Fa-f0-9]{8}-[A-Fa-f0-9]{4}-[A-Fa-f0-9]{4}-[A-Fa-f0-9]{4}-[A-Fa-f0-9]{12}/
|
|
16
|
-
@account = Kaui::KillbillHelper::get_account(key)
|
|
16
|
+
@account = Kaui::KillbillHelper::get_account(key, true)
|
|
17
17
|
else
|
|
18
|
-
@account = Kaui::KillbillHelper::get_account_by_external_key(key)
|
|
18
|
+
@account = Kaui::KillbillHelper::get_account_by_external_key(key, true)
|
|
19
19
|
end
|
|
20
20
|
|
|
21
|
-
if @account.present?
|
|
21
|
+
if @account.present? and @account.is_a? Kaui::Account
|
|
22
|
+
@tags = Kaui::KillbillHelper::get_tags_for_account(@account.account_id).sort
|
|
22
23
|
@payment_methods = Kaui::KillbillHelper::get_payment_methods(@account.account_id)
|
|
23
24
|
@bundles = Kaui::KillbillHelper::get_bundles(@account.account_id)
|
|
24
25
|
@subscriptions_by_bundle_id = {}
|
|
@@ -30,8 +31,8 @@ class Kaui::AccountsController < Kaui::EngineController
|
|
|
30
31
|
end
|
|
31
32
|
end
|
|
32
33
|
else
|
|
33
|
-
flash[:error] = "Account #{@account_id} not found"
|
|
34
|
-
|
|
34
|
+
flash[:error] = "Account #{@account_id} not found: #{@account}"
|
|
35
|
+
render :action => :index
|
|
35
36
|
end
|
|
36
37
|
else
|
|
37
38
|
flash[:error] = "No id given"
|
|
@@ -125,4 +126,5 @@ class Kaui::AccountsController < Kaui::EngineController
|
|
|
125
126
|
end
|
|
126
127
|
redirect_to :back
|
|
127
128
|
end
|
|
129
|
+
|
|
128
130
|
end
|
|
@@ -13,7 +13,7 @@ class Kaui::BundlesController < Kaui::EngineController
|
|
|
13
13
|
if key =~ /[A-Fa-f0-9]{8}-[A-Fa-f0-9]{4}-[A-Fa-f0-9]{4}-[A-Fa-f0-9]{4}-[A-Fa-f0-9]{12}/
|
|
14
14
|
@bundle = Kaui::KillbillHelper.get_bundle(key)
|
|
15
15
|
else
|
|
16
|
-
@bundle = Kaui::KillbillHelper.get_bundle_by_external_key(key)
|
|
16
|
+
@bundle = Kaui::KillbillHelper.get_bundle_by_external_key(key, params[:account_id])
|
|
17
17
|
end
|
|
18
18
|
|
|
19
19
|
if @bundle.present?
|
|
@@ -21,7 +21,7 @@ class Kaui::BundlesController < Kaui::EngineController
|
|
|
21
21
|
@subscriptions = Kaui::KillbillHelper.get_subscriptions_for_bundle(@bundle.bundle_id)
|
|
22
22
|
else
|
|
23
23
|
flash[:error] = "Bundle #{key} not found"
|
|
24
|
-
|
|
24
|
+
render :action => :index
|
|
25
25
|
end
|
|
26
26
|
else
|
|
27
27
|
flash[:error] = "No id given"
|
|
@@ -21,9 +21,10 @@ class Kaui::ChargebacksController < Kaui::EngineController
|
|
|
21
21
|
|
|
22
22
|
# @payment_attempt = Kaui::KillbillHelper::get_payment_attempt(@external_key, @invoice_id, @payment_id)
|
|
23
23
|
@account = Kaui::KillbillHelper::get_account(@account_id)
|
|
24
|
-
|
|
25
|
-
@payment = Kaui::KillbillHelper::get_payment(@invoice_id, @payment_id)
|
|
24
|
+
@payment = Kaui::KillbillHelper::get_payment(@payment_id)
|
|
26
25
|
@invoice = Kaui::KillbillHelper::get_invoice(@invoice_id)
|
|
26
|
+
@payment_method = Kaui::KillbillHelper::get_payment_method(@payment.payment_method_id)
|
|
27
|
+
|
|
27
28
|
@chargeback = Kaui::Chargeback.new("payment_id" => @payment_id,
|
|
28
29
|
"chargeback_amount" => @payment.amount)
|
|
29
30
|
end
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
class Kaui::ChargesController < Kaui::EngineController
|
|
2
|
+
|
|
3
|
+
def new
|
|
4
|
+
@account_id = params[:account_id]
|
|
5
|
+
@invoice_id = params[:invoice_id]
|
|
6
|
+
|
|
7
|
+
@account = Kaui::KillbillHelper::get_account(@account_id)
|
|
8
|
+
|
|
9
|
+
if @invoice_id.present?
|
|
10
|
+
@invoice = Kaui::KillbillHelper::get_invoice(@invoice_id)
|
|
11
|
+
@charge = Kaui::Charge.new("accountId" => @account_id, "invoiceId" => @invoice_id)
|
|
12
|
+
else
|
|
13
|
+
@charge = Kaui::Charge.new("accountId" => @account_id)
|
|
14
|
+
end
|
|
15
|
+
|
|
16
|
+
end
|
|
17
|
+
|
|
18
|
+
def create
|
|
19
|
+
charge = Kaui::Charge.new(params[:charge])
|
|
20
|
+
|
|
21
|
+
if charge.present?
|
|
22
|
+
success = Kaui::KillbillHelper::create_charge(charge, params[:requested_date], current_user, nil, params[:comment])
|
|
23
|
+
if success
|
|
24
|
+
flash[:info] = "Charge created"
|
|
25
|
+
end
|
|
26
|
+
else
|
|
27
|
+
flash[:error] = "No charge to process"
|
|
28
|
+
end
|
|
29
|
+
redirect_to account_timeline_path(:id => charge.account_id)
|
|
30
|
+
end
|
|
31
|
+
|
|
32
|
+
end
|
|
@@ -19,11 +19,10 @@ class Kaui::CreditsController < Kaui::EngineController
|
|
|
19
19
|
def new
|
|
20
20
|
@account_id = params[:account_id]
|
|
21
21
|
@invoice_id = params[:invoice_id]
|
|
22
|
-
|
|
23
|
-
@credit = Kaui::Credit.new("accountId" => @account_id, "invoiceId" => @invoice_id)
|
|
24
|
-
|
|
25
22
|
@account = Kaui::KillbillHelper::get_account(@account_id)
|
|
26
|
-
@invoice = Kaui::KillbillHelper::get_invoice(@invoice_id)
|
|
23
|
+
@invoice = Kaui::KillbillHelper::get_invoice(@invoice_id) unless @invoice_id.nil?
|
|
24
|
+
|
|
25
|
+
@credit = Kaui::Credit.new("accountId" => @account_id, "invoiceId" => @invoice_id, "creditAmount" => @invoice.balance)
|
|
27
26
|
end
|
|
28
27
|
|
|
29
28
|
def create
|
|
@@ -15,8 +15,6 @@ class Kaui::ExternalPaymentsController < Kaui::EngineController
|
|
|
15
15
|
success = Kaui::KillbillHelper::create_external_payment(external_payment, current_user, params[:reason], params[:comment])
|
|
16
16
|
if success
|
|
17
17
|
flash[:info] = "External Payment created"
|
|
18
|
-
# else
|
|
19
|
-
# flash[:error] = "Error while creating external payment"
|
|
20
18
|
end
|
|
21
19
|
redirect_to account_timeline_path(external_payment.account_id)
|
|
22
20
|
end
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
class Kaui::InvoiceItemsController < Kaui::EngineController
|
|
2
|
+
def index
|
|
3
|
+
if params[:invoice_item_id].present? and params[:invoice_id].present?
|
|
4
|
+
redirect_to invoice_item_path(params[:invoice_item_id], :invoice_id => params[:invoice_id])
|
|
5
|
+
end
|
|
6
|
+
end
|
|
7
|
+
|
|
8
|
+
def show
|
|
9
|
+
find_invoice_item
|
|
10
|
+
end
|
|
11
|
+
|
|
12
|
+
def edit
|
|
13
|
+
find_invoice_item
|
|
14
|
+
end
|
|
15
|
+
|
|
16
|
+
def update
|
|
17
|
+
@invoice_item = Kaui::InvoiceItem.new(params[:invoice_item])
|
|
18
|
+
success = Kaui::KillbillHelper.adjust_invoice(@invoice_item, current_user, params[:reason], params[:comment])
|
|
19
|
+
if success
|
|
20
|
+
flash[:notice] = "Adjustment item created"
|
|
21
|
+
redirect_to invoice_path(@invoice_item.invoice_id)
|
|
22
|
+
else
|
|
23
|
+
flash[:error] = "Unable to create adjustment item"
|
|
24
|
+
render :action => "edit"
|
|
25
|
+
end
|
|
26
|
+
end
|
|
27
|
+
|
|
28
|
+
private
|
|
29
|
+
|
|
30
|
+
def find_invoice_item
|
|
31
|
+
invoice_item_id = params[:id]
|
|
32
|
+
invoice_id = params[:invoice_id]
|
|
33
|
+
if invoice_item_id.present? and invoice_id.present?
|
|
34
|
+
@invoice_item = Kaui::KillbillHelper.get_invoice_item(invoice_id, invoice_item_id)
|
|
35
|
+
unless @invoice_item.present?
|
|
36
|
+
flash[:error] = "Invoice for id #{invoice_id} and invoice item id #{invoice_item_id} not found"
|
|
37
|
+
render :action => :index
|
|
38
|
+
end
|
|
39
|
+
else
|
|
40
|
+
flash[:error] = "Both invoice item and invoice ids should be specified"
|
|
41
|
+
render :action => :index
|
|
42
|
+
end
|
|
43
|
+
end
|
|
44
|
+
end
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
class Kaui::InvoicesController < Kaui::EngineController
|
|
2
2
|
def index
|
|
3
|
-
if params[:
|
|
4
|
-
redirect_to invoice_path(params[:
|
|
3
|
+
if params[:invoice_id].present?
|
|
4
|
+
redirect_to invoice_path(params[:invoice_id])
|
|
5
5
|
end
|
|
6
6
|
end
|
|
7
7
|
|
|
@@ -12,6 +12,7 @@ class Kaui::InvoicesController < Kaui::EngineController
|
|
|
12
12
|
if @invoice.present?
|
|
13
13
|
@account = Kaui::KillbillHelper.get_account(@invoice.account_id)
|
|
14
14
|
@payments = Kaui::KillbillHelper.get_payments(@invoice_id)
|
|
15
|
+
|
|
15
16
|
@subscriptions = {}
|
|
16
17
|
@bundles = {}
|
|
17
18
|
if @invoice.items.present?
|
|
@@ -28,7 +29,7 @@ class Kaui::InvoicesController < Kaui::EngineController
|
|
|
28
29
|
end
|
|
29
30
|
else
|
|
30
31
|
flash[:error] = "Invoice #{@invoice_id} not found"
|
|
31
|
-
|
|
32
|
+
render :action => :index
|
|
32
33
|
end
|
|
33
34
|
else
|
|
34
35
|
flash[:error] = "No id given"
|
|
@@ -1,29 +1,26 @@
|
|
|
1
1
|
class Kaui::PaymentsController < Kaui::EngineController
|
|
2
2
|
|
|
3
3
|
def new
|
|
4
|
-
@invoice_id = params[:invoice_id]
|
|
5
4
|
@account_id = params[:account_id]
|
|
6
|
-
|
|
7
|
-
@payment = Kaui::Payment.new("invoiceId" => @invoice_id)
|
|
8
|
-
|
|
9
|
-
@account = Kaui::KillbillHelper::get_account(@account_id)
|
|
5
|
+
@invoice_id = params[:invoice_id]
|
|
10
6
|
@invoice = Kaui::KillbillHelper::get_invoice(@invoice_id)
|
|
7
|
+
@account = Kaui::KillbillHelper::get_account(@account_id)
|
|
8
|
+
|
|
9
|
+
@payment = Kaui::Payment.new("accountId" => @account_id, "invoiceId" => @invoice_id, "amount" => @invoice.balance)
|
|
11
10
|
end
|
|
12
11
|
|
|
13
12
|
def create
|
|
14
|
-
|
|
13
|
+
payment = Kaui::Payment.new(params[:payment])
|
|
15
14
|
|
|
16
|
-
if
|
|
17
|
-
success = Kaui::KillbillHelper::
|
|
15
|
+
if payment.present?
|
|
16
|
+
success = Kaui::KillbillHelper::create_payment(payment, params[:external], current_user, params[:reason], params[:comment])
|
|
18
17
|
if success
|
|
19
|
-
flash[:info] = "
|
|
20
|
-
# else
|
|
21
|
-
# flash[:error] = "Error while creating external payment"
|
|
18
|
+
flash[:info] = "Payment created"
|
|
22
19
|
end
|
|
23
20
|
else
|
|
24
|
-
flash[:error] = "No
|
|
21
|
+
flash[:error] = "No payment to process"
|
|
25
22
|
end
|
|
26
|
-
redirect_to account_timeline_path(:id =>
|
|
23
|
+
redirect_to account_timeline_path(:id => payment.account_id)
|
|
27
24
|
end
|
|
28
25
|
|
|
29
26
|
end
|
|
@@ -1,15 +1,25 @@
|
|
|
1
1
|
class Kaui::RefundsController < Kaui::EngineController
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
2
|
+
def index
|
|
3
|
+
if params[:refund_id].present?
|
|
4
|
+
redirect_to refund_path(params[:refund_id])
|
|
5
|
+
end
|
|
6
|
+
end
|
|
7
|
+
|
|
8
|
+
def show
|
|
9
|
+
if params[:id].present?
|
|
10
|
+
data = Kaui::KillbillHelper::get_refund(params[:id])
|
|
6
11
|
if data.present?
|
|
7
|
-
@
|
|
12
|
+
@refunds = [data]
|
|
8
13
|
else
|
|
9
|
-
|
|
14
|
+
@refunds = Kaui::KillbillHelper::get_refunds_for_payment(params[:id])
|
|
15
|
+
unless @refunds.present?
|
|
16
|
+
flash[:error] = "Refund for id or payment id #{params[:id]} couldn't be found"
|
|
17
|
+
render :action => :index
|
|
18
|
+
end
|
|
10
19
|
end
|
|
11
20
|
else
|
|
12
|
-
flash[:
|
|
21
|
+
flash[:error] = "A refund or payment id should be specifed"
|
|
22
|
+
render :action => :index
|
|
13
23
|
end
|
|
14
24
|
end
|
|
15
25
|
|
|
@@ -21,8 +31,9 @@ class Kaui::RefundsController < Kaui::EngineController
|
|
|
21
31
|
@refund = Kaui::Refund.new('adjusted' => true)
|
|
22
32
|
|
|
23
33
|
@account = Kaui::KillbillHelper::get_account(@account_id)
|
|
24
|
-
@payment = Kaui::KillbillHelper::get_payment(@
|
|
34
|
+
@payment = Kaui::KillbillHelper::get_payment(@payment_id)
|
|
25
35
|
@invoice = Kaui::KillbillHelper::get_invoice(@invoice_id)
|
|
36
|
+
@payment_method = Kaui::KillbillHelper::get_payment_method(@payment.payment_method_id)
|
|
26
37
|
end
|
|
27
38
|
|
|
28
39
|
def create
|
|
@@ -76,10 +76,14 @@ class Kaui::SubscriptionsController < Kaui::EngineController
|
|
|
76
76
|
|
|
77
77
|
def edit
|
|
78
78
|
@subscription = Kaui::KillbillHelper.get_subscription(params[:id])
|
|
79
|
+
|
|
79
80
|
if @subscription.present?
|
|
80
81
|
@bundle = Kaui::KillbillHelper::get_bundle(@subscription.bundle_id)
|
|
82
|
+
@account = Kaui::KillbillHelper::get_account(@bundle.account_id)
|
|
81
83
|
@catalog = Kaui::KillbillHelper::get_available_base_plans
|
|
84
|
+
|
|
82
85
|
@current_plan = "#{@subscription.product_name} #{@subscription.billing_period}".humanize
|
|
86
|
+
|
|
83
87
|
if @subscription.price_list != "DEFAULT"
|
|
84
88
|
@current_plan += " (price list #{@subscription.price_list})"
|
|
85
89
|
end
|
|
@@ -106,7 +110,7 @@ class Kaui::SubscriptionsController < Kaui::EngineController
|
|
|
106
110
|
# TODO: need to use entered start_date (or current date if none entered)
|
|
107
111
|
|
|
108
112
|
Kaui::KillbillHelper::update_subscription(subscription, requested_date, current_user)
|
|
109
|
-
redirect_to Kaui.bundle_home_path.call(bundle.
|
|
113
|
+
redirect_to Kaui.bundle_home_path.call(bundle.bundle_id)
|
|
110
114
|
else
|
|
111
115
|
flash[:error] = "No subscription given"
|
|
112
116
|
redirect_to :back
|
|
@@ -0,0 +1,85 @@
|
|
|
1
|
+
module Kaui
|
|
2
|
+
class TagDefinitionsController < ApplicationController
|
|
3
|
+
# GET /tag_definitions
|
|
4
|
+
# GET /tag_definitions.json
|
|
5
|
+
def index
|
|
6
|
+
@tag_definitions = TagDefinition.all
|
|
7
|
+
|
|
8
|
+
respond_to do |format|
|
|
9
|
+
format.html # index.html.erb
|
|
10
|
+
format.json { render json: @tag_definitions }
|
|
11
|
+
end
|
|
12
|
+
end
|
|
13
|
+
|
|
14
|
+
# GET /tag_definitions/1
|
|
15
|
+
# GET /tag_definitions/1.json
|
|
16
|
+
def show
|
|
17
|
+
@tag_definition = TagDefinition.find(params[:id])
|
|
18
|
+
|
|
19
|
+
respond_to do |format|
|
|
20
|
+
format.html # show.html.erb
|
|
21
|
+
format.json { render json: @tag_definition }
|
|
22
|
+
end
|
|
23
|
+
end
|
|
24
|
+
|
|
25
|
+
# GET /tag_definitions/new
|
|
26
|
+
# GET /tag_definitions/new.json
|
|
27
|
+
def new
|
|
28
|
+
@tag_definition = TagDefinition.new
|
|
29
|
+
|
|
30
|
+
respond_to do |format|
|
|
31
|
+
format.html # new.html.erb
|
|
32
|
+
format.json { render json: @tag_definition }
|
|
33
|
+
end
|
|
34
|
+
end
|
|
35
|
+
|
|
36
|
+
# GET /tag_definitions/1/edit
|
|
37
|
+
def edit
|
|
38
|
+
@tag_definition = TagDefinition.find(params[:id])
|
|
39
|
+
end
|
|
40
|
+
|
|
41
|
+
# POST /tag_definitions
|
|
42
|
+
# POST /tag_definitions.json
|
|
43
|
+
def create
|
|
44
|
+
@tag_definition = TagDefinition.new(params[:tag_definition])
|
|
45
|
+
|
|
46
|
+
respond_to do |format|
|
|
47
|
+
if @tag_definition.save
|
|
48
|
+
format.html { redirect_to @tag_definition, notice: 'Tag definition was successfully created.' }
|
|
49
|
+
format.json { render json: @tag_definition, status: :created, location: @tag_definition }
|
|
50
|
+
else
|
|
51
|
+
format.html { render action: "new" }
|
|
52
|
+
format.json { render json: @tag_definition.errors, status: :unprocessable_entity }
|
|
53
|
+
end
|
|
54
|
+
end
|
|
55
|
+
end
|
|
56
|
+
|
|
57
|
+
# PUT /tag_definitions/1
|
|
58
|
+
# PUT /tag_definitions/1.json
|
|
59
|
+
def update
|
|
60
|
+
@tag_definition = TagDefinition.find(params[:id])
|
|
61
|
+
|
|
62
|
+
respond_to do |format|
|
|
63
|
+
if @tag_definition.update_attributes(params[:tag_definition])
|
|
64
|
+
format.html { redirect_to @tag_definition, notice: 'Tag definition was successfully updated.' }
|
|
65
|
+
format.json { head :no_content }
|
|
66
|
+
else
|
|
67
|
+
format.html { render action: "edit" }
|
|
68
|
+
format.json { render json: @tag_definition.errors, status: :unprocessable_entity }
|
|
69
|
+
end
|
|
70
|
+
end
|
|
71
|
+
end
|
|
72
|
+
|
|
73
|
+
# DELETE /tag_definitions/1
|
|
74
|
+
# DELETE /tag_definitions/1.json
|
|
75
|
+
def destroy
|
|
76
|
+
@tag_definition = TagDefinition.find(params[:id])
|
|
77
|
+
@tag_definition.destroy
|
|
78
|
+
|
|
79
|
+
respond_to do |format|
|
|
80
|
+
format.html { redirect_to tag_definitions_url }
|
|
81
|
+
format.json { head :no_content }
|
|
82
|
+
end
|
|
83
|
+
end
|
|
84
|
+
end
|
|
85
|
+
end
|