<%= select_tag "bundles", options_for_select([ "" ] + @bundle_names.values.sort, @selected_bundle || 'all') %>
Billing timezone:
<%= @account.timezone %>

<% if @account.present? && @timeline.present? %> <% @timeline.invoices.each do |invoice_stub| %> <% if invoice_stub.bundle_keys.present? %> <% bundles = invoice_stub.bundle_keys.split(",").map {|bundle_key| @bundle_names[bundle_key] }.join(",") %> <% end %> <% if invoice_stub.invoice_id.present? && @invoices_by_id.has_key?(invoice_stub.invoice_id) %> <% invoice = @invoices_by_id[invoice_stub.invoice_id] %> <% else %> <% invoice = invoice_stub %> <% end %> <% end %> <% @timeline.payments.each do |payment| %> <% payment.refunds.each do |refund| %> <% bundles = payment.bundle_keys.split(",").map {|bundle_key| @bundle_names[bundle_key] }.join(",") %> <% end %> <% end %> <% @timeline.payments.each do |payment| %> <% payment.chargebacks.each do |chargeback| %> <% bundles = payment.bundle_keys.split(",").map {|bundle_key| @bundle_names[bundle_key] }.join(",") %> <% end %> <% end %> <% @timeline.payments.each do |payment| %> <% if payment.bundle_keys.present? %> <% bundles = payment.bundle_keys.split(",").map {|bundle_key| @bundle_names[bundle_key] }.join(",") %> <% end %> <% if payment.invoice_id.present? %> <% invoice = @invoices_by_id[payment.invoice_id] %> <% else %> <% invoice = nil %> <% end %> <% end %> <% @timeline.bundles.each do |bundle| %> <% bundle.subscriptions.each do |sub| %> <% sub.events.each do |event| %> <% next if event.event_type == 'UNCANCEL' %> <% end %> <% end %> <% end %> <% end %>
Requested Date Effective Date Bundle Name Event Type Details Reason Code / Comments Actions
<% if invoice.invoice_date.present? %> <%= invoice.invoice_date %> <% else %> [unknown] <% end %> <% if invoice.target_date.present? %> <%= invoice.target_date %> <% else %> [unknown] <% end %> <% if invoice_stub.bundle_keys.present? %> <% invoice_stub.bundle_keys.split(",").each do |bundle_key| %> <%= link_to @bundle_names[bundle_key], Kaui.bundle_home_path.call(bundle_key) %>
<% end %> <% end %>
<%= "INVOICE" %> <%= "Amount:" %> <%= humanized_money_with_symbol invoice.amount_to_money(@account.currency) %> (<%= @account.currency %>)
<%= "Balance:" %> <%= humanized_money_with_symbol invoice.balance_to_money(@account.currency) %> (<%= @account.currency %>)
<% if invoice.credit_adjustment.present? && invoice.credit_adjustment > 0 %> <%= "Credit adjustment:" %> <%= humanized_money_with_symbol invoice.credit_adjustment_to_money(@account.currency) %> (<%= @account.currency %>)
<% end %> <% if invoice.credit_balance_adjustment.present? && invoice.credit_balance_adjustment > 0 %> <%= "Credit balance adjustment:" %> <%= humanized_money_with_symbol invoice.credit_balance_adjustment_to_money(@account.currency) %> (<%= @account.currency %>)
<% end %> <% if invoice.refund_adjustment.present? && invoice.refund_adjustment < 0 %> <%= "Refund adjustment:" %> <%= humanized_money_with_symbol invoice.refund_adjustment_to_money(@account.currency) %> (<%= @account.currency %>)
<% end %> <%= "Invoice #" %> <%= link_to invoice.invoice_number, invoice_path(:id => invoice.invoice_id) %>
<% if invoice_stub.audit_logs.present? %> <% invoice_stub.audit_logs.each do |entry| %> <%= entry.description unless entry.changed_by == 'Transition' %>
<% end %> <% end %>
<%= link_to "Payment", kaui_engine.new_payment_path(:params => { :account_id => invoice.account_id, :invoice_id => invoice.invoice_id }), :class => "btn btn-mini #{"disabled" unless invoice.balance > 0}" %> <%= link_to "Credit", kaui_engine.new_credit_path(:params => { :account_id => invoice.account_id, :invoice_id => invoice.invoice_id }), :class => "btn btn-mini" %> <%= link_to "Charge", kaui_engine.new_charge_path(:params => { :account_id => invoice.account_id, :invoice_id => invoice.invoice_id }), :class => "btn btn-mini" %>
<% if refund.requested_date.present? %> <%= format_date(refund.requested_date).html_safe %> <% else %> [unknown] <% end %> <% if refund.effective_date.present? %> <%= format_date(refund.effective_date).html_safe %> <% else %> [unknown] <% end %> <% payment.bundle_keys.split(",").each do |bundle_key| %> <%= link_to @bundle_names[bundle_key], Kaui.bundle_home_path.call(bundle_key) %>
<% end %>
<%= "REFUND" %> <%= "Adjusted:" %> <% if refund.adjusted %>yes<% else %>no<% end %>
<%= "Payment id:" %> <%= refund.payment_id %>
<%= "Refund Amount:" %> <%= humanized_money_with_symbol refund.amount_to_money %> (<%= refund.currency %>)
<% if refund.audit_logs.present? %> <%= refund.audit_logs[0].description %>
<% end %>
<% if chargeback.effective_date.present? %> <%= format_date(chargeback.effective_date).html_safe %> <% else %> [unknown] <% end %> <% if chargeback.effective_date.present? %> <%= format_date(chargeback.effective_date).html_safe %> <% else %> [unknown] <% end %> <% payment.bundle_keys.split(",").each do |bundle_key| %> <%= link_to @bundle_names[bundle_key], Kaui.bundle_home_path.call(bundle_key) %>
<% end %>
<%= "CHARGEBACK" %> <%= "Payment id:" %> <%= chargeback.payment_id %>
<%= "Chargeback Amount:" %> <%= humanized_money_with_symbol chargeback.chargeback_amount_to_money(payment.currency) %> (<%= payment.currency %>)
<% if chargeback.audit_logs.present? %> <%= chargeback.audit_logs[0].description %>
<% end %>
<% if payment.requested_date.present? %> <%= format_date(payment.requested_date).html_safe %> <% else %> [unknown] <% end %> <% if payment.effective_date.present? %> <%= format_date(payment.effective_date).html_safe %> <% else %> [unknown] <% end %> <% payment.bundle_keys.split(",").each do |bundle_key| %> <%= link_to @bundle_names[bundle_key], Kaui.bundle_home_path.call(bundle_key) %>
<% end %>
<%= "PAYMENT" %> <%= "Payment id:" %> <%= payment.payment_id %>
<%= "Total amount:" %> <%= humanized_money_with_symbol payment.amount_to_money %> (<%= payment.currency %>)
<%= "Paid amount:" %> <%= humanized_money_with_symbol payment.paid_amount_to_money %> (<%= payment.currency %>)
class="alert-error" <% elsif payment.status == 'SUCCESS' %>class="alert-success" <% end %>> <%= payment.status %>
<%= "Invoice #" %> <%= link_to invoice.invoice_number, invoice_path(:id => invoice.invoice_id) %>
<% if payment.audit_logs.present? %> <% payment.audit_logs.each do |entry| %> <%= entry.description unless entry.changed_by == 'PaymentRequestProcessor' %>
<% end %> <% end %>
<%= link_to 'Refund', kaui_engine.new_refund_path(:params => { :payment_id => payment.payment_id, :account_id => @account.account_id, :invoice_id => payment.invoice_id }), :class => "btn btn-mini #{"disabled" unless payment.payment_id.present?}" %> <%= link_to 'Chargeback', kaui_engine.new_chargeback_path(:params => { :payment_id => payment.payment_id, :account_id => @account.account_id, :invoice_id => payment.invoice_id }), :class => "btn btn-mini #{"disabled" unless payment.payment_id.present?}" %>
<% if event.requested_date.present? %> <%= format_date(event.requested_date).html_safe %> <% else %> [unknown] <% end %> <% if event.effective_date.present? %> <%= format_date(event.effective_date).html_safe %> <% else %> [unknown] <% end %> <%= link_to @bundle_names[bundle.external_key], Kaui.bundle_home_path.call(bundle.external_key) %>
<%= event.event_type %> <%= event.product %> <%= event.billing_period == 'NO_BILLING_PERIOD' || event.billing_period.nil? ? "" : event.billing_period.downcase.capitalize %> <%= event.phase.downcase.capitalize if event.phase.present? %> <% if event.audit_logs.present? %> <% event.audit_logs.each do |entry| %> <%= entry.description %>
<% end %> <% end %>
<%= link_to 'Back', :back, :class => 'btn' %>
<%= javascript_tag do %> function disableLinks() { $('a.btn.disabled').click(function (e) { e.preventDefault(); }); } eventsOrder = ["CREATE", "PHASE", "CHANGE", "CANCEL", "INVOICE", "PAYMENT", "REFUND", "CHARGEBACK"]; jQuery.fn.dataTableExt.oSort['timeline-event-asc'] = function(e1,e2) { var x = eventsOrder.indexOf(e1); var y = eventsOrder.indexOf(e2); return ((x < y) ? -1 : ((x > y) ? 1 : 0)); }; jQuery.fn.dataTableExt.oSort['timeline-event-desc'] = function(e1,e2) { var x = eventsOrder.indexOf(e1); var y = eventsOrder.indexOf(e2); return ((x < y) ? 1 : ((x > y) ? -1 : 0)); }; function extractTitleAttributeFromText(txt) { // Ugly - better way of doing this? var matches = txt.match(/title="\w+"/g); if (matches == null || matches.size == 0) { return null; } return matches[0].split('=')[1]; } jQuery.fn.dataTableExt.oSort['timeline-details-asc'] = function(e1,e2) { var x = extractTitleAttributeFromText(e1); var y = extractTitleAttributeFromText(e2); return ((x < y) ? -1 : ((x > y) ? 1 : 0)); }; jQuery.fn.dataTableExt.oSort['timeline-details-desc'] = function(e1,e2) { var x = extractTitleAttributeFromText(e1); var y = extractTitleAttributeFromText(e2); return ((x < y) ? 1 : ((x > y) ? -1 : 0)); }; function initTable() { return $("#timeline-table").dataTable({ "sDom": "<'row-fluid'<'span6'l><'span6'f>r>t<'row-fluid'<'span6'i><'span6'p>>", "sPaginationType": "bootstrap", "oLanguage": { "sLengthMenu": "_MENU_ records per page" }, "iDisplayLength": 100, "bRetrieve": true, // Force a predictive order for event types, invoices and payments "aaSortingFixed": [[1, 'desc'], [4, 'desc'], [3, 'desc']], "aoColumns": [ { "sType": 'date' }, { "sType": 'date' }, null, { "sType": 'timeline-event' }, { "sType": 'timeline-details' }, null, null ] }); } function filterBundles() { var bundle = $("#bundles").val(); var dataTable = initTable(); $(dataTable.fnGetNodes()).each(function() { var tr = $(this); if (bundle == "" || tr.attr("title").split(",").indexOf(bundle) >= 0) { tr.removeClass("hide"); } else { tr.addClass("hide"); } }); dataTable.fnDraw(); } $(document).ready(function() { disableLinks(); // When going through the pages of the table, disable links as needed $('#timeline-table').bind('draw', function (e) { disableLinks(); }); initTable(); $("#bundles").change(filterBundles); filterBundles(); }); <% end %>