From ea22a24e9ae9941d1f8e0b5154cd81bec348c863 Mon Sep 17 00:00:00 2001 From: Eric Schultz Date: Mon, 30 Apr 2018 14:07:18 -0500 Subject: [PATCH] Queries to find certain sets of nonprofits --- lib/query/query_nonprofits.rb | 13 +++++++++++++ 1 file changed, 13 insertions(+) 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