Sha256: 7de0d4292b1f7cee64e321c4c659f93ead548720675d49ff22029e69fd6763b4

Contents?: true

Size: 706 Bytes

Versions: 11

Compression:

Stored size: 706 Bytes

Contents

class Dorsale::BillingMachine::SmallData::FilterStrategyByPaymentStatus < ::Dorsale::SmallData::FilterStrategy
  def apply(query, value)
    table_name = query.model.table_name

    if value == "paid"
      return query.where("#{table_name}.paid = ?", true)
    elsif value == "unpaid"
      return query.where("#{table_name}.paid = ?", false)
    elsif value == "pending"
      return query.where("#{table_name}.paid = ? and #{table_name}.due_date >= ?", false, Time.zone.now.to_date)
    elsif value == "late"
      return query.where("#{table_name}.paid = ? and (#{table_name}.due_date < ? or #{table_name}.due_date is null)", false, Time.zone.now.to_date)
    else
      return query
    end
  end
end

Version data entries

11 entries across 11 versions & 1 rubygems

Version Path
dorsale-3.4.0 app/filters/dorsale/billing_machine/small_data/filter_strategy_by_payment_status.rb
dorsale-3.3.0 app/filters/dorsale/billing_machine/small_data/filter_strategy_by_payment_status.rb
dorsale-3.2.0 app/filters/dorsale/billing_machine/small_data/filter_strategy_by_payment_status.rb
dorsale-3.1.7 app/filters/dorsale/billing_machine/small_data/filter_strategy_by_payment_status.rb
dorsale-3.1.6 app/filters/dorsale/billing_machine/small_data/filter_strategy_by_payment_status.rb
dorsale-3.1.5 app/filters/dorsale/billing_machine/small_data/filter_strategy_by_payment_status.rb
dorsale-3.1.4 app/models/dorsale/billing_machine/small_data/filter_strategy_by_payment_status.rb
dorsale-3.1.3 app/models/dorsale/billing_machine/small_data/filter_strategy_by_payment_status.rb
dorsale-3.1.2 app/models/dorsale/billing_machine/small_data/filter_strategy_by_payment_status.rb
dorsale-3.1.1 app/models/dorsale/billing_machine/small_data/filter_strategy_by_payment_status.rb
dorsale-3.1.0 app/models/dorsale/billing_machine/small_data/filter_strategy_by_payment_status.rb