Class: Dorsale::BillingMachine::SmallData::FilterStrategyByPaymentStatus

Inherits:
SmallData::FilterStrategy show all
Defined in:
app/models/dorsale/billing_machine/small_data/filter_strategy_by_payment_status.rb

Instance Method Summary collapse

Methods inherited from SmallData::FilterStrategy

#applies?, #apply, #initialize, #set

Constructor Details

This class inherits a constructor from Dorsale::SmallData::FilterStrategy

Instance Method Details

#do_apply(query) ⇒ Object



5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
# File 'app/models/dorsale/billing_machine/small_data/filter_strategy_by_payment_status.rb', line 5

def do_apply query
  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, Date.today)
  elsif @value == "late"
    return query.where("#{table_name}.paid = ? and (#{table_name}.due_date < ? or #{table_name}.due_date is null)", false, Date.today)
  else
    return query
  end
end