diff --git a/lib/query/query_nonprofits.rb b/lib/query/query_nonprofits.rb index bef4580c..bd8b069c 100644 --- a/lib/query/query_nonprofits.rb +++ b/lib/query/query_nonprofits.rb @@ -101,4 +101,17 @@ module QueryNonprofits return expr.execute end + + def self.find_nonprofits_with_no_payments() + Nonprofit.includes(:payments).where('payments.nonprofit_id IS NULL') + end + + def self.find_nonprofits_with_payments_in_last_n_days(days) + Payment.where("date >= ?", Time.now - days.days).pluck('nonprofit_id').to_a.uniq + end + + def self.find_nonprofits_with_payments_but_not_in_last_n_days(days) + recent_nonprofits = find_nonprofits_with_payments_in_last_n_days(days) + Payment.where("date < ?", Time.now - days.days).pluck('nonprofit_id').to_a.uniq.select{|i| !recent_nonprofits.include?(i)} + end end