Sha256: e73cbf7401ac0393457f98dc5f73d797e0603922baff990329e61f2be3f4e2a6

Contents?: true

Size: 1.49 KB

Versions: 11

Compression:

Stored size: 1.49 KB

Contents

if defined?(EffectiveDatatables)
  module Effective
    module Datatables
      class Customers < Effective::Datatable
        table_column :email, :column => 'users.email' do |user|
          mail_to user.email, user.email
        end

        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'

        def collection
          Effective::Customer.customers.uniq
            .joins(:user)
            .joins(:subscriptions)
            .select('customers.*')
            .select('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')
            .group('subscriptions.stripe_plan_id')
            .group('users.email')
        end

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

      end
    end
  end
end

Version data entries

11 entries across 11 versions & 1 rubygems

Version Path
effective_orders-1.2.6 app/models/effective/datatables/customers.rb
effective_orders-1.2.5 app/models/effective/datatables/customers.rb
effective_orders-1.2.4 app/models/effective/datatables/customers.rb
effective_orders-1.2.3 app/models/effective/datatables/customers.rb
effective_orders-1.2.2 app/models/effective/datatables/customers.rb
effective_orders-1.2.1 app/models/effective/datatables/customers.rb
effective_orders-1.2.0 app/models/effective/datatables/customers.rb
effective_orders-1.1.2 app/models/effective/datatables/customers.rb
effective_orders-1.1.1 app/models/effective/datatables/customers.rb
effective_orders-1.1.0 app/models/effective/datatables/customers.rb
effective_orders-1.0.0 app/models/effective/datatables/customers.rb