2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
|
# File 'app/filters/dorsale/billing_machine/small_data/filter_strategy_by_payment_status.rb', line 2
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
|