Sha256: c8076624f9b7b2f02541597c42033c5f3a6bdd6a808c0702a8adf60c8d4529f9

Contents?: true

Size: 1.47 KB

Versions: 46

Compression:

Stored size: 1.47 KB

Contents

if defined?(EffectiveDatatables)
  module Effective
    module Datatables
      class Customers < Effective::Datatable
        datatable do
          default_order :email, :asc

          table_column :id, visible: false
          table_column(:email, column: 'users.email') { |user| mail_to user.email, user.email }

          if EffectiveOrders.stripe_enabled
            table_column :stripe_customer_id
            table_column :stripe_active_card
          end

          if EffectiveOrders.stripe_connect_enabled
            table_column :stripe_connect_access_token
          end

          table_column :subscription_types, column: 'subscription_types'

          table_column :actions, sortable: false, filter: false, partial: '/admin/customers/actions'
        end

        def collection
          Effective::Customer.customers.uniq
            .joins(:user, :subscriptions)
            .select('customers.*, users.email AS email')
            .select("array_to_string(array(#{Effective::Subscription.purchased.select('subscriptions.stripe_plan_id').where('subscriptions.customer_id = customers.id').to_sql}), ' ,') AS subscription_types")
            .group('customers.id, subscriptions.stripe_plan_id, users.email')
        end

        def search_column(collection, table_column, search_term)
          return collection.where('subscriptions.stripe_plan_id ILIKE ?', "%#{search_term}%") if table_column[:name] == 'subscription_types'
          super
        end
      end
    end
  end
end

Version data entries

46 entries across 46 versions & 1 rubygems

Version Path
effective_orders-1.4.4 app/models/effective/datatables/customers.rb
effective_orders-1.4.3 app/models/effective/datatables/customers.rb
effective_orders-1.4.2 app/models/effective/datatables/customers.rb
effective_orders-1.4.1 app/models/effective/datatables/customers.rb
effective_orders-1.4.0 app/models/effective/datatables/customers.rb
effective_orders-1.3.13 app/models/effective/datatables/customers.rb