summaryrefslogtreecommitdiff
path: root/billing
diff options
context:
space:
mode:
authorjessib <jessib@leap.se>2013-05-07 11:32:11 -0700
committerAzul <azul@leap.se>2013-07-17 10:47:13 +0200
commita00470d0c046774edc94ef01ef9bc590e8d58ac9 (patch)
tree6745c8edb80ae2bec3ae3896ce806368dccada9d /billing
parent62b32320f38627dad870c7b3157576c48674c42b (diff)
Display 3 most recent transactions on a customer's page, with a link to all of their transactions.
Diffstat (limited to 'billing')
-rw-r--r--billing/app/controllers/customers_controller.rb6
-rw-r--r--billing/app/controllers/payments_controller.rb8
-rw-r--r--billing/app/views/customers/_transaction.html.haml15
-rw-r--r--billing/app/views/customers/show.html.haml10
-rw-r--r--billing/app/views/payments/_transaction_details.html.haml15
-rw-r--r--billing/app/views/payments/index.html.haml2
6 files changed, 33 insertions, 23 deletions
diff --git a/billing/app/controllers/customers_controller.rb b/billing/app/controllers/customers_controller.rb
index b0184af..2532334 100644
--- a/billing/app/controllers/customers_controller.rb
+++ b/billing/app/controllers/customers_controller.rb
@@ -5,12 +5,6 @@ class CustomersController < BillingBaseController
def show
@active_subscription = @customer.subscriptions(@braintree_data)
- # UGLY Braintree::ResourceCollection to array.
- # might want method
- @transactions = []
- @braintree_data.transactions.each do |transaction|
- @transactions << transaction
- end
end
def new
diff --git a/billing/app/controllers/payments_controller.rb b/billing/app/controllers/payments_controller.rb
index 49a0c8a..89fdeb0 100644
--- a/billing/app/controllers/payments_controller.rb
+++ b/billing/app/controllers/payments_controller.rb
@@ -1,4 +1,6 @@
class PaymentsController < ApplicationController
+ before_filter :authorize, :only => [:index]
+
def new
if current_user
if @customer = Customer.find_by_user_id(current_user.id)
@@ -25,6 +27,12 @@ class PaymentsController < ApplicationController
end
end
+ def index
+ customer = Customer.find_by_user_id(current_user.id)
+ braintree_data = Braintree::Customer.find(customer.braintree_customer_id)
+ @transactions = braintree_data.transactions
+ end
+
protected
def transparent_redirect(braintree_customer_id = nil)
diff --git a/billing/app/views/customers/_transaction.html.haml b/billing/app/views/customers/_transaction.html.haml
index 53483d9..e69de29 100644
--- a/billing/app/views/customers/_transaction.html.haml
+++ b/billing/app/views/customers/_transaction.html.haml
@@ -1,15 +0,0 @@
-%p
- = transaction.id
- Type:
- = transaction.type
- Amount:
- = number_to_currency(transaction.amount)
- Status:
- = transaction.status
- Date
- = transaction.created_at
- - if sub_start = transaction.subscription_details.billing_period_start_date
- From subscription which started
- = sub_start
- - else
- Not paid as part of subscription \ No newline at end of file
diff --git a/billing/app/views/customers/show.html.haml b/billing/app/views/customers/show.html.haml
index b36ebaf..1e4c5ae 100644
--- a/billing/app/views/customers/show.html.haml
+++ b/billing/app/views/customers/show.html.haml
@@ -1,7 +1,13 @@
= render :partial => 'payments/customer_data'
= link_to 'Make Payment', new_payment_path, :class => :btn
-%h3 Transaction History
-= render(:partial => "transaction", :collection => @transactions) # show subset with link to see more
+%h3 Last three transactions
+- counter = 0
+= # asked http://stackoverflow.com/questions/16425475/order-of-transactions-returned-by-braintree-api to confirm order will always be most recent first
+- @braintree_data.transactions.each do |t|
+ - break if counter > 2 # not ruby-like, but object is a Braintree::ResourceCollection so limited methods available
+ = render :partial => "payments/transaction_details", :locals => {:transaction => t}
+ - counter += 1
+= link_to 'Transaction History', payments_path
- if @active_subscription
%h3 Active Subscription
= render :partial => "subscriptions/subscription_details", :locals => {:subscription => @active_subscription}
diff --git a/billing/app/views/payments/_transaction_details.html.haml b/billing/app/views/payments/_transaction_details.html.haml
new file mode 100644
index 0000000..53483d9
--- /dev/null
+++ b/billing/app/views/payments/_transaction_details.html.haml
@@ -0,0 +1,15 @@
+%p
+ = transaction.id
+ Type:
+ = transaction.type
+ Amount:
+ = number_to_currency(transaction.amount)
+ Status:
+ = transaction.status
+ Date
+ = transaction.created_at
+ - if sub_start = transaction.subscription_details.billing_period_start_date
+ From subscription which started
+ = sub_start
+ - else
+ Not paid as part of subscription \ No newline at end of file
diff --git a/billing/app/views/payments/index.html.haml b/billing/app/views/payments/index.html.haml
new file mode 100644
index 0000000..a3ad067
--- /dev/null
+++ b/billing/app/views/payments/index.html.haml
@@ -0,0 +1,2 @@
+- @transactions.each do |t|
+ = render :partial => "transaction_details", :locals => {:transaction => t} \ No newline at end of file