Sha256: e51a5e4a92589506fda5309c9d666a2a851f203e5feb53d7c4be3637e82b2d85

Contents?: true

Size: 1.95 KB

Versions: 16

Compression:

Stored size: 1.95 KB

Contents

# This is a user specific EffectiveOrdersDatatable

class EffectiveOrdersDatatable < Effective::Datatable
  filters do
    unless attributes[:not_purchased]
      scope :purchased, default: true
      scope :deferred
      scope :refunds
    end
  end

  datatable do
    order :id, :desc

    col :created_at, visible: false
    col :updated_at, visible: false

    col :id, label: 'Number' do |order|
      '#' + order.to_param
    end

    col :parent, visible: false, search: :string

    unless attributes[:not_purchased]
      col :purchased_at do |order|
        order.purchased_at&.strftime('%F %H:%M') || 'not purchased'
      end
    end

    if EffectiveOrders.billing_address
      col :billing_address, visible: false
    end

    if EffectiveOrders.shipping_address
      col :shipping_address, visible: false
    end

    col :order_items, search: { as: :string }

    col :subtotal, as: :price, visible: false
    col :tax, as: :price, visible: false

    col :tax_rate, visible: false do |order|
      tax_rate_to_percentage(order.tax_rate)
    end

    col :total, as: :price

    col :payment_provider, label: 'Provider', visible: false, search: { collection: EffectiveOrders.payment_providers }
    col :payment_card, label: 'Card', visible: false

    if EffectiveOrders.collect_note
      col :note
    end

    col :note_to_buyer

    actions_col partial: 'effective/orders/datatable_actions', partial_as: :order
  end

  collection do
    user = current_user.class.find(attributes[:user_id])

    scope = Effective::Order.all.deep.where(user: user)

    if EffectiveOrders.orders_collection_scope.respond_to?(:call)
      scope = EffectiveOrders.orders_collection_scope.call(scope)
    end

    if attributes[:not_purchased]
      scope = scope.not_purchased
    end

    if attributes[:parent_id].present? && attributes[:parent_type].present?
      scope = scope.where(parent_id: attributes[:parent_id], parent_type: attributes[:parent_type])
    end

    scope
  end

end

Version data entries

16 entries across 16 versions & 1 rubygems

Version Path
effective_orders-5.1.13 app/datatables/effective_orders_datatable.rb
effective_orders-5.1.12 app/datatables/effective_orders_datatable.rb
effective_orders-5.1.11 app/datatables/effective_orders_datatable.rb
effective_orders-5.1.10 app/datatables/effective_orders_datatable.rb
effective_orders-5.1.9 app/datatables/effective_orders_datatable.rb
effective_orders-5.1.8 app/datatables/effective_orders_datatable.rb
effective_orders-5.1.7 app/datatables/effective_orders_datatable.rb
effective_orders-5.1.6 app/datatables/effective_orders_datatable.rb
effective_orders-5.1.5 app/datatables/effective_orders_datatable.rb
effective_orders-5.1.4 app/datatables/effective_orders_datatable.rb
effective_orders-5.1.3 app/datatables/effective_orders_datatable.rb
effective_orders-5.1.2 app/datatables/effective_orders_datatable.rb
effective_orders-5.1.1 app/datatables/effective_orders_datatable.rb
effective_orders-5.1.0 app/datatables/effective_orders_datatable.rb
effective_orders-5.0.5 app/datatables/effective_orders_datatable.rb
effective_orders-5.0.4 app/datatables/effective_orders_datatable.rb