Class: Spree::Billing::ReportsController
- Inherits:
-
BaseController
- Object
- Admin::ResourceController
- BaseController
- Spree::Billing::ReportsController
- Defined in:
- app/controllers/spree/billing/reports_controller.rb
Instance Method Summary collapse
-
#active_subscribers ⇒ Object
GET /billing/reports/active_subscribers.
-
#balance_due ⇒ Object
GET /billing/reports/balance_due.
- #export ⇒ Object
-
#failed_orders ⇒ Object
GET /billing/reports/failed_orders.
- #index ⇒ Object
-
#overdue ⇒ Object
GET /billing/reports/overdue.
-
#paid ⇒ Object
GET /billing/reports/paid.
-
#print_all_invoices ⇒ Object
POST /billing/reports/print_all_invoices.
Methods included from SpreeCmCommissioner::Billing::MonthlyOrdersHelper
#initialize_monthly_order_hashes, #load_orders_by_month
Methods inherited from BaseController
#collection_url, #current_vendor, #default_url_options, #edit_object_url, #handle_unauthorized_vendor, #page, #per_page, #required_vendor_user!, #set_locale, #switch_vendor, #vendors
Methods included from SpreeCmCommissioner::Billing::RoleAuthorization
#auth_action, #auth_entry, #auth_user, #authorize!, #authorize?, #authorize_admin, #authorize_role!, #redirect_unauthorized_access
Instance Method Details
#active_subscribers ⇒ Object
GET /billing/reports/active_subscribers
54 55 56 57 58 59 |
# File 'app/controllers/spree/billing/reports_controller.rb', line 54 def active_subscribers load_bussinesses @search = customers_scope.ransack(params[:q]) @customers = @search.result.includes(:subscriptions, :taxons).page(page).per(per_page) end |
#balance_due ⇒ Object
GET /billing/reports/balance_due
28 29 30 31 32 33 34 35 36 |
# File 'app/controllers/spree/billing/reports_controller.rb', line 28 def balance_due @search = orders_scope.ransack(SpreeCmCommissioner::OrderParamsChecker.process_balance_due_params(params)) @orders = @search.result.includes(:line_items).where(payment_state: 'balance_due').page(page).per(per_page) respond_to do |format| format.html format.js end end |
#export ⇒ Object
70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 |
# File 'app/controllers/spree/billing/reports_controller.rb', line 70 def export @year = params[:year].presence || Time.zone.today.year search = orders_scope.where(payment_state: %w[paid balance_due failed]).joins(:invoice) .where('EXTRACT(YEAR FROM cm_invoices.date) = ?', @year).ransack(params[:q]).result order_hashes = load_orders_by_month(search, @year) @orders = order_hashes[:orders] @total = order_hashes[:total] @current_month_total = order_hashes[:current_month_total] @previous_month_carried_forward = order_hashes[:previous_month_carried_forward] @paid = order_hashes[:paid] @balance_due = order_hashes[:balance_due] @voided = order_hashes[:voided] return unless request.format == :csv csv_data = SpreeCmCommissioner::Exports::ExportOrderCsvService.new(@orders[params[:month].to_i], params[:place_id]).call respond_to do |format| format.csv do send_data csv_data, filename: "#{@year}_#{Date::MONTHNAMES[params[:month].to_i]}_Invoices.csv", type: 'text/csv; charset=utf-8' end end end |
#failed_orders ⇒ Object
GET /billing/reports/failed_orders
47 48 49 50 51 |
# File 'app/controllers/spree/billing/reports_controller.rb', line 47 def failed_orders @search = orders_scope.joins(:line_items).where(payment_state: 'failed') .ransack(params[:q]) @orders = @search.result.includes(:line_items).page(page).per(per_page) end |
#index ⇒ Object
14 15 16 17 18 19 |
# File 'app/controllers/spree/billing/reports_controller.rb', line 14 def index (from_date, to_date) = date_range_for_month @revenue_totals = revenue_report_query(from_date, to_date).reports_with_overdues @search = searcher(from_date, to_date).ransack(params[:q]) @orders = @search.result.includes(:line_items).page(page).per(per_page) end |
#overdue ⇒ Object
GET /billing/reports/overdue
39 40 41 42 43 44 |
# File 'app/controllers/spree/billing/reports_controller.rb', line 39 def overdue @search = orders_scope.joins(:line_items).where.not(payment_state: %w[paid failed]) .where('spree_line_items.due_date < ?', Time.zone.today) .ransack(params[:q]) @orders = @search.result.includes(:line_items).page(page).per(per_page) end |
#paid ⇒ Object
GET /billing/reports/paid
22 23 24 25 |
# File 'app/controllers/spree/billing/reports_controller.rb', line 22 def paid @search = orders_scope.ransack(SpreeCmCommissioner::OrderParamsChecker.process_paid_params(params)) @orders = @search.result.includes(:line_items).where(payment_state: 'paid').page(page).per(per_page) end |
#print_all_invoices ⇒ Object
POST /billing/reports/print_all_invoices
62 63 64 65 66 67 68 |
# File 'app/controllers/spree/billing/reports_controller.rb', line 62 def print_all_invoices @orders = orders_scope.joins(:invoice).where(payment_state: 'balance_due').where(cm_invoices: { vendor_id: current_vendor.id }) @orders.each do |order| order.invoice.update(invoice_issued_date: Time.zone.today) if order.invoice.invoice_issued_date.blank? end end |